diff --git a/build/NeuralNetwork.d.ts b/build/NeuralNetwork.d.ts index 273ab16..01078d8 100644 --- a/build/NeuralNetwork.d.ts +++ b/build/NeuralNetwork.d.ts @@ -42,3 +42,4 @@ export declare abstract class NeuralNetwork { paramMappings: ParamMapping[]; }; } +//# sourceMappingURL=NeuralNetwork.d.ts.map \ No newline at end of file diff --git a/build/NeuralNetwork.d.ts.map b/build/NeuralNetwork.d.ts.map new file mode 100644 index 0000000..613b14f --- /dev/null +++ b/build/NeuralNetwork.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"NeuralNetwork.d.ts","sourceRoot":"","sources":["../src/NeuralNetwork.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAKxC,8BAAsB,aAAa,CAAC,UAAU;IAGhC,SAAS,CAAC,KAAK,EAAE,MAAM;IAFnC,SAAS,CAAC,OAAO,EAAE,UAAU,GAAG,SAAS,CAAY;IACrD,SAAS,CAAC,cAAc,EAAE,YAAY,EAAE,CAAK;gBACvB,KAAK,EAAE,MAAM;IACnC,IAAW,MAAM,IAAI,UAAU,GAAG,SAAS,CAAwB;IACnE,IAAW,aAAa,IAAI,YAAY,EAAE,CAA+B;IACzE,IAAW,QAAQ,IAAI,OAAO,CAAyB;IAChD,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,EAAE,CAAC,MAAM;IAI9C,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM;IAK1D,YAAY;;;;IAMZ,kBAAkB;;;;IAGlB,eAAe;;;;IAGf,QAAQ;IAKR,MAAM;IAON,OAAO,CAAC,gBAAgB,GAAE,OAAc;IASxC,eAAe,IAAI,YAAY;IAOzB,IAAI,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAOpE,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS;IAOnC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS;IAc/C,iBAAiB,CAAC,SAAS,EAAE,EAAE,CAAC,cAAc;IAQ9C,cAAc,CAAC,OAAO,EAAE,YAAY;IAQ3C,OAAO,CAAC,oBAAoB;IAiB5B,SAAS,CAAC,QAAQ,CAAC,mBAAmB,IAAI,MAAM;IAChD,SAAS,CAAC,QAAQ,CAAC,0BAA0B,CAAC,SAAS,EAAE,EAAE,CAAC,cAAc,GAAG;QAAE,MAAM,EAAE,UAAU,CAAC;QAAC,aAAa,EAAE,YAAY,EAAE,CAAA;KAAE;IAClI,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG;QAAE,MAAM,EAAE,UAAU,CAAC;QAAC,aAAa,EAAE,YAAY,EAAE,CAAA;KAAE;CAC/G"} \ No newline at end of file diff --git a/build/NeuralNetwork.js.map b/build/NeuralNetwork.js.map index 274c0d8..bc9b3cb 100644 --- a/build/NeuralNetwork.js.map +++ b/build/NeuralNetwork.js.map @@ -1 +1 @@ -{"version":3,"file":"NeuralNetwork.js","sourceRoot":"","sources":["../src/NeuralNetwork.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"NeuralNetwork.js","sourceRoot":"","sources":["../src/NeuralNetwork.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/ageGenderNet/AgeGenderNet.d.ts b/build/ageGenderNet/AgeGenderNet.d.ts index 2bc29ca..341d671 100644 --- a/build/ageGenderNet/AgeGenderNet.d.ts +++ b/build/ageGenderNet/AgeGenderNet.d.ts @@ -27,3 +27,4 @@ export declare class AgeGenderNet extends NeuralNetwork { paramMappings: import("../common").ParamMapping[]; }; } +//# sourceMappingURL=AgeGenderNet.d.ts.map \ No newline at end of file diff --git a/build/ageGenderNet/AgeGenderNet.d.ts.map b/build/ageGenderNet/AgeGenderNet.d.ts.map new file mode 100644 index 0000000..88b08fc --- /dev/null +++ b/build/ageGenderNet/AgeGenderNet.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"AgeGenderNet.d.ts","sourceRoot":"","sources":["../../src/ageGenderNet/AgeGenderNet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAI5C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGxD,OAAO,EAAE,sBAAsB,EAAU,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAc,MAAM,QAAQ,CAAC;AAEzD,qBAAa,YAAa,SAAQ,aAAa,CAAC,SAAS,CAAC;IAExD,OAAO,CAAC,qBAAqB,CAAc;gBAE/B,oBAAoB,GAAE,YAAkC;IAKpE,IAAW,oBAAoB,IAAI,YAAY,CAE9C;IAEM,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,EAAE,CAAC,QAAQ,GAAG,SAAS;IAoBhD,YAAY,CAAC,KAAK,EAAE,QAAQ,GAAG,EAAE,CAAC,QAAQ,GAAG,SAAS;IAOhD,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IAI7C,mBAAmB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,sBAAsB,GAAG,sBAAsB,EAAE,CAAC;IAgC9G,SAAS,CAAC,mBAAmB,IAAI,MAAM;IAIhC,OAAO,CAAC,gBAAgB,GAAE,OAAc;IAKxC,oBAAoB,CAAC,OAAO,EAAE,YAAY;IAM1C,uBAAuB,CAAC,OAAO,EAAE,YAAY;;;;IAIpD,SAAS,CAAC,0BAA0B,CAAC,SAAS,EAAE,EAAE,CAAC,cAAc;;;;IASjE,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,YAAY;;;;CAU9C"} \ No newline at end of file diff --git a/build/ageGenderNet/extractParams.d.ts b/build/ageGenderNet/extractParams.d.ts index f4e4b30..12cc2d4 100644 --- a/build/ageGenderNet/extractParams.d.ts +++ b/build/ageGenderNet/extractParams.d.ts @@ -4,3 +4,4 @@ export declare function extractParams(weights: Float32Array): { params: NetParams; paramMappings: ParamMapping[]; }; +//# sourceMappingURL=extractParams.d.ts.map \ No newline at end of file diff --git a/build/ageGenderNet/extractParams.d.ts.map b/build/ageGenderNet/extractParams.d.ts.map new file mode 100644 index 0000000..30a66b0 --- /dev/null +++ b/build/ageGenderNet/extractParams.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"extractParams.d.ts","sourceRoot":"","sources":["../../src/ageGenderNet/extractParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiD,YAAY,EAAE,MAAM,WAAW,CAAC;AACxF,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,aAAa,EAAE,YAAY,EAAE,CAAA;CAAE,CAsBzG"} \ No newline at end of file diff --git a/build/ageGenderNet/extractParamsFromWeigthMap.d.ts b/build/ageGenderNet/extractParamsFromWeigthMap.d.ts index 82627ad..163969a 100644 --- a/build/ageGenderNet/extractParamsFromWeigthMap.d.ts +++ b/build/ageGenderNet/extractParamsFromWeigthMap.d.ts @@ -5,3 +5,4 @@ export declare function extractParamsFromWeigthMap(weightMap: tf.NamedTensorMap) params: NetParams; paramMappings: ParamMapping[]; }; +//# sourceMappingURL=extractParamsFromWeigthMap.d.ts.map \ No newline at end of file diff --git a/build/ageGenderNet/extractParamsFromWeigthMap.d.ts.map b/build/ageGenderNet/extractParamsFromWeigthMap.d.ts.map new file mode 100644 index 0000000..5242977 --- /dev/null +++ b/build/ageGenderNet/extractParamsFromWeigthMap.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"extractParamsFromWeigthMap.d.ts","sourceRoot":"","sources":["../../src/ageGenderNet/extractParamsFromWeigthMap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAmE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC1G,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,EAAE,CAAC,cAAc,GAC3B;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,aAAa,EAAE,YAAY,EAAE,CAAA;CAAE,CAsBtD"} \ No newline at end of file diff --git a/build/ageGenderNet/index.d.ts b/build/ageGenderNet/index.d.ts index 922b2de..3f6418e 100644 --- a/build/ageGenderNet/index.d.ts +++ b/build/ageGenderNet/index.d.ts @@ -1,2 +1,3 @@ export * from './AgeGenderNet'; export * from './types'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/build/ageGenderNet/index.d.ts.map b/build/ageGenderNet/index.d.ts.map new file mode 100644 index 0000000..119ec1f --- /dev/null +++ b/build/ageGenderNet/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ageGenderNet/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC"} \ No newline at end of file diff --git a/build/ageGenderNet/types.d.ts b/build/ageGenderNet/types.d.ts index daf2c9b..07b4b6c 100644 --- a/build/ageGenderNet/types.d.ts +++ b/build/ageGenderNet/types.d.ts @@ -19,3 +19,4 @@ export declare type NetParams = { gender: FCParams; }; }; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/build/ageGenderNet/types.d.ts.map b/build/ageGenderNet/types.d.ts.map new file mode 100644 index 0000000..c572ce1 --- /dev/null +++ b/build/ageGenderNet/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ageGenderNet/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,oBAAY,sBAAsB,GAAG;IACnC,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,iBAAiB,EAAE,MAAM,CAAA;CAC1B,CAAA;AAED,oBAAY,MAAM;IAChB,MAAM,WAAW;IACjB,IAAI,SAAS;CACd;AAED,oBAAY,SAAS,GAAG;IAAE,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC;IAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAA;CAAE,CAAA;AAEjE,oBAAY,SAAS,GAAG;IACtB,EAAE,EAAE;QACF,GAAG,EAAE,QAAQ,CAAA;QACb,MAAM,EAAE,QAAQ,CAAA;KACjB,CAAA;CACF,CAAA"} \ No newline at end of file diff --git a/build/classes/BoundingBox.d.ts b/build/classes/BoundingBox.d.ts index 7c5f096..fd66725 100644 --- a/build/classes/BoundingBox.d.ts +++ b/build/classes/BoundingBox.d.ts @@ -8,3 +8,4 @@ export interface IBoundingBox { export declare class BoundingBox extends Box implements IBoundingBox { constructor(left: number, top: number, right: number, bottom: number, allowNegativeDimensions?: boolean); } +//# sourceMappingURL=BoundingBox.d.ts.map \ No newline at end of file diff --git a/build/classes/BoundingBox.d.ts.map b/build/classes/BoundingBox.d.ts.map new file mode 100644 index 0000000..a562d35 --- /dev/null +++ b/build/classes/BoundingBox.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"BoundingBox.d.ts","sourceRoot":"","sources":["../../src/classes/BoundingBox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AAED,qBAAa,WAAY,SAAQ,GAAG,CAAC,WAAW,CAAE,YAAW,YAAY;gBAC3D,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,uBAAuB,GAAE,OAAe;CAG/G"} \ No newline at end of file diff --git a/build/classes/Box.d.ts b/build/classes/Box.d.ts index 950f56a..393e04b 100644 --- a/build/classes/Box.d.ts +++ b/build/classes/Box.d.ts @@ -44,3 +44,4 @@ export declare class Box implements IBoundingBox, IRect { }; calibrate(region: Box): Box; } +//# sourceMappingURL=Box.d.ts.map \ No newline at end of file diff --git a/build/classes/Box.d.ts.map b/build/classes/Box.d.ts.map new file mode 100644 index 0000000..72d5be2 --- /dev/null +++ b/build/classes/Box.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"Box.d.ts","sourceRoot":"","sources":["../../src/classes/Box.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAE/B,qBAAa,GAAG,CAAC,OAAO,GAAG,GAAG,CAAE,YAAW,YAAY,EAAE,KAAK;WAE9C,MAAM,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO;WAI1B,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,uBAAuB,GAAE,OAAe;IAUjG,OAAO,CAAC,EAAE,CAAQ;IAClB,OAAO,CAAC,EAAE,CAAQ;IAClB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,OAAO,CAAQ;gBAEX,IAAI,EAAE,YAAY,GAAG,KAAK,EAAE,uBAAuB,GAAE,OAAc;IAsB/E,IAAW,CAAC,IAAI,MAAM,CAAmB;IACzC,IAAW,CAAC,IAAI,MAAM,CAAmB;IACzC,IAAW,KAAK,IAAI,MAAM,CAAuB;IACjD,IAAW,MAAM,IAAI,MAAM,CAAwB;IACnD,IAAW,IAAI,IAAI,MAAM,CAAkB;IAC3C,IAAW,GAAG,IAAI,MAAM,CAAkB;IAC1C,IAAW,KAAK,IAAI,MAAM,CAA+B;IACzD,IAAW,MAAM,IAAI,MAAM,CAAgC;IAC3D,IAAW,IAAI,IAAI,MAAM,CAAoC;IAC7D,IAAW,OAAO,IAAI,KAAK,CAA0C;IACrE,IAAW,QAAQ,IAAI,KAAK,CAA2C;IACvE,IAAW,UAAU,IAAI,KAAK,CAA6C;IAC3E,IAAW,WAAW,IAAI,KAAK,CAA8C;IAEtE,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC;IAMrB,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC;IAMrB,QAAQ,IAAI,GAAG,CAAC,OAAO,CAAC;IAexB,OAAO,CAAC,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;IAW9C,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;IAU7C,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;IAarE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;IAQ3C,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;;;;;;;;;;;;IAkCpD,SAAS,CAAC,MAAM,EAAE,GAAG;CAQ7B"} \ No newline at end of file diff --git a/build/classes/Dimensions.d.ts b/build/classes/Dimensions.d.ts index fe169cc..676fc7c 100644 --- a/build/classes/Dimensions.d.ts +++ b/build/classes/Dimensions.d.ts @@ -10,3 +10,4 @@ export declare class Dimensions implements IDimensions { get height(): number; reverse(): Dimensions; } +//# sourceMappingURL=Dimensions.d.ts.map \ No newline at end of file diff --git a/build/classes/Dimensions.d.ts.map b/build/classes/Dimensions.d.ts.map new file mode 100644 index 0000000..eef5fe2 --- /dev/null +++ b/build/classes/Dimensions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"Dimensions.d.ts","sourceRoot":"","sources":["../../src/classes/Dimensions.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AAED,qBAAa,UAAW,YAAW,WAAW;IAE5C,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,OAAO,CAAQ;gBAEX,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IASzC,IAAW,KAAK,IAAI,MAAM,CAAuB;IACjD,IAAW,MAAM,IAAI,MAAM,CAAwB;IAE5C,OAAO,IAAI,UAAU;CAG7B"} \ No newline at end of file diff --git a/build/classes/FaceDetection.d.ts b/build/classes/FaceDetection.d.ts index 5377318..d0beecb 100644 --- a/build/classes/FaceDetection.d.ts +++ b/build/classes/FaceDetection.d.ts @@ -10,3 +10,4 @@ export declare class FaceDetection extends ObjectDetection implements IFaceDetec constructor(score: number, relativeBox: Rect, imageDims: IDimensions); forSize(width: number, height: number): FaceDetection; } +//# sourceMappingURL=FaceDetection.d.ts.map \ No newline at end of file diff --git a/build/classes/FaceDetection.d.ts.map b/build/classes/FaceDetection.d.ts.map new file mode 100644 index 0000000..82ba184 --- /dev/null +++ b/build/classes/FaceDetection.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"FaceDetection.d.ts","sourceRoot":"","sources":["../../src/classes/FaceDetection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,GAAG,CAAA;CACT;AAED,qBAAa,aAAc,SAAQ,eAAgB,YAAW,aAAa;gBAEvE,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,IAAI,EACjB,SAAS,EAAE,WAAW;IAKjB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa;CAI7D"} \ No newline at end of file diff --git a/build/classes/FaceLandmarks.d.ts b/build/classes/FaceLandmarks.d.ts index ead3ca9..ed8e4b4 100644 --- a/build/classes/FaceLandmarks.d.ts +++ b/build/classes/FaceLandmarks.d.ts @@ -40,3 +40,4 @@ export declare class FaceLandmarks implements IFaceLandmarks { private alignMinBbox; protected getRefPointsForAlignment(): Point[]; } +//# sourceMappingURL=FaceLandmarks.d.ts.map \ No newline at end of file diff --git a/build/classes/FaceLandmarks.d.ts.map b/build/classes/FaceLandmarks.d.ts.map new file mode 100644 index 0000000..6d5b398 --- /dev/null +++ b/build/classes/FaceLandmarks.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"FaceLandmarks.d.ts","sourceRoot":"","sources":["../../src/classes/FaceLandmarks.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,KAAK,EAAQ,MAAM,QAAQ,CAAC;AAOrC,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,KAAK,EAAE,CAAA;IAClB,KAAK,EAAE,KAAK,CAAA;CACb;AAED,qBAAa,aAAc,YAAW,cAAc;IAClD,SAAS,CAAC,MAAM,EAAE,KAAK,CAAA;IACvB,SAAS,CAAC,UAAU,EAAE,KAAK,EAAE,CAAA;IAC7B,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAA;gBAG5B,6BAA6B,EAAE,KAAK,EAAE,EACtC,OAAO,EAAE,WAAW,EACpB,KAAK,GAAE,KAAuB;IAUhC,IAAW,KAAK,IAAI,KAAK,CAAmD;IAC5E,IAAW,UAAU,IAAI,MAAM,CAA+B;IAC9D,IAAW,WAAW,IAAI,MAAM,CAAgC;IAChE,IAAW,SAAS,IAAI,KAAK,EAAE,CAA2B;IAC1D,IAAW,iBAAiB,IAAI,KAAK,EAAE,CAItC;IAEM,OAAO,CAAC,CAAC,SAAS,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC;IAOlE,OAAO,CAAC,CAAC,SAAS,aAAa,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC;IAQzD,YAAY,CAAC,CAAC,SAAS,aAAa,EAAE,EAAE,EAAE,KAAK,GAAG,CAAC;IAI1D;;;;;;;;;;OAUG;IACI,KAAK,CACV,SAAS,CAAC,EAAE,aAAa,GAAG,KAAK,GAAG,YAAY,GAAG,IAAI,EACvD,OAAO,GAAE;QAAE,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAQ,GACpE,GAAG;IAkBN,OAAO,CAAC,SAAS;IAkBjB,OAAO,CAAC,YAAY;IAKpB,SAAS,CAAC,wBAAwB,IAAI,KAAK,EAAE;CAG9C"} \ No newline at end of file diff --git a/build/classes/FaceLandmarks5.d.ts b/build/classes/FaceLandmarks5.d.ts index e514bcf..b214eb5 100644 --- a/build/classes/FaceLandmarks5.d.ts +++ b/build/classes/FaceLandmarks5.d.ts @@ -3,3 +3,4 @@ import { Point } from './Point'; export declare class FaceLandmarks5 extends FaceLandmarks { protected getRefPointsForAlignment(): Point[]; } +//# sourceMappingURL=FaceLandmarks5.d.ts.map \ No newline at end of file diff --git a/build/classes/FaceLandmarks5.d.ts.map b/build/classes/FaceLandmarks5.d.ts.map new file mode 100644 index 0000000..bddef32 --- /dev/null +++ b/build/classes/FaceLandmarks5.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"FaceLandmarks5.d.ts","sourceRoot":"","sources":["../../src/classes/FaceLandmarks5.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,qBAAa,cAAe,SAAQ,aAAa;IAE/C,SAAS,CAAC,wBAAwB,IAAI,KAAK,EAAE;CAQ9C"} \ No newline at end of file diff --git a/build/classes/FaceLandmarks68.d.ts b/build/classes/FaceLandmarks68.d.ts index dce3ba5..e4e86de 100644 --- a/build/classes/FaceLandmarks68.d.ts +++ b/build/classes/FaceLandmarks68.d.ts @@ -10,3 +10,4 @@ export declare class FaceLandmarks68 extends FaceLandmarks { getMouth(): Point[]; protected getRefPointsForAlignment(): Point[]; } +//# sourceMappingURL=FaceLandmarks68.d.ts.map \ No newline at end of file diff --git a/build/classes/FaceLandmarks68.d.ts.map b/build/classes/FaceLandmarks68.d.ts.map new file mode 100644 index 0000000..a0918c6 --- /dev/null +++ b/build/classes/FaceLandmarks68.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"FaceLandmarks68.d.ts","sourceRoot":"","sources":["../../src/classes/FaceLandmarks68.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,qBAAa,eAAgB,SAAQ,aAAa;IACzC,aAAa,IAAI,KAAK,EAAE;IAIxB,cAAc,IAAI,KAAK,EAAE;IAIzB,eAAe,IAAI,KAAK,EAAE;IAI1B,OAAO,IAAI,KAAK,EAAE;IAIlB,UAAU,IAAI,KAAK,EAAE;IAIrB,WAAW,IAAI,KAAK,EAAE;IAItB,QAAQ,IAAI,KAAK,EAAE;IAI1B,SAAS,CAAC,wBAAwB,IAAI,KAAK,EAAE;CAO9C"} \ No newline at end of file diff --git a/build/classes/FaceMatch.d.ts b/build/classes/FaceMatch.d.ts index 01e4a27..aa00ac0 100644 --- a/build/classes/FaceMatch.d.ts +++ b/build/classes/FaceMatch.d.ts @@ -10,3 +10,4 @@ export declare class FaceMatch implements IFaceMatch { get distance(): number; toString(withDistance?: boolean): string; } +//# sourceMappingURL=FaceMatch.d.ts.map \ No newline at end of file diff --git a/build/classes/FaceMatch.d.ts.map b/build/classes/FaceMatch.d.ts.map new file mode 100644 index 0000000..6eb8c49 --- /dev/null +++ b/build/classes/FaceMatch.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"FaceMatch.d.ts","sourceRoot":"","sources":["../../src/classes/FaceMatch.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,qBAAa,SAAU,YAAW,UAAU;IAC1C,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,SAAS,CAAQ;gBAEb,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAK3C,IAAW,KAAK,IAAI,MAAM,CAAuB;IACjD,IAAW,QAAQ,IAAI,MAAM,CAA0B;IAEhD,QAAQ,CAAC,YAAY,GAAE,OAAc,GAAG,MAAM;CAGtD"} \ No newline at end of file diff --git a/build/classes/LabeledBox.d.ts b/build/classes/LabeledBox.d.ts index 6cf39c0..453aa59 100644 --- a/build/classes/LabeledBox.d.ts +++ b/build/classes/LabeledBox.d.ts @@ -7,3 +7,4 @@ export declare class LabeledBox extends Box { constructor(box: IBoundingBox | IRect | any, label: number); get label(): number; } +//# sourceMappingURL=LabeledBox.d.ts.map \ No newline at end of file diff --git a/build/classes/LabeledBox.d.ts.map b/build/classes/LabeledBox.d.ts.map new file mode 100644 index 0000000..a7d3856 --- /dev/null +++ b/build/classes/LabeledBox.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"LabeledBox.d.ts","sourceRoot":"","sources":["../../src/classes/LabeledBox.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAE/B,qBAAa,UAAW,SAAQ,GAAG,CAAC,UAAU,CAAC;WAE/B,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM;IAQ9D,OAAO,CAAC,MAAM,CAAQ;gBAEV,GAAG,EAAE,YAAY,GAAG,KAAK,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM;IAK1D,IAAW,KAAK,IAAI,MAAM,CAAuB;CAElD"} \ No newline at end of file diff --git a/build/classes/LabeledFaceDescriptors.d.ts b/build/classes/LabeledFaceDescriptors.d.ts index 6015429..6f6adef 100644 --- a/build/classes/LabeledFaceDescriptors.d.ts +++ b/build/classes/LabeledFaceDescriptors.d.ts @@ -7,3 +7,4 @@ export declare class LabeledFaceDescriptors { toJSON(): any; static fromJSON(json: any): LabeledFaceDescriptors; } +//# sourceMappingURL=LabeledFaceDescriptors.d.ts.map \ No newline at end of file diff --git a/build/classes/LabeledFaceDescriptors.d.ts.map b/build/classes/LabeledFaceDescriptors.d.ts.map new file mode 100644 index 0000000..75f469b --- /dev/null +++ b/build/classes/LabeledFaceDescriptors.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"LabeledFaceDescriptors.d.ts","sourceRoot":"","sources":["../../src/classes/LabeledFaceDescriptors.ts"],"names":[],"mappings":"AAAA,qBAAa,sBAAsB;IACjC,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,YAAY,CAAgB;gBAExB,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE;IAatD,IAAW,KAAK,IAAI,MAAM,CAAuB;IACjD,IAAW,WAAW,IAAI,YAAY,EAAE,CAA6B;IAE9D,MAAM,IAAI,GAAG;WAON,QAAQ,CAAC,IAAI,EAAE,GAAG,GAAG,sBAAsB;CAO1D"} \ No newline at end of file diff --git a/build/classes/ObjectDetection.d.ts b/build/classes/ObjectDetection.d.ts index feae090..b64347d 100644 --- a/build/classes/ObjectDetection.d.ts +++ b/build/classes/ObjectDetection.d.ts @@ -18,3 +18,4 @@ export declare class ObjectDetection { get relativeBox(): Box; forSize(width: number, height: number): ObjectDetection; } +//# sourceMappingURL=ObjectDetection.d.ts.map \ No newline at end of file diff --git a/build/classes/ObjectDetection.d.ts.map b/build/classes/ObjectDetection.d.ts.map new file mode 100644 index 0000000..a949c32 --- /dev/null +++ b/build/classes/ObjectDetection.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"ObjectDetection.d.ts","sourceRoot":"","sources":["../../src/classes/ObjectDetection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,KAAK,EAAQ,MAAM,QAAQ,CAAC;AAErC,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,IAAI,CAAM;IAClB,OAAO,CAAC,UAAU,CAAY;gBAG5B,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,KAAK,EAClB,SAAS,EAAE,WAAW;IASxB,IAAW,KAAK,IAAI,MAAM,CAAuB;IACjD,IAAW,UAAU,IAAI,MAAM,CAA4B;IAC3D,IAAW,SAAS,IAAI,MAAM,CAA2B;IACzD,IAAW,GAAG,IAAI,GAAG,CAAqB;IAC1C,IAAW,SAAS,IAAI,UAAU,CAA2B;IAC7D,IAAW,UAAU,IAAI,MAAM,CAAgC;IAC/D,IAAW,WAAW,IAAI,MAAM,CAAiC;IACjE,IAAW,WAAW,IAAI,GAAG,CAAgE;IAEtF,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,eAAe;CAS/D"} \ No newline at end of file diff --git a/build/classes/Point.d.ts b/build/classes/Point.d.ts index 2c330fb..286fe69 100644 --- a/build/classes/Point.d.ts +++ b/build/classes/Point.d.ts @@ -16,3 +16,4 @@ export declare class Point implements IPoint { magnitude(): number; floor(): Point; } +//# sourceMappingURL=Point.d.ts.map \ No newline at end of file diff --git a/build/classes/Point.d.ts.map b/build/classes/Point.d.ts.map new file mode 100644 index 0000000..7206d1a --- /dev/null +++ b/build/classes/Point.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"Point.d.ts","sourceRoot":"","sources":["../../src/classes/Point.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM;IACrB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV;AAED,qBAAa,KAAM,YAAW,MAAM;IAClC,OAAO,CAAC,EAAE,CAAQ;IAClB,OAAO,CAAC,EAAE,CAAQ;gBAEN,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAKhC,IAAI,CAAC,IAAI,MAAM,CAAmB;IAClC,IAAI,CAAC,IAAI,MAAM,CAAmB;IAE3B,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,KAAK;IAItB,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,KAAK;IAItB,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,KAAK;IAItB,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,KAAK;IAItB,GAAG,IAAI,KAAK;IAIZ,SAAS,IAAI,MAAM;IAInB,KAAK,IAAI,KAAK;CAGtB"} \ No newline at end of file diff --git a/build/classes/PredictedBox.d.ts b/build/classes/PredictedBox.d.ts index 8a72117..b96772b 100644 --- a/build/classes/PredictedBox.d.ts +++ b/build/classes/PredictedBox.d.ts @@ -9,3 +9,4 @@ export declare class PredictedBox extends LabeledBox { get score(): number; get classScore(): number; } +//# sourceMappingURL=PredictedBox.d.ts.map \ No newline at end of file diff --git a/build/classes/PredictedBox.d.ts.map b/build/classes/PredictedBox.d.ts.map new file mode 100644 index 0000000..287999a --- /dev/null +++ b/build/classes/PredictedBox.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"PredictedBox.d.ts","sourceRoot":"","sources":["../../src/classes/PredictedBox.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAE/B,qBAAa,YAAa,SAAQ,UAAU;WAE5B,yBAAyB,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM;IAWhE,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,WAAW,CAAQ;gBAEf,GAAG,EAAE,YAAY,GAAG,KAAK,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAM7F,IAAW,KAAK,IAAI,MAAM,CAAuB;IACjD,IAAW,UAAU,IAAI,MAAM,CAA4B;CAE5D"} \ No newline at end of file diff --git a/build/classes/Rect.d.ts b/build/classes/Rect.d.ts index c88c89a..9d996f3 100644 --- a/build/classes/Rect.d.ts +++ b/build/classes/Rect.d.ts @@ -8,3 +8,4 @@ export interface IRect { export declare class Rect extends Box implements IRect { constructor(x: number, y: number, width: number, height: number, allowNegativeDimensions?: boolean); } +//# sourceMappingURL=Rect.d.ts.map \ No newline at end of file diff --git a/build/classes/Rect.d.ts.map b/build/classes/Rect.d.ts.map new file mode 100644 index 0000000..238fdbf --- /dev/null +++ b/build/classes/Rect.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"Rect.d.ts","sourceRoot":"","sources":["../../src/classes/Rect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B,MAAM,WAAW,KAAK;IACpB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AAED,qBAAa,IAAK,SAAQ,GAAG,CAAC,IAAI,CAAE,YAAW,KAAK;gBACtC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,uBAAuB,GAAE,OAAe;CAG1G"} \ No newline at end of file diff --git a/build/classes/index.d.ts b/build/classes/index.d.ts index b66b71e..fb055f7 100644 --- a/build/classes/index.d.ts +++ b/build/classes/index.d.ts @@ -12,3 +12,4 @@ export * from './ObjectDetection'; export * from './Point'; export * from './PredictedBox'; export * from './Rect'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/build/classes/index.d.ts.map b/build/classes/index.d.ts.map new file mode 100644 index 0000000..527b511 --- /dev/null +++ b/build/classes/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/classes/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,OAAO,CAAA;AACrB,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAA;AACjC,cAAc,SAAS,CAAA;AACvB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,QAAQ,CAAA"} \ No newline at end of file diff --git a/build/common/convLayer.d.ts b/build/common/convLayer.d.ts index e0b77a3..d1dc729 100644 --- a/build/common/convLayer.d.ts +++ b/build/common/convLayer.d.ts @@ -1,3 +1,4 @@ import * as tf from '@tensorflow/tfjs-core'; import { ConvParams } from './types'; export declare function convLayer(x: tf.Tensor4D, params: ConvParams, padding?: 'valid' | 'same', withRelu?: boolean): tf.Tensor4D; +//# sourceMappingURL=convLayer.d.ts.map \ No newline at end of file diff --git a/build/common/convLayer.d.ts.map b/build/common/convLayer.d.ts.map new file mode 100644 index 0000000..691738d --- /dev/null +++ b/build/common/convLayer.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"convLayer.d.ts","sourceRoot":"","sources":["../../src/common/convLayer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,wBAAgB,SAAS,CACvB,CAAC,EAAE,EAAE,CAAC,QAAQ,EACd,MAAM,EAAE,UAAU,EAClB,OAAO,GAAE,OAAO,GAAG,MAAe,EAClC,QAAQ,GAAE,OAAe,GACxB,EAAE,CAAC,QAAQ,CASb"} \ No newline at end of file diff --git a/build/common/depthwiseSeparableConv.d.ts b/build/common/depthwiseSeparableConv.d.ts index 0725c45..1fff291 100644 --- a/build/common/depthwiseSeparableConv.d.ts +++ b/build/common/depthwiseSeparableConv.d.ts @@ -1,3 +1,4 @@ import * as tf from '@tensorflow/tfjs-core'; import { SeparableConvParams } from './types'; export declare function depthwiseSeparableConv(x: tf.Tensor4D, params: SeparableConvParams, stride: [number, number]): tf.Tensor4D; +//# sourceMappingURL=depthwiseSeparableConv.d.ts.map \ No newline at end of file diff --git a/build/common/depthwiseSeparableConv.d.ts.map b/build/common/depthwiseSeparableConv.d.ts.map new file mode 100644 index 0000000..c4174b2 --- /dev/null +++ b/build/common/depthwiseSeparableConv.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"depthwiseSeparableConv.d.ts","sourceRoot":"","sources":["../../src/common/depthwiseSeparableConv.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE9C,wBAAgB,sBAAsB,CACpC,CAAC,EAAE,EAAE,CAAC,QAAQ,EACd,MAAM,EAAE,mBAAmB,EAC3B,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GACvB,EAAE,CAAC,QAAQ,CAMb"} \ No newline at end of file diff --git a/build/common/disposeUnusedWeightTensors.d.ts b/build/common/disposeUnusedWeightTensors.d.ts index 927401b..bb75b91 100644 --- a/build/common/disposeUnusedWeightTensors.d.ts +++ b/build/common/disposeUnusedWeightTensors.d.ts @@ -1,2 +1,3 @@ import { ParamMapping } from './types'; export declare function disposeUnusedWeightTensors(weightMap: any, paramMappings: ParamMapping[]): void; +//# sourceMappingURL=disposeUnusedWeightTensors.d.ts.map \ No newline at end of file diff --git a/build/common/disposeUnusedWeightTensors.d.ts.map b/build/common/disposeUnusedWeightTensors.d.ts.map new file mode 100644 index 0000000..f18fad4 --- /dev/null +++ b/build/common/disposeUnusedWeightTensors.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"disposeUnusedWeightTensors.d.ts","sourceRoot":"","sources":["../../src/common/disposeUnusedWeightTensors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE,YAAY,EAAE,QAMvF"} \ No newline at end of file diff --git a/build/common/extractConvParamsFactory.d.ts b/build/common/extractConvParamsFactory.d.ts index 03908f7..669ec66 100644 --- a/build/common/extractConvParamsFactory.d.ts +++ b/build/common/extractConvParamsFactory.d.ts @@ -1,2 +1,3 @@ import { ConvParams, ExtractWeightsFunction, ParamMapping } from './types'; export declare function extractConvParamsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]): (channelsIn: number, channelsOut: number, filterSize: number, mappedPrefix: string) => ConvParams; +//# sourceMappingURL=extractConvParamsFactory.d.ts.map \ No newline at end of file diff --git a/build/common/extractConvParamsFactory.d.ts.map b/build/common/extractConvParamsFactory.d.ts.map new file mode 100644 index 0000000..12e45b9 --- /dev/null +++ b/build/common/extractConvParamsFactory.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"extractConvParamsFactory.d.ts","sourceRoot":"","sources":["../../src/common/extractConvParamsFactory.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE3E,wBAAgB,wBAAwB,CACtC,cAAc,EAAE,sBAAsB,EACtC,aAAa,EAAE,YAAY,EAAE,gBAIf,MAAM,eACL,MAAM,cACP,MAAM,gBACJ,MAAM,KACnB,UAAU,CAgBd"} \ No newline at end of file diff --git a/build/common/extractFCParamsFactory.d.ts b/build/common/extractFCParamsFactory.d.ts index 173afc4..c9315b0 100644 --- a/build/common/extractFCParamsFactory.d.ts +++ b/build/common/extractFCParamsFactory.d.ts @@ -1,2 +1,3 @@ import { ExtractWeightsFunction, FCParams, ParamMapping } from './types'; export declare function extractFCParamsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]): (channelsIn: number, channelsOut: number, mappedPrefix: string) => FCParams; +//# sourceMappingURL=extractFCParamsFactory.d.ts.map \ No newline at end of file diff --git a/build/common/extractFCParamsFactory.d.ts.map b/build/common/extractFCParamsFactory.d.ts.map new file mode 100644 index 0000000..28f8b5c --- /dev/null +++ b/build/common/extractFCParamsFactory.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"extractFCParamsFactory.d.ts","sourceRoot":"","sources":["../../src/common/extractFCParamsFactory.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGzE,wBAAgB,sBAAsB,CACpC,cAAc,EAAE,sBAAsB,EACtC,aAAa,EAAE,YAAY,EAAE,gBAIf,MAAM,eACL,MAAM,gBACL,MAAM,KACnB,QAAQ,CAgBZ"} \ No newline at end of file diff --git a/build/common/extractSeparableConvParamsFactory.d.ts b/build/common/extractSeparableConvParamsFactory.d.ts index 1e20f3b..9de2fa9 100644 --- a/build/common/extractSeparableConvParamsFactory.d.ts +++ b/build/common/extractSeparableConvParamsFactory.d.ts @@ -1,3 +1,4 @@ import { ExtractWeightsFunction, ParamMapping, SeparableConvParams } from './types'; export declare function extractSeparableConvParamsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]): (channelsIn: number, channelsOut: number, mappedPrefix: string) => SeparableConvParams; export declare function loadSeparableConvParamsFactory(extractWeightEntry: (originalPath: string, paramRank: number) => T): (prefix: string) => SeparableConvParams; +//# sourceMappingURL=extractSeparableConvParamsFactory.d.ts.map \ No newline at end of file diff --git a/build/common/extractSeparableConvParamsFactory.d.ts.map b/build/common/extractSeparableConvParamsFactory.d.ts.map new file mode 100644 index 0000000..2f6213d --- /dev/null +++ b/build/common/extractSeparableConvParamsFactory.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"extractSeparableConvParamsFactory.d.ts","sourceRoot":"","sources":["../../src/common/extractSeparableConvParamsFactory.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEpF,wBAAgB,iCAAiC,CAC/C,cAAc,EAAE,sBAAsB,EACtC,aAAa,EAAE,YAAY,EAAE,gBAGD,MAAM,eAAe,MAAM,gBAAgB,MAAM,KAAG,mBAAmB,CAkBpG;AAED,wBAAgB,8BAA8B,CAC5C,kBAAkB,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC,YAG5C,MAAM,KAAG,mBAAmB,CAYtD"} \ No newline at end of file diff --git a/build/common/extractWeightEntryFactory.d.ts b/build/common/extractWeightEntryFactory.d.ts index b532003..4383a74 100644 --- a/build/common/extractWeightEntryFactory.d.ts +++ b/build/common/extractWeightEntryFactory.d.ts @@ -1,2 +1,3 @@ import { ParamMapping } from './types'; export declare function extractWeightEntryFactory(weightMap: any, paramMappings: ParamMapping[]): (originalPath: string, paramRank: number, mappedPath?: string | undefined) => T; +//# sourceMappingURL=extractWeightEntryFactory.d.ts.map \ No newline at end of file diff --git a/build/common/extractWeightEntryFactory.d.ts.map b/build/common/extractWeightEntryFactory.d.ts.map new file mode 100644 index 0000000..ec473ac --- /dev/null +++ b/build/common/extractWeightEntryFactory.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"extractWeightEntryFactory.d.ts","sourceRoot":"","sources":["../../src/common/extractWeightEntryFactory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE,YAAY,EAAE,qBAEnD,MAAM,aAAa,MAAM,wCAc5D"} \ No newline at end of file diff --git a/build/common/extractWeightsFactory.d.ts b/build/common/extractWeightsFactory.d.ts index baf2ef9..4815212 100644 --- a/build/common/extractWeightsFactory.d.ts +++ b/build/common/extractWeightsFactory.d.ts @@ -2,3 +2,4 @@ export declare function extractWeightsFactory(weights: Float32Array): { extractWeights: (numWeights: number) => Float32Array; getRemainingWeights: () => Float32Array; }; +//# sourceMappingURL=extractWeightsFactory.d.ts.map \ No newline at end of file diff --git a/build/common/extractWeightsFactory.d.ts.map b/build/common/extractWeightsFactory.d.ts.map new file mode 100644 index 0000000..475213b --- /dev/null +++ b/build/common/extractWeightsFactory.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"extractWeightsFactory.d.ts","sourceRoot":"","sources":["../../src/common/extractWeightsFactory.ts"],"names":[],"mappings":"AAAA,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,YAAY;iCAGrB,MAAM,KAAG,YAAY;+BAMzB,YAAY;EAQ7C"} \ No newline at end of file diff --git a/build/common/fullyConnectedLayer.d.ts b/build/common/fullyConnectedLayer.d.ts index 4a3aa90..4e4acbc 100644 --- a/build/common/fullyConnectedLayer.d.ts +++ b/build/common/fullyConnectedLayer.d.ts @@ -1,3 +1,4 @@ import * as tf from '@tensorflow/tfjs-core'; import { FCParams } from './types'; export declare function fullyConnectedLayer(x: tf.Tensor2D, params: FCParams): tf.Tensor2D; +//# sourceMappingURL=fullyConnectedLayer.d.ts.map \ No newline at end of file diff --git a/build/common/fullyConnectedLayer.d.ts.map b/build/common/fullyConnectedLayer.d.ts.map new file mode 100644 index 0000000..4462131 --- /dev/null +++ b/build/common/fullyConnectedLayer.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"fullyConnectedLayer.d.ts","sourceRoot":"","sources":["../../src/common/fullyConnectedLayer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,wBAAgB,mBAAmB,CACjC,CAAC,EAAE,EAAE,CAAC,QAAQ,EACd,MAAM,EAAE,QAAQ,GACf,EAAE,CAAC,QAAQ,CAOb"} \ No newline at end of file diff --git a/build/common/getModelUris.d.ts b/build/common/getModelUris.d.ts index 9a5f64a..5dbc1a0 100644 --- a/build/common/getModelUris.d.ts +++ b/build/common/getModelUris.d.ts @@ -2,3 +2,4 @@ export declare function getModelUris(uri: string | undefined, defaultModelName: modelBaseUri: string; manifestUri: string; }; +//# sourceMappingURL=getModelUris.d.ts.map \ No newline at end of file diff --git a/build/common/getModelUris.d.ts.map b/build/common/getModelUris.d.ts.map new file mode 100644 index 0000000..2809004 --- /dev/null +++ b/build/common/getModelUris.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"getModelUris.d.ts","sourceRoot":"","sources":["../../src/common/getModelUris.ts"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,gBAAgB,EAAE,MAAM;;;EAgC7E"} \ No newline at end of file diff --git a/build/common/index.d.ts b/build/common/index.d.ts index fc307a0..0998aef 100644 --- a/build/common/index.d.ts +++ b/build/common/index.d.ts @@ -8,3 +8,4 @@ export * from './extractWeightEntryFactory'; export * from './extractWeightsFactory'; export * from './getModelUris'; export * from './types'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/build/common/index.d.ts.map b/build/common/index.d.ts.map new file mode 100644 index 0000000..ef8bf55 --- /dev/null +++ b/build/common/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,0BAA0B,CAAA;AACxC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,0BAA0B,CAAA;AACxC,cAAc,qCAAqC,CAAA;AACnD,cAAc,6BAA6B,CAAA;AAC3C,cAAc,yBAAyB,CAAA;AACvC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA"} \ No newline at end of file diff --git a/build/common/loadConvParamsFactory.d.ts b/build/common/loadConvParamsFactory.d.ts index c139c7b..897f0b4 100644 --- a/build/common/loadConvParamsFactory.d.ts +++ b/build/common/loadConvParamsFactory.d.ts @@ -1,2 +1,3 @@ import { ConvParams } from './types'; export declare function loadConvParamsFactory(extractWeightEntry: (originalPath: string, paramRank: number) => T): (prefix: string) => ConvParams; +//# sourceMappingURL=loadConvParamsFactory.d.ts.map \ No newline at end of file diff --git a/build/common/loadConvParamsFactory.d.ts.map b/build/common/loadConvParamsFactory.d.ts.map new file mode 100644 index 0000000..2e6d80a --- /dev/null +++ b/build/common/loadConvParamsFactory.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"loadConvParamsFactory.d.ts","sourceRoot":"","sources":["../../src/common/loadConvParamsFactory.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,wBAAgB,qBAAqB,CAAC,kBAAkB,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC,YACjF,MAAM,KAAG,UAAU,CAM5C"} \ No newline at end of file diff --git a/build/common/types.d.ts b/build/common/types.d.ts index 7a8bfd4..0c19928 100644 --- a/build/common/types.d.ts +++ b/build/common/types.d.ts @@ -18,3 +18,4 @@ export declare class SeparableConvParams { bias: tf.Tensor1D; constructor(depthwise_filter: tf.Tensor4D, pointwise_filter: tf.Tensor4D, bias: tf.Tensor1D); } +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/build/common/types.d.ts.map b/build/common/types.d.ts.map new file mode 100644 index 0000000..c66714e --- /dev/null +++ b/build/common/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/common/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C,oBAAY,sBAAsB,GAAG,CAAC,UAAU,EAAE,MAAM,KAAK,YAAY,CAAA;AAEzE,oBAAY,YAAY,GAAG;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,oBAAY,UAAU,GAAG;IACvB,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAA;IACpB,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAA;CAClB,CAAA;AAED,oBAAY,QAAQ,GAAG;IACrB,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAA;IACpB,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAA;CAClB,CAAA;AAED,qBAAa,mBAAmB;IAErB,gBAAgB,EAAE,EAAE,CAAC,QAAQ;IAC7B,gBAAgB,EAAE,EAAE,CAAC,QAAQ;IAC7B,IAAI,EAAE,EAAE,CAAC,QAAQ;gBAFjB,gBAAgB,EAAE,EAAE,CAAC,QAAQ,EAC7B,gBAAgB,EAAE,EAAE,CAAC,QAAQ,EAC7B,IAAI,EAAE,EAAE,CAAC,QAAQ;CAE3B"} \ No newline at end of file diff --git a/build/dom/NetInput.d.ts b/build/dom/NetInput.d.ts index 64d83ba..8a253f1 100644 --- a/build/dom/NetInput.d.ts +++ b/build/dom/NetInput.d.ts @@ -32,3 +32,4 @@ export declare class NetInput { */ toBatchTensor(inputSize: number, isCenterInputs?: boolean): tf.Tensor4D; } +//# sourceMappingURL=NetInput.d.ts.map \ No newline at end of file diff --git a/build/dom/NetInput.d.ts.map b/build/dom/NetInput.d.ts.map new file mode 100644 index 0000000..c810e72 --- /dev/null +++ b/build/dom/NetInput.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"NetInput.d.ts","sourceRoot":"","sources":["../../src/dom/NetInput.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAMnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,qBAAa,QAAQ;IACnB,OAAO,CAAC,aAAa,CAAuC;IAC5D,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,kBAAkB,CAAiB;IAE3C,OAAO,CAAC,gBAAgB,CAAiB;IACzC,OAAO,CAAC,UAAU,CAAQ;gBAGxB,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC,EAChC,iBAAiB,GAAE,OAAe;IAkCpC,IAAW,YAAY,IAAI,KAAK,CAAC,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC,CAE1D;IAED,IAAW,QAAQ,IAAI,iBAAiB,EAAE,CAEzC;IAED,IAAW,YAAY,IAAI,OAAO,CAEjC;IAED,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,IAAW,eAAe,IAAI,MAAM,EAAE,EAAE,CAEvC;IAED,IAAW,SAAS,IAAI,MAAM,GAAG,SAAS,CAEzC;IAED,IAAW,uBAAuB,IAAI,UAAU,EAAE,CAIjD;IAEM,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,EAAE,CAAC,QAAQ,GAAI,EAAE,CAAC,QAAQ,GAAG,iBAAiB;IAI1E,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE;IAI9C,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAIxC,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAIvC,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU;IAU/D;;;;;;;;OAQG;IACI,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,GAAE,OAAc,GAAG,EAAE,CAAC,QAAQ;CAkCrF"} \ No newline at end of file diff --git a/build/dom/awaitMediaLoaded.d.ts b/build/dom/awaitMediaLoaded.d.ts index d8eca6a..b692c2c 100644 --- a/build/dom/awaitMediaLoaded.d.ts +++ b/build/dom/awaitMediaLoaded.d.ts @@ -1 +1,2 @@ export declare function awaitMediaLoaded(media: HTMLImageElement | HTMLVideoElement | HTMLCanvasElement): Promise; +//# sourceMappingURL=awaitMediaLoaded.d.ts.map \ No newline at end of file diff --git a/build/dom/awaitMediaLoaded.d.ts.map b/build/dom/awaitMediaLoaded.d.ts.map new file mode 100644 index 0000000..d313474 --- /dev/null +++ b/build/dom/awaitMediaLoaded.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"awaitMediaLoaded.d.ts","sourceRoot":"","sources":["../../src/dom/awaitMediaLoaded.ts"],"names":[],"mappings":"AAGA,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,GAAG,gBAAgB,GAAG,iBAAiB,oBAwB9F"} \ No newline at end of file diff --git a/build/dom/bufferToImage.d.ts b/build/dom/bufferToImage.d.ts index f153ac7..eb3d881 100644 --- a/build/dom/bufferToImage.d.ts +++ b/build/dom/bufferToImage.d.ts @@ -1 +1,2 @@ export declare function bufferToImage(buf: Blob): Promise; +//# sourceMappingURL=bufferToImage.d.ts.map \ No newline at end of file diff --git a/build/dom/bufferToImage.d.ts.map b/build/dom/bufferToImage.d.ts.map new file mode 100644 index 0000000..b0b1a64 --- /dev/null +++ b/build/dom/bufferToImage.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"bufferToImage.d.ts","sourceRoot":"","sources":["../../src/dom/bufferToImage.ts"],"names":[],"mappings":"AAEA,wBAAgB,aAAa,CAAC,GAAG,EAAE,IAAI,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAoBlE"} \ No newline at end of file diff --git a/build/dom/createCanvas.d.ts b/build/dom/createCanvas.d.ts index 73ea4d5..3cbb012 100644 --- a/build/dom/createCanvas.d.ts +++ b/build/dom/createCanvas.d.ts @@ -1,3 +1,4 @@ import { IDimensions } from '../classes/Dimensions'; export declare function createCanvas({ width, height }: IDimensions): HTMLCanvasElement; export declare function createCanvasFromMedia(media: HTMLImageElement | HTMLVideoElement | ImageData, dims?: IDimensions): HTMLCanvasElement; +//# sourceMappingURL=createCanvas.d.ts.map \ No newline at end of file diff --git a/build/dom/createCanvas.d.ts.map b/build/dom/createCanvas.d.ts.map new file mode 100644 index 0000000..8539d2a --- /dev/null +++ b/build/dom/createCanvas.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"createCanvas.d.ts","sourceRoot":"","sources":["../../src/dom/createCanvas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAMpD,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,WAAW,GAAG,iBAAiB,CAO9E;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,gBAAgB,GAAG,gBAAgB,GAAG,SAAS,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,iBAAiB,CAiBnI"} \ No newline at end of file diff --git a/build/dom/extractFaceTensors.d.ts b/build/dom/extractFaceTensors.d.ts index 751da7c..517d7f0 100644 --- a/build/dom/extractFaceTensors.d.ts +++ b/build/dom/extractFaceTensors.d.ts @@ -12,3 +12,4 @@ import { FaceDetection } from '../classes/FaceDetection'; * @returns Tensors of the corresponding image region for each detected face. */ export declare function extractFaceTensors(imageTensor: tf.Tensor3D | tf.Tensor4D, detections: Array): Promise; +//# sourceMappingURL=extractFaceTensors.d.ts.map \ No newline at end of file diff --git a/build/dom/extractFaceTensors.d.ts.map b/build/dom/extractFaceTensors.d.ts.map new file mode 100644 index 0000000..2062035 --- /dev/null +++ b/build/dom/extractFaceTensors.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"extractFaceTensors.d.ts","sourceRoot":"","sources":["../../src/dom/extractFaceTensors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGzD;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,EACtC,UAAU,EAAE,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,GACtC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CA0BxB"} \ No newline at end of file diff --git a/build/dom/extractFaces.d.ts b/build/dom/extractFaces.d.ts index 562e7da..c7b83f7 100644 --- a/build/dom/extractFaces.d.ts +++ b/build/dom/extractFaces.d.ts @@ -9,3 +9,4 @@ import { TNetInput } from './types'; * @returns The Canvases of the corresponding image region for each detected face. */ export declare function extractFaces(input: TNetInput, detections: Array): Promise; +//# sourceMappingURL=extractFaces.d.ts.map \ No newline at end of file diff --git a/build/dom/extractFaces.d.ts.map b/build/dom/extractFaces.d.ts.map new file mode 100644 index 0000000..649d101 --- /dev/null +++ b/build/dom/extractFaces.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"extractFaces.d.ts","sourceRoot":"","sources":["../../src/dom/extractFaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAMvC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC;;;;;;GAMG;AACH,wBAAsB,YAAY,CAChC,KAAK,EAAE,SAAS,EAChB,UAAU,EAAE,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,GACtC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAiC9B"} \ No newline at end of file diff --git a/build/dom/fetchImage.d.ts b/build/dom/fetchImage.d.ts index f072b3e..02fdad1 100644 --- a/build/dom/fetchImage.d.ts +++ b/build/dom/fetchImage.d.ts @@ -1 +1,2 @@ export declare function fetchImage(uri: string): Promise; +//# sourceMappingURL=fetchImage.d.ts.map \ No newline at end of file diff --git a/build/dom/fetchImage.d.ts.map b/build/dom/fetchImage.d.ts.map new file mode 100644 index 0000000..1ce45eb --- /dev/null +++ b/build/dom/fetchImage.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"fetchImage.d.ts","sourceRoot":"","sources":["../../src/dom/fetchImage.ts"],"names":[],"mappings":"AAGA,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAQvE"} \ No newline at end of file diff --git a/build/dom/fetchJson.d.ts b/build/dom/fetchJson.d.ts index bdb5a0b..6f895e4 100644 --- a/build/dom/fetchJson.d.ts +++ b/build/dom/fetchJson.d.ts @@ -1 +1,2 @@ export declare function fetchJson(uri: string): Promise; +//# sourceMappingURL=fetchJson.d.ts.map \ No newline at end of file diff --git a/build/dom/fetchJson.d.ts.map b/build/dom/fetchJson.d.ts.map new file mode 100644 index 0000000..5617f7d --- /dev/null +++ b/build/dom/fetchJson.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"fetchJson.d.ts","sourceRoot":"","sources":["../../src/dom/fetchJson.ts"],"names":[],"mappings":"AAEA,wBAAsB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAE1D"} \ No newline at end of file diff --git a/build/dom/fetchNetWeights.d.ts b/build/dom/fetchNetWeights.d.ts index f0875fe..10a5191 100644 --- a/build/dom/fetchNetWeights.d.ts +++ b/build/dom/fetchNetWeights.d.ts @@ -1 +1,2 @@ export declare function fetchNetWeights(uri: string): Promise; +//# sourceMappingURL=fetchNetWeights.d.ts.map \ No newline at end of file diff --git a/build/dom/fetchNetWeights.d.ts.map b/build/dom/fetchNetWeights.d.ts.map new file mode 100644 index 0000000..4e30092 --- /dev/null +++ b/build/dom/fetchNetWeights.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"fetchNetWeights.d.ts","sourceRoot":"","sources":["../../src/dom/fetchNetWeights.ts"],"names":[],"mappings":"AAEA,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAExE"} \ No newline at end of file diff --git a/build/dom/fetchOrThrow.d.ts b/build/dom/fetchOrThrow.d.ts index a73c618..414721d 100644 --- a/build/dom/fetchOrThrow.d.ts +++ b/build/dom/fetchOrThrow.d.ts @@ -1 +1,2 @@ export declare function fetchOrThrow(url: string, init?: RequestInit): Promise; +//# sourceMappingURL=fetchOrThrow.d.ts.map \ No newline at end of file diff --git a/build/dom/fetchOrThrow.d.ts.map b/build/dom/fetchOrThrow.d.ts.map new file mode 100644 index 0000000..e7ee2bb --- /dev/null +++ b/build/dom/fetchOrThrow.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"fetchOrThrow.d.ts","sourceRoot":"","sources":["../../src/dom/fetchOrThrow.ts"],"names":[],"mappings":"AAEA,wBAAsB,YAAY,CAChC,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,WAAW,GACjB,OAAO,CAAC,QAAQ,CAAC,CAQnB"} \ No newline at end of file diff --git a/build/dom/getContext2dOrThrow.d.ts b/build/dom/getContext2dOrThrow.d.ts index d9dcd4a..68f7f5b 100644 --- a/build/dom/getContext2dOrThrow.d.ts +++ b/build/dom/getContext2dOrThrow.d.ts @@ -1 +1,2 @@ export declare function getContext2dOrThrow(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D): CanvasRenderingContext2D; +//# sourceMappingURL=getContext2dOrThrow.d.ts.map \ No newline at end of file diff --git a/build/dom/getContext2dOrThrow.d.ts.map b/build/dom/getContext2dOrThrow.d.ts.map new file mode 100644 index 0000000..4ad3099 --- /dev/null +++ b/build/dom/getContext2dOrThrow.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"getContext2dOrThrow.d.ts","sourceRoot":"","sources":["../../src/dom/getContext2dOrThrow.ts"],"names":[],"mappings":"AAGA,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,iBAAiB,GAAG,wBAAwB,GAAG,wBAAwB,CAoB9H"} \ No newline at end of file diff --git a/build/dom/getMediaDimensions.d.ts b/build/dom/getMediaDimensions.d.ts index a946f38..1da5924 100644 --- a/build/dom/getMediaDimensions.d.ts +++ b/build/dom/getMediaDimensions.d.ts @@ -1,2 +1,3 @@ import { Dimensions, IDimensions } from '../classes/Dimensions'; export declare function getMediaDimensions(input: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | IDimensions): Dimensions; +//# sourceMappingURL=getMediaDimensions.d.ts.map \ No newline at end of file diff --git a/build/dom/getMediaDimensions.d.ts.map b/build/dom/getMediaDimensions.d.ts.map new file mode 100644 index 0000000..a2b1a83 --- /dev/null +++ b/build/dom/getMediaDimensions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"getMediaDimensions.d.ts","sourceRoot":"","sources":["../../src/dom/getMediaDimensions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGhE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,WAAW,GAAG,UAAU,CAW3H"} \ No newline at end of file diff --git a/build/dom/imageTensorToCanvas.d.ts b/build/dom/imageTensorToCanvas.d.ts index 194df68..6ba317d 100644 --- a/build/dom/imageTensorToCanvas.d.ts +++ b/build/dom/imageTensorToCanvas.d.ts @@ -1,2 +1,3 @@ import * as tf from '@tensorflow/tfjs-core'; export declare function imageTensorToCanvas(imgTensor: tf.Tensor, canvas?: HTMLCanvasElement): Promise; +//# sourceMappingURL=imageTensorToCanvas.d.ts.map \ No newline at end of file diff --git a/build/dom/imageTensorToCanvas.d.ts.map b/build/dom/imageTensorToCanvas.d.ts.map new file mode 100644 index 0000000..57a0388 --- /dev/null +++ b/build/dom/imageTensorToCanvas.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"imageTensorToCanvas.d.ts","sourceRoot":"","sources":["../../src/dom/imageTensorToCanvas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAK5C,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,EAAE,CAAC,MAAM,EACpB,MAAM,CAAC,EAAE,iBAAiB,GACzB,OAAO,CAAC,iBAAiB,CAAC,CAW5B"} \ No newline at end of file diff --git a/build/dom/imageToSquare.d.ts b/build/dom/imageToSquare.d.ts index 7276c53..3a0e400 100644 --- a/build/dom/imageToSquare.d.ts +++ b/build/dom/imageToSquare.d.ts @@ -1 +1,2 @@ export declare function imageToSquare(input: HTMLImageElement | HTMLCanvasElement, inputSize: number, centerImage?: boolean): HTMLCanvasElement; +//# sourceMappingURL=imageToSquare.d.ts.map \ No newline at end of file diff --git a/build/dom/imageToSquare.d.ts.map b/build/dom/imageToSquare.d.ts.map new file mode 100644 index 0000000..3019469 --- /dev/null +++ b/build/dom/imageToSquare.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"imageToSquare.d.ts","sourceRoot":"","sources":["../../src/dom/imageToSquare.ts"],"names":[],"mappings":"AAKA,wBAAgB,aAAa,CAAC,KAAK,EAAE,gBAAgB,GAAG,iBAAiB,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAE,OAAe,qBAsBzH"} \ No newline at end of file diff --git a/build/dom/index.d.ts b/build/dom/index.d.ts index 10e5aff..193675f 100644 --- a/build/dom/index.d.ts +++ b/build/dom/index.d.ts @@ -19,3 +19,4 @@ export * from './NetInput'; export * from './resolveInput'; export * from './toNetInput'; export * from './types'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/build/dom/index.d.ts.map b/build/dom/index.d.ts.map new file mode 100644 index 0000000..cf719f1 --- /dev/null +++ b/build/dom/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dom/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,sBAAsB,CAAA;AACpC,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,mBAAmB,CAAA;AACjC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,SAAS,CAAA"} \ No newline at end of file diff --git a/build/dom/isMediaElement.d.ts b/build/dom/isMediaElement.d.ts index 1d359c2..99e2537 100644 --- a/build/dom/isMediaElement.d.ts +++ b/build/dom/isMediaElement.d.ts @@ -1 +1,2 @@ export declare function isMediaElement(input: any): boolean; +//# sourceMappingURL=isMediaElement.d.ts.map \ No newline at end of file diff --git a/build/dom/isMediaElement.d.ts.map b/build/dom/isMediaElement.d.ts.map new file mode 100644 index 0000000..483b7b0 --- /dev/null +++ b/build/dom/isMediaElement.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"isMediaElement.d.ts","sourceRoot":"","sources":["../../src/dom/isMediaElement.ts"],"names":[],"mappings":"AAEA,wBAAgB,cAAc,CAAC,KAAK,EAAE,GAAG,WAOxC"} \ No newline at end of file diff --git a/build/dom/isMediaLoaded.d.ts b/build/dom/isMediaLoaded.d.ts index 211e01e..10837b4 100644 --- a/build/dom/isMediaLoaded.d.ts +++ b/build/dom/isMediaLoaded.d.ts @@ -1 +1,2 @@ export declare function isMediaLoaded(media: HTMLImageElement | HTMLVideoElement): boolean; +//# sourceMappingURL=isMediaLoaded.d.ts.map \ No newline at end of file diff --git a/build/dom/isMediaLoaded.d.ts.map b/build/dom/isMediaLoaded.d.ts.map new file mode 100644 index 0000000..607153f --- /dev/null +++ b/build/dom/isMediaLoaded.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"isMediaLoaded.d.ts","sourceRoot":"","sources":["../../src/dom/isMediaLoaded.ts"],"names":[],"mappings":"AAEA,wBAAgB,aAAa,CAAC,KAAK,EAAE,gBAAgB,GAAG,gBAAgB,GAAI,OAAO,CAMlF"} \ No newline at end of file diff --git a/build/dom/loadWeightMap.d.ts b/build/dom/loadWeightMap.d.ts index 942ed6a..7017212 100644 --- a/build/dom/loadWeightMap.d.ts +++ b/build/dom/loadWeightMap.d.ts @@ -1,2 +1,3 @@ import * as tf from '@tensorflow/tfjs-core'; export declare function loadWeightMap(uri: string | undefined, defaultModelName: string): Promise; +//# sourceMappingURL=loadWeightMap.d.ts.map \ No newline at end of file diff --git a/build/dom/loadWeightMap.d.ts.map b/build/dom/loadWeightMap.d.ts.map new file mode 100644 index 0000000..7bae637 --- /dev/null +++ b/build/dom/loadWeightMap.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"loadWeightMap.d.ts","sourceRoot":"","sources":["../../src/dom/loadWeightMap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAK5C,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,EAAE,CAAC,cAAc,CAAC,CAM5B"} \ No newline at end of file diff --git a/build/dom/matchDimensions.d.ts b/build/dom/matchDimensions.d.ts index 9fab19a..d3f741d 100644 --- a/build/dom/matchDimensions.d.ts +++ b/build/dom/matchDimensions.d.ts @@ -3,3 +3,4 @@ export declare function matchDimensions(input: IDimensions, reference: IDimensio width: number; height: number; }; +//# sourceMappingURL=matchDimensions.d.ts.map \ No newline at end of file diff --git a/build/dom/matchDimensions.d.ts.map b/build/dom/matchDimensions.d.ts.map new file mode 100644 index 0000000..6a8b8db --- /dev/null +++ b/build/dom/matchDimensions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"matchDimensions.d.ts","sourceRoot":"","sources":["../../src/dom/matchDimensions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzC,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,kBAAkB,GAAE,OAAe;;;EAO9G"} \ No newline at end of file diff --git a/build/dom/resolveInput.d.ts b/build/dom/resolveInput.d.ts index 2fa6a8a..2018870 100644 --- a/build/dom/resolveInput.d.ts +++ b/build/dom/resolveInput.d.ts @@ -1 +1,2 @@ export declare function resolveInput(arg: string | any): any; +//# sourceMappingURL=resolveInput.d.ts.map \ No newline at end of file diff --git a/build/dom/resolveInput.d.ts.map b/build/dom/resolveInput.d.ts.map new file mode 100644 index 0000000..b3cc3e7 --- /dev/null +++ b/build/dom/resolveInput.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"resolveInput.d.ts","sourceRoot":"","sources":["../../src/dom/resolveInput.ts"],"names":[],"mappings":"AAEA,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,OAK7C"} \ No newline at end of file diff --git a/build/dom/toNetInput.d.ts b/build/dom/toNetInput.d.ts index b361487..2d6021e 100644 --- a/build/dom/toNetInput.d.ts +++ b/build/dom/toNetInput.d.ts @@ -8,3 +8,4 @@ import { TNetInput } from './types'; * @returns A NetInput instance, which can be passed into one of the neural networks. */ export declare function toNetInput(inputs: TNetInput): Promise; +//# sourceMappingURL=toNetInput.d.ts.map \ No newline at end of file diff --git a/build/dom/toNetInput.d.ts.map b/build/dom/toNetInput.d.ts.map new file mode 100644 index 0000000..363ee4f --- /dev/null +++ b/build/dom/toNetInput.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"toNetInput.d.ts","sourceRoot":"","sources":["../../src/dom/toNetInput.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC;;;;;;GAMG;AACH,wBAAsB,UAAU,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,CA0CrE"} \ No newline at end of file diff --git a/build/dom/types.d.ts b/build/dom/types.d.ts index fac87b2..06d1349 100644 --- a/build/dom/types.d.ts +++ b/build/dom/types.d.ts @@ -4,3 +4,4 @@ export declare type TMediaElement = HTMLImageElement | HTMLVideoElement | HTMLCa export declare type TResolvedNetInput = TMediaElement | tf.Tensor3D | tf.Tensor4D; export declare type TNetInputArg = string | TResolvedNetInput; export declare type TNetInput = TNetInputArg | Array | NetInput | tf.Tensor4D; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/build/dom/types.d.ts.map b/build/dom/types.d.ts.map new file mode 100644 index 0000000..7bb2d56 --- /dev/null +++ b/build/dom/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/dom/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,oBAAY,aAAa,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,iBAAiB,CAAA;AAEnF,oBAAY,iBAAiB,GAAG,aAAa,GAAG,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAA;AAEzE,oBAAY,YAAY,GAAG,MAAM,GAAG,iBAAiB,CAAA;AAErD,oBAAY,SAAS,GAAG,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAA"} \ No newline at end of file diff --git a/build/dom/types.js b/build/dom/types.js index 5b2306a..718fd38 100644 --- a/build/dom/types.js +++ b/build/dom/types.js @@ -1 +1,2 @@ +export {}; //# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/build/draw/DrawBox.d.ts b/build/draw/DrawBox.d.ts index 6fd97be..960c8fe 100644 --- a/build/draw/DrawBox.d.ts +++ b/build/draw/DrawBox.d.ts @@ -19,3 +19,4 @@ export declare class DrawBox { constructor(box: IBoundingBox | IRect, options?: IDrawBoxOptions); draw(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D): void; } +//# sourceMappingURL=DrawBox.d.ts.map \ No newline at end of file diff --git a/build/draw/DrawBox.d.ts.map b/build/draw/DrawBox.d.ts.map new file mode 100644 index 0000000..0b2c476 --- /dev/null +++ b/build/draw/DrawBox.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"DrawBox.d.ts","sourceRoot":"","sources":["../../src/draw/DrawBox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEtD,OAAO,EAAiC,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE7G,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,CAAC,EAAE,qBAAqB,CAAA;IACxC,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,qBAAa,cAAc;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,gBAAgB,EAAE,oBAAoB,CAAA;IACtC,KAAK,CAAC,EAAE,MAAM,CAAA;gBAET,OAAO,GAAE,eAAoB;CAY1C;AAED,qBAAa,OAAO;IACX,GAAG,EAAE,GAAG,CAAA;IACR,OAAO,EAAE,cAAc,CAAA;gBAG5B,GAAG,EAAE,YAAY,GAAG,KAAK,EACzB,OAAO,GAAE,eAAoB;IAM/B,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,iBAAiB,GAAG,wBAAwB;CAetE"} \ No newline at end of file diff --git a/build/draw/DrawFaceLandmarks.d.ts b/build/draw/DrawFaceLandmarks.d.ts index 4833c4b..f6c61cc 100644 --- a/build/draw/DrawFaceLandmarks.d.ts +++ b/build/draw/DrawFaceLandmarks.d.ts @@ -26,3 +26,4 @@ export declare class DrawFaceLandmarks { } export declare type DrawFaceLandmarksInput = FaceLandmarks | WithFaceLandmarks>; export declare function drawFaceLandmarks(canvasArg: string | HTMLCanvasElement, faceLandmarks: DrawFaceLandmarksInput | Array): void; +//# sourceMappingURL=DrawFaceLandmarks.d.ts.map \ No newline at end of file diff --git a/build/draw/DrawFaceLandmarks.d.ts.map b/build/draw/DrawFaceLandmarks.d.ts.map new file mode 100644 index 0000000..7f4817b --- /dev/null +++ b/build/draw/DrawFaceLandmarks.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"DrawFaceLandmarks.d.ts","sourceRoot":"","sources":["../../src/draw/DrawFaceLandmarks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAuB,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAGxF,MAAM,WAAW,yBAAyB;IACxC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,qBAAa,wBAAwB;IAC5B,SAAS,EAAE,OAAO,CAAA;IAClB,UAAU,EAAE,OAAO,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;gBAEb,OAAO,GAAE,yBAA8B;CASpD;AAED,qBAAa,iBAAiB;IACrB,aAAa,EAAE,aAAa,CAAA;IAC5B,OAAO,EAAE,wBAAwB,CAAA;gBAGtC,aAAa,EAAE,aAAa,EAC5B,OAAO,GAAE,yBAA8B;IAMzC,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,iBAAiB,GAAG,wBAAwB;CA6BtE;AAED,oBAAY,sBAAsB,GAAG,aAAa,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAA;AAE7F,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,GAAG,iBAAiB,EACrC,aAAa,EAAE,sBAAsB,GAAG,KAAK,CAAC,sBAAsB,CAAC,QAatE"} \ No newline at end of file diff --git a/build/draw/DrawTextField.d.ts b/build/draw/DrawTextField.d.ts index abed043..efe920e 100644 --- a/build/draw/DrawTextField.d.ts +++ b/build/draw/DrawTextField.d.ts @@ -32,3 +32,4 @@ export declare class DrawTextField { getUpperLeft(ctx: CanvasRenderingContext2D, canvasDims?: IDimensions): IPoint; draw(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D): void; } +//# sourceMappingURL=DrawTextField.d.ts.map \ No newline at end of file diff --git a/build/draw/DrawTextField.d.ts.map b/build/draw/DrawTextField.d.ts.map new file mode 100644 index 0000000..7231b9c --- /dev/null +++ b/build/draw/DrawTextField.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"DrawTextField.d.ts","sourceRoot":"","sources":["../../src/draw/DrawTextField.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAIjD,oBAAY,cAAc;IACxB,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,WAAW,gBAAgB;IAC3B,YAAY,iBAAiB;CAC9B;AAED,MAAM,WAAW,qBAAqB;IACpC,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,qBAAa,oBAAqB,YAAW,qBAAqB;IACzD,cAAc,EAAE,cAAc,CAAA;IAC9B,eAAe,EAAE,MAAM,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;gBAEV,OAAO,GAAE,qBAA0B;CAShD;AAED,qBAAa,aAAa;IACjB,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,MAAM,EAAG,MAAM,CAAA;IACf,OAAO,EAAE,oBAAoB,CAAA;gBAGlC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,aAAa,EACvC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,qBAA0B;IASrC,YAAY,CAAC,GAAG,EAAE,wBAAwB,GAAG,MAAM;IAKnD,aAAa,IAAI,MAAM;IAKvB,YAAY,CAAC,GAAG,EAAE,wBAAwB,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM;IAoB7E,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,iBAAiB,GAAG,wBAAwB;CAqBtE"} \ No newline at end of file diff --git a/build/draw/drawContour.d.ts b/build/draw/drawContour.d.ts index 209c87d..d947f32 100644 --- a/build/draw/drawContour.d.ts +++ b/build/draw/drawContour.d.ts @@ -1,2 +1,3 @@ import { Point } from '../classes'; export declare function drawContour(ctx: CanvasRenderingContext2D, points: Point[], isClosed?: boolean): void; +//# sourceMappingURL=drawContour.d.ts.map \ No newline at end of file diff --git a/build/draw/drawContour.d.ts.map b/build/draw/drawContour.d.ts.map new file mode 100644 index 0000000..0d40b23 --- /dev/null +++ b/build/draw/drawContour.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"drawContour.d.ts","sourceRoot":"","sources":["../../src/draw/drawContour.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,wBAAgB,WAAW,CACzB,GAAG,EAAE,wBAAwB,EAC7B,MAAM,EAAE,KAAK,EAAE,EACf,QAAQ,GAAE,OAAe,QAsB1B"} \ No newline at end of file diff --git a/build/draw/drawDetections.d.ts b/build/draw/drawDetections.d.ts index 9e94d7e..ee31bb8 100644 --- a/build/draw/drawDetections.d.ts +++ b/build/draw/drawDetections.d.ts @@ -3,3 +3,4 @@ import { FaceDetection } from '../classes/FaceDetection'; import { WithFaceDetection } from '../factories/WithFaceDetection'; export declare type TDrawDetectionsInput = IRect | IBoundingBox | FaceDetection | WithFaceDetection<{}>; export declare function drawDetections(canvasArg: string | HTMLCanvasElement, detections: TDrawDetectionsInput | Array): void; +//# sourceMappingURL=drawDetections.d.ts.map \ No newline at end of file diff --git a/build/draw/drawDetections.d.ts.map b/build/draw/drawDetections.d.ts.map new file mode 100644 index 0000000..6aee208 --- /dev/null +++ b/build/draw/drawDetections.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"drawDetections.d.ts","sourceRoot":"","sources":["../../src/draw/drawDetections.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,YAAY,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAuB,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAIxF,oBAAY,oBAAoB,GAAG,KAAK,GAAG,YAAY,GAAG,aAAa,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAA;AAE/F,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,GAAG,iBAAiB,EACrC,UAAU,EAAE,oBAAoB,GAAG,KAAK,CAAC,oBAAoB,CAAC,QAgB/D"} \ No newline at end of file diff --git a/build/draw/drawFaceExpressions.d.ts b/build/draw/drawFaceExpressions.d.ts index f96cc10..435889a 100644 --- a/build/draw/drawFaceExpressions.d.ts +++ b/build/draw/drawFaceExpressions.d.ts @@ -3,3 +3,4 @@ import { FaceExpressions } from '../faceExpressionNet'; import { WithFaceExpressions } from '../factories/WithFaceExpressions'; export declare type DrawFaceExpressionsInput = FaceExpressions | WithFaceExpressions<{}>; export declare function drawFaceExpressions(canvasArg: string | HTMLCanvasElement, faceExpressions: DrawFaceExpressionsInput | Array, minConfidence?: number, textFieldAnchor?: IPoint): void; +//# sourceMappingURL=drawFaceExpressions.d.ts.map \ No newline at end of file diff --git a/build/draw/drawFaceExpressions.d.ts.map b/build/draw/drawFaceExpressions.d.ts.map new file mode 100644 index 0000000..7f6e74d --- /dev/null +++ b/build/draw/drawFaceExpressions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"drawFaceExpressions.d.ts","sourceRoot":"","sources":["../../src/draw/drawFaceExpressions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAS,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAyB,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAI9F,oBAAY,wBAAwB,GAAG,eAAe,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAA;AAEhF,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,GAAG,iBAAiB,EACrC,eAAe,EAAE,wBAAwB,GAAG,KAAK,CAAC,wBAAwB,CAAC,EAC3E,aAAa,SAAM,EACnB,eAAe,CAAC,EAAE,MAAM,QAyBzB"} \ No newline at end of file diff --git a/build/draw/index.d.ts b/build/draw/index.d.ts index 520d940..4f0f1cf 100644 --- a/build/draw/index.d.ts +++ b/build/draw/index.d.ts @@ -4,3 +4,4 @@ export * from './drawFaceExpressions'; export * from './DrawBox'; export * from './DrawFaceLandmarks'; export * from './DrawTextField'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/build/draw/index.d.ts.map b/build/draw/index.d.ts.map new file mode 100644 index 0000000..155481b --- /dev/null +++ b/build/draw/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/draw/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,WAAW,CAAA;AACzB,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA"} \ No newline at end of file diff --git a/build/env/createBrowserEnv.d.ts b/build/env/createBrowserEnv.d.ts index f7f144c..fd2116a 100644 --- a/build/env/createBrowserEnv.d.ts +++ b/build/env/createBrowserEnv.d.ts @@ -1,2 +1,3 @@ import { Environment } from './types'; export declare function createBrowserEnv(): Environment; +//# sourceMappingURL=createBrowserEnv.d.ts.map \ No newline at end of file diff --git a/build/env/createBrowserEnv.d.ts.map b/build/env/createBrowserEnv.d.ts.map new file mode 100644 index 0000000..7fd9c24 --- /dev/null +++ b/build/env/createBrowserEnv.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"createBrowserEnv.d.ts","sourceRoot":"","sources":["../../src/env/createBrowserEnv.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,wBAAgB,gBAAgB,IAAI,WAAW,CAqB9C"} \ No newline at end of file diff --git a/build/env/createFileSystem.d.ts b/build/env/createFileSystem.d.ts index 9e53e28..1698b98 100644 --- a/build/env/createFileSystem.d.ts +++ b/build/env/createFileSystem.d.ts @@ -1,2 +1,3 @@ import { FileSystem } from './types'; export declare function createFileSystem(fs?: any): FileSystem; +//# sourceMappingURL=createFileSystem.d.ts.map \ No newline at end of file diff --git a/build/env/createFileSystem.d.ts.map b/build/env/createFileSystem.d.ts.map new file mode 100644 index 0000000..602b7c1 --- /dev/null +++ b/build/env/createFileSystem.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"createFileSystem.d.ts","sourceRoot":"","sources":["../../src/env/createFileSystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,wBAAgB,gBAAgB,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,UAAU,CA2BrD"} \ No newline at end of file diff --git a/build/env/createNodejsEnv.d.ts b/build/env/createNodejsEnv.d.ts index a64159b..d49ca52 100644 --- a/build/env/createNodejsEnv.d.ts +++ b/build/env/createNodejsEnv.d.ts @@ -1,2 +1,3 @@ import { Environment } from './types'; export declare function createNodejsEnv(): Environment; +//# sourceMappingURL=createNodejsEnv.d.ts.map \ No newline at end of file diff --git a/build/env/createNodejsEnv.d.ts.map b/build/env/createNodejsEnv.d.ts.map new file mode 100644 index 0000000..0207973 --- /dev/null +++ b/build/env/createNodejsEnv.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"createNodejsEnv.d.ts","sourceRoot":"","sources":["../../src/env/createNodejsEnv.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,wBAAgB,eAAe,IAAI,WAAW,CAoC7C"} \ No newline at end of file diff --git a/build/env/index.d.ts b/build/env/index.d.ts index 525a8ab..8805605 100644 --- a/build/env/index.d.ts +++ b/build/env/index.d.ts @@ -20,3 +20,4 @@ export declare const env: { isNodejs: typeof isNodejs; }; export * from './types'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/build/env/index.d.ts.map b/build/env/index.d.ts.map new file mode 100644 index 0000000..f882103 --- /dev/null +++ b/build/env/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/env/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAItC,iBAAS,MAAM,IAAI,WAAW,CAK7B;AAED,iBAAS,MAAM,CAAC,GAAG,EAAE,WAAW,QAE/B;AAED,iBAAS,UAAU,SASlB;AAED,iBAAS,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,WAAW,CAAC,QAmB7C;AAED,eAAO,MAAM,GAAG;;;;;;;;;;CAUf,CAAA;AAID,cAAc,SAAS,CAAA"} \ No newline at end of file diff --git a/build/env/isBrowser.d.ts b/build/env/isBrowser.d.ts index adcd129..efdc668 100644 --- a/build/env/isBrowser.d.ts +++ b/build/env/isBrowser.d.ts @@ -1 +1,2 @@ export declare function isBrowser(): boolean; +//# sourceMappingURL=isBrowser.d.ts.map \ No newline at end of file diff --git a/build/env/isBrowser.d.ts.map b/build/env/isBrowser.d.ts.map new file mode 100644 index 0000000..14a3b6d --- /dev/null +++ b/build/env/isBrowser.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"isBrowser.d.ts","sourceRoot":"","sources":["../../src/env/isBrowser.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,IAAI,OAAO,CAQnC"} \ No newline at end of file diff --git a/build/env/isNodejs.d.ts b/build/env/isNodejs.d.ts index 6c90f35..08a19ae 100644 --- a/build/env/isNodejs.d.ts +++ b/build/env/isNodejs.d.ts @@ -1 +1,2 @@ export declare function isNodejs(): boolean; +//# sourceMappingURL=isNodejs.d.ts.map \ No newline at end of file diff --git a/build/env/isNodejs.d.ts.map b/build/env/isNodejs.d.ts.map new file mode 100644 index 0000000..637acc1 --- /dev/null +++ b/build/env/isNodejs.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"isNodejs.d.ts","sourceRoot":"","sources":["../../src/env/isNodejs.ts"],"names":[],"mappings":"AAAA,wBAAgB,QAAQ,IAAI,OAAO,CAOlC"} \ No newline at end of file diff --git a/build/env/types.d.ts b/build/env/types.d.ts index 5337ab3..7fb76f9 100644 --- a/build/env/types.d.ts +++ b/build/env/types.d.ts @@ -12,3 +12,4 @@ export declare type Environment = FileSystem & { createImageElement: () => HTMLImageElement; fetch: (url: string, init?: RequestInit) => Promise; }; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/build/env/types.d.ts.map b/build/env/types.d.ts.map new file mode 100644 index 0000000..8c9f9dc --- /dev/null +++ b/build/env/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/env/types.ts"],"names":[],"mappings":";AAAA,oBAAY,UAAU,GAAG;IACvB,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;CAChD,CAAA;AAED,oBAAY,WAAW,GAAG,UAAU,GAAG;IACrC,MAAM,EAAE,OAAO,iBAAiB,CAAA;IAChC,wBAAwB,EAAE,OAAO,wBAAwB,CAAA;IACzD,KAAK,EAAE,OAAO,gBAAgB,CAAA;IAC9B,SAAS,EAAE,OAAO,SAAS,CAAA;IAC3B,KAAK,EAAE,OAAO,gBAAgB,CAAA;IAC9B,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;IAC5C,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;IAC1C,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;CAC9D,CAAA"} \ No newline at end of file diff --git a/build/env/types.js b/build/env/types.js index 5b2306a..718fd38 100644 --- a/build/env/types.js +++ b/build/env/types.js @@ -1 +1,2 @@ +export {}; //# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/build/euclideanDistance.d.ts b/build/euclideanDistance.d.ts index d555de2..003a95d 100644 --- a/build/euclideanDistance.d.ts +++ b/build/euclideanDistance.d.ts @@ -1 +1,2 @@ export declare function euclideanDistance(arr1: number[] | Float32Array, arr2: number[] | Float32Array): number; +//# sourceMappingURL=euclideanDistance.d.ts.map \ No newline at end of file diff --git a/build/euclideanDistance.d.ts.map b/build/euclideanDistance.d.ts.map new file mode 100644 index 0000000..84007a7 --- /dev/null +++ b/build/euclideanDistance.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"euclideanDistance.d.ts","sourceRoot":"","sources":["../src/euclideanDistance.ts"],"names":[],"mappings":"AAAA,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,UAW7F"} \ No newline at end of file diff --git a/build/euclideanDistance.js b/build/euclideanDistance.js index 04e3ca0..f8056d8 100644 --- a/build/euclideanDistance.js +++ b/build/euclideanDistance.js @@ -1,6 +1,7 @@ export function euclideanDistance(arr1, arr2) { - if (arr1.length !== arr2.length) + if (arr1.length !== arr2.length) { throw new Error('euclideanDistance: arr1.length !== arr2.length'); + } const desc1 = Array.from(arr1); const desc2 = Array.from(arr2); return Math.sqrt(desc1 diff --git a/build/euclideanDistance.js.map b/build/euclideanDistance.js.map index 0f5a0d0..f503ad4 100644 --- a/build/euclideanDistance.js.map +++ b/build/euclideanDistance.js.map @@ -1 +1 @@ -{"version":3,"file":"euclideanDistance.js","sourceRoot":"","sources":["../src/euclideanDistance.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,iBAAiB,CAAC,IAA6B,EAAE,IAA6B;IAC5F,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;QAC7B,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAA;IAEnE,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAE9B,OAAO,IAAI,CAAC,IAAI,CACd,KAAK;SACF,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;SAC/B,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CACrD,CAAA;AACH,CAAC"} \ No newline at end of file +{"version":3,"file":"euclideanDistance.js","sourceRoot":"","sources":["../src/euclideanDistance.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,iBAAiB,CAAC,IAA6B,EAAE,IAA6B;IAC5F,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;QAC/B,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAA;KAClE;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC9B,OAAO,IAAI,CAAC,IAAI,CACd,KAAK;SACF,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;SAC/B,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CACrD,CAAA;AACH,CAAC"} \ No newline at end of file diff --git a/build/faceExpressionNet/FaceExpressionNet.d.ts b/build/faceExpressionNet/FaceExpressionNet.d.ts index 1fbed62..5e485dd 100644 --- a/build/faceExpressionNet/FaceExpressionNet.d.ts +++ b/build/faceExpressionNet/FaceExpressionNet.d.ts @@ -13,3 +13,4 @@ export declare class FaceExpressionNet extends FaceProcessor DenseBlock3Params; extractDenseBlock4Params: (channelsIn: number, channelsOut: number, mappedPrefix: string, isFirstLayer?: boolean) => DenseBlock4Params; }; +//# sourceMappingURL=extractorsFactory.d.ts.map \ No newline at end of file diff --git a/build/faceFeatureExtractor/extractorsFactory.d.ts.map b/build/faceFeatureExtractor/extractorsFactory.d.ts.map new file mode 100644 index 0000000..ee805c3 --- /dev/null +++ b/build/faceFeatureExtractor/extractorsFactory.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"extractorsFactory.d.ts","sourceRoot":"","sources":["../../src/faceFeatureExtractor/extractorsFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,sBAAsB,EACtB,YAAY,EACb,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE/D,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,sBAAsB,EAAE,aAAa,EAAE,YAAY,EAAE;2CAKvD,MAAM,eAAe,MAAM,gBAAgB,MAAM,iBAAgB,OAAO,KAAW,iBAAiB;2CAWpG,MAAM,eAAe,MAAM,gBAAgB,MAAM,iBAAgB,OAAO,KAAW,iBAAiB;EAanJ"} \ No newline at end of file diff --git a/build/faceFeatureExtractor/index.d.ts b/build/faceFeatureExtractor/index.d.ts index 99061f8..36bcfc2 100644 --- a/build/faceFeatureExtractor/index.d.ts +++ b/build/faceFeatureExtractor/index.d.ts @@ -1,2 +1,3 @@ export * from './FaceFeatureExtractor'; export * from './TinyFaceFeatureExtractor'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/build/faceFeatureExtractor/index.d.ts.map b/build/faceFeatureExtractor/index.d.ts.map new file mode 100644 index 0000000..111cb76 --- /dev/null +++ b/build/faceFeatureExtractor/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/faceFeatureExtractor/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC"} \ No newline at end of file diff --git a/build/faceFeatureExtractor/loadParamsFactory.d.ts b/build/faceFeatureExtractor/loadParamsFactory.d.ts index 4e89f77..db13ab1 100644 --- a/build/faceFeatureExtractor/loadParamsFactory.d.ts +++ b/build/faceFeatureExtractor/loadParamsFactory.d.ts @@ -4,3 +4,4 @@ export declare function loadParamsFactory(weightMap: any, paramMappings: ParamMa extractDenseBlock3Params: (prefix: string, isFirstLayer?: boolean) => DenseBlock3Params; extractDenseBlock4Params: (prefix: string, isFirstLayer?: boolean) => DenseBlock4Params; }; +//# sourceMappingURL=loadParamsFactory.d.ts.map \ No newline at end of file diff --git a/build/faceFeatureExtractor/loadParamsFactory.d.ts.map b/build/faceFeatureExtractor/loadParamsFactory.d.ts.map new file mode 100644 index 0000000..1ea06e2 --- /dev/null +++ b/build/faceFeatureExtractor/loadParamsFactory.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"loadParamsFactory.d.ts","sourceRoot":"","sources":["../../src/faceFeatureExtractor/loadParamsFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6D,YAAY,EAAE,MAAM,WAAW,CAAC;AAEpG,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE/D,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE,YAAY,EAAE;uCAOnC,MAAM,iBAAgB,OAAO,KAAW,iBAAiB;uCAUzD,MAAM,iBAAgB,OAAO,KAAW,iBAAiB;EAepG"} \ No newline at end of file diff --git a/build/faceFeatureExtractor/types.d.ts b/build/faceFeatureExtractor/types.d.ts index bec1515..bcd9b64 100644 --- a/build/faceFeatureExtractor/types.d.ts +++ b/build/faceFeatureExtractor/types.d.ts @@ -38,3 +38,4 @@ export interface IFaceFeatureExtractor; } +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/build/faceFeatureExtractor/types.d.ts.map b/build/faceFeatureExtractor/types.d.ts.map new file mode 100644 index 0000000..4adcefe --- /dev/null +++ b/build/faceFeatureExtractor/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/faceFeatureExtractor/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,oBAAY,uBAAuB,GAAG,eAAe,GAAG;IACtD,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAA;CACpB,CAAA;AAED,oBAAY,eAAe,GAAG;IAC5B,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAA;IACjB,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAA;IACrB,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAA;IAClB,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAA;CACpB,CAAA;AAED,oBAAY,gCAAgC,GAAG;IAC7C,SAAS,EAAE,uBAAuB,CAAA;IAClC,SAAS,EAAE,uBAAuB,CAAA;CACnC,CAAA;AAED,oBAAY,iBAAiB,GAAG;IAC9B,KAAK,EAAE,mBAAmB,GAAG,UAAU,CAAA;IACvC,KAAK,EAAE,mBAAmB,CAAA;IAC1B,KAAK,EAAE,mBAAmB,CAAA;CAC3B,CAAA;AAED,oBAAY,iBAAiB,GAAG,iBAAiB,GAAG;IAClD,KAAK,EAAE,mBAAmB,CAAA;CAC3B,CAAA;AAED,oBAAY,8BAA8B,GAAG;IAC3C,MAAM,EAAE,iBAAiB,CAAA;IACzB,MAAM,EAAE,iBAAiB,CAAA;IACzB,MAAM,EAAE,iBAAiB,CAAA;CAC1B,CAAA;AAED,oBAAY,0BAA0B,GAAG;IACvC,MAAM,EAAE,iBAAiB,CAAA;IACzB,MAAM,EAAE,iBAAiB,CAAA;IACzB,MAAM,EAAE,iBAAiB,CAAA;IACzB,MAAM,EAAE,iBAAiB,CAAA;CAC1B,CAAA;AAED,MAAM,WAAW,qBAAqB,CAAC,UAAU,SAAS,8BAA8B,GAAG,0BAA0B,CAAE,SAAQ,aAAa,CAAC,UAAU,CAAC;IACtJ,YAAY,CAAC,KAAK,EAAE,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAA;IAC1C,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAA;CAChD"} \ No newline at end of file diff --git a/build/faceFeatureExtractor/types.js b/build/faceFeatureExtractor/types.js index 5b2306a..718fd38 100644 --- a/build/faceFeatureExtractor/types.js +++ b/build/faceFeatureExtractor/types.js @@ -1 +1,2 @@ +export {}; //# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/build/faceLandmarkNet/FaceLandmark68Net.d.ts b/build/faceLandmarkNet/FaceLandmark68Net.d.ts index ba213c9..708b981 100644 --- a/build/faceLandmarkNet/FaceLandmark68Net.d.ts +++ b/build/faceLandmarkNet/FaceLandmark68Net.d.ts @@ -6,3 +6,4 @@ export declare class FaceLandmark68Net extends FaceLandmark68NetBase; protected getClassifierChannelsOut(): number; } +//# sourceMappingURL=FaceLandmark68NetBase.d.ts.map \ No newline at end of file diff --git a/build/faceLandmarkNet/FaceLandmark68NetBase.d.ts.map b/build/faceLandmarkNet/FaceLandmark68NetBase.d.ts.map new file mode 100644 index 0000000..f4b9a5d --- /dev/null +++ b/build/faceLandmarkNet/FaceLandmark68NetBase.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"FaceLandmark68NetBase.d.ts","sourceRoot":"","sources":["../../src/faceLandmarkNet/FaceLandmark68NetBase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAS,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAc,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,0BAA0B,EAAE,8BAA8B,EAAE,MAAM,+BAA+B,CAAC;AAC3G,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAG/D,8BAAsB,qBAAqB,CACzC,gBAAgB,SAAS,0BAA0B,GAAG,8BAA8B,CAEpF,SAAQ,aAAa,CAAC,gBAAgB,CAAC;IAEhC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,kBAAkB,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,QAAQ;IA6CnG,YAAY,CAAC,KAAK,EAAE,QAAQ,GAAG,EAAE,CAAC,QAAQ;IAWpC,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC;IAI/C,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,eAAe,GAAG,eAAe,EAAE,CAAC;IA6B5F,SAAS,CAAC,wBAAwB,IAAI,MAAM;CAG7C"} \ No newline at end of file diff --git a/build/faceLandmarkNet/FaceLandmark68TinyNet.d.ts b/build/faceLandmarkNet/FaceLandmark68TinyNet.d.ts index 5811187..428164a 100644 --- a/build/faceLandmarkNet/FaceLandmark68TinyNet.d.ts +++ b/build/faceLandmarkNet/FaceLandmark68TinyNet.d.ts @@ -6,3 +6,4 @@ export declare class FaceLandmark68TinyNet extends FaceLandmark68NetBase { paramMappings: import("../common").ParamMapping[]; }; } +//# sourceMappingURL=FaceRecognitionNet.d.ts.map \ No newline at end of file diff --git a/build/faceRecognitionNet/FaceRecognitionNet.d.ts.map b/build/faceRecognitionNet/FaceRecognitionNet.d.ts.map new file mode 100644 index 0000000..61c3c67 --- /dev/null +++ b/build/faceRecognitionNet/FaceRecognitionNet.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"FaceRecognitionNet.d.ts","sourceRoot":"","sources":["../../src/faceRecognitionNet/FaceRecognitionNet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAc,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAMjD,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGpC,qBAAa,kBAAmB,SAAQ,aAAa,CAAC,SAAS,CAAC;;IAMvD,YAAY,CAAC,KAAK,EAAE,QAAQ,GAAG,EAAE,CAAC,QAAQ;IA0CpC,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC;IAI/C,qBAAqB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,GAAC,YAAY,EAAE,CAAC;IAkB1F,SAAS,CAAC,mBAAmB,IAAI,MAAM;IAIvC,SAAS,CAAC,0BAA0B,CAAC,SAAS,EAAE,EAAE,CAAC,cAAc;;;;IAIjE,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,YAAY;;;;CAG9C"} \ No newline at end of file diff --git a/build/faceRecognitionNet/convLayer.d.ts b/build/faceRecognitionNet/convLayer.d.ts index 1640a10..1773542 100644 --- a/build/faceRecognitionNet/convLayer.d.ts +++ b/build/faceRecognitionNet/convLayer.d.ts @@ -3,3 +3,4 @@ import { ConvLayerParams } from './types'; export declare function conv(x: tf.Tensor4D, params: ConvLayerParams): tf.Tensor4D; export declare function convNoRelu(x: tf.Tensor4D, params: ConvLayerParams): tf.Tensor4D; export declare function convDown(x: tf.Tensor4D, params: ConvLayerParams): tf.Tensor4D; +//# sourceMappingURL=convLayer.d.ts.map \ No newline at end of file diff --git a/build/faceRecognitionNet/convLayer.d.ts.map b/build/faceRecognitionNet/convLayer.d.ts.map new file mode 100644 index 0000000..d5239c2 --- /dev/null +++ b/build/faceRecognitionNet/convLayer.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"convLayer.d.ts","sourceRoot":"","sources":["../../src/faceRecognitionNet/convLayer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAG5C,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAkB1C,wBAAgB,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,eAE3D;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,eAEjE;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,eAE/D"} \ No newline at end of file diff --git a/build/faceRecognitionNet/extractParams.d.ts b/build/faceRecognitionNet/extractParams.d.ts index f4e4b30..12cc2d4 100644 --- a/build/faceRecognitionNet/extractParams.d.ts +++ b/build/faceRecognitionNet/extractParams.d.ts @@ -4,3 +4,4 @@ export declare function extractParams(weights: Float32Array): { params: NetParams; paramMappings: ParamMapping[]; }; +//# sourceMappingURL=extractParams.d.ts.map \ No newline at end of file diff --git a/build/faceRecognitionNet/extractParams.d.ts.map b/build/faceRecognitionNet/extractParams.d.ts.map new file mode 100644 index 0000000..bf21c3f --- /dev/null +++ b/build/faceRecognitionNet/extractParams.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"extractParams.d.ts","sourceRoot":"","sources":["../../src/faceRecognitionNet/extractParams.ts"],"names":[],"mappings":"AAEA,OAAO,EAA6D,YAAY,EAAE,MAAM,WAAW,CAAC;AAEpG,OAAO,EAAmB,SAAS,EAAyC,MAAM,SAAS,CAAC;AAwF5F,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,aAAa,EAAE,YAAY,EAAE,CAAA;CAAE,CA8DzG"} \ No newline at end of file diff --git a/build/faceRecognitionNet/extractParamsFromWeigthMap.d.ts b/build/faceRecognitionNet/extractParamsFromWeigthMap.d.ts index 82627ad..163969a 100644 --- a/build/faceRecognitionNet/extractParamsFromWeigthMap.d.ts +++ b/build/faceRecognitionNet/extractParamsFromWeigthMap.d.ts @@ -5,3 +5,4 @@ export declare function extractParamsFromWeigthMap(weightMap: tf.NamedTensorMap) params: NetParams; paramMappings: ParamMapping[]; }; +//# sourceMappingURL=extractParamsFromWeigthMap.d.ts.map \ No newline at end of file diff --git a/build/faceRecognitionNet/extractParamsFromWeigthMap.d.ts.map b/build/faceRecognitionNet/extractParamsFromWeigthMap.d.ts.map new file mode 100644 index 0000000..545ee4d --- /dev/null +++ b/build/faceRecognitionNet/extractParamsFromWeigthMap.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"extractParamsFromWeigthMap.d.ts","sourceRoot":"","sources":["../../src/faceRecognitionNet/extractParamsFromWeigthMap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAyD,YAAY,EAAE,MAAM,WAAW,CAAC;AAEhG,OAAO,EAAmB,SAAS,EAAyC,MAAM,SAAS,CAAC;AAqC5F,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,EAAE,CAAC,cAAc,GAC3B;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,aAAa,EAAE,YAAY,EAAE,CAAA;CAAE,CAyDtD"} \ No newline at end of file diff --git a/build/faceRecognitionNet/index.d.ts b/build/faceRecognitionNet/index.d.ts index 487d6af..4f1e645 100644 --- a/build/faceRecognitionNet/index.d.ts +++ b/build/faceRecognitionNet/index.d.ts @@ -1,3 +1,4 @@ import { FaceRecognitionNet } from './FaceRecognitionNet'; export * from './FaceRecognitionNet'; export declare function createFaceRecognitionNet(weights: Float32Array): FaceRecognitionNet; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/build/faceRecognitionNet/index.d.ts.map b/build/faceRecognitionNet/index.d.ts.map new file mode 100644 index 0000000..12bedc5 --- /dev/null +++ b/build/faceRecognitionNet/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/faceRecognitionNet/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,cAAc,sBAAsB,CAAC;AAErC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,YAAY,sBAI7D"} \ No newline at end of file diff --git a/build/faceRecognitionNet/residualLayer.d.ts b/build/faceRecognitionNet/residualLayer.d.ts index 1656e0a..4c102e1 100644 --- a/build/faceRecognitionNet/residualLayer.d.ts +++ b/build/faceRecognitionNet/residualLayer.d.ts @@ -2,3 +2,4 @@ import * as tf from '@tensorflow/tfjs-core'; import { ResidualLayerParams } from './types'; export declare function residual(x: tf.Tensor4D, params: ResidualLayerParams): tf.Tensor4D; export declare function residualDown(x: tf.Tensor4D, params: ResidualLayerParams): tf.Tensor4D; +//# sourceMappingURL=residualLayer.d.ts.map \ No newline at end of file diff --git a/build/faceRecognitionNet/residualLayer.d.ts.map b/build/faceRecognitionNet/residualLayer.d.ts.map new file mode 100644 index 0000000..1cb8839 --- /dev/null +++ b/build/faceRecognitionNet/residualLayer.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"residualLayer.d.ts","sourceRoot":"","sources":["../../src/faceRecognitionNet/residualLayer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAG5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE9C,wBAAgB,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,mBAAmB,GAAG,EAAE,CAAC,QAAQ,CAMjF;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,mBAAmB,GAAG,EAAE,CAAC,QAAQ,CA0BrF"} \ No newline at end of file diff --git a/build/faceRecognitionNet/scaleLayer.d.ts b/build/faceRecognitionNet/scaleLayer.d.ts index 07a866e..c87771c 100644 --- a/build/faceRecognitionNet/scaleLayer.d.ts +++ b/build/faceRecognitionNet/scaleLayer.d.ts @@ -1,3 +1,4 @@ import * as tf from '@tensorflow/tfjs-core'; import { ScaleLayerParams } from './types'; export declare function scale(x: tf.Tensor4D, params: ScaleLayerParams): tf.Tensor4D; +//# sourceMappingURL=scaleLayer.d.ts.map \ No newline at end of file diff --git a/build/faceRecognitionNet/scaleLayer.d.ts.map b/build/faceRecognitionNet/scaleLayer.d.ts.map new file mode 100644 index 0000000..ae1cd12 --- /dev/null +++ b/build/faceRecognitionNet/scaleLayer.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"scaleLayer.d.ts","sourceRoot":"","sources":["../../src/faceRecognitionNet/scaleLayer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,wBAAgB,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,GAAG,EAAE,CAAC,QAAQ,CAE3E"} \ No newline at end of file diff --git a/build/faceRecognitionNet/types.d.ts b/build/faceRecognitionNet/types.d.ts index 9b0e869..477e933 100644 --- a/build/faceRecognitionNet/types.d.ts +++ b/build/faceRecognitionNet/types.d.ts @@ -30,3 +30,4 @@ export declare type NetParams = { conv256_down_out: ResidualLayerParams; fc: tf.Tensor2D; }; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/build/faceRecognitionNet/types.d.ts.map b/build/faceRecognitionNet/types.d.ts.map new file mode 100644 index 0000000..4893f10 --- /dev/null +++ b/build/faceRecognitionNet/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/faceRecognitionNet/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,oBAAY,gBAAgB,GAAG;IAC7B,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAA;IACpB,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAA;CACpB,CAAA;AACD,oBAAY,mBAAmB,GAAG;IAChC,KAAK,EAAE,eAAe,CAAA;IACtB,KAAK,EAAE,eAAe,CAAA;CACvB,CAAA;AAED,oBAAY,eAAe,GAAG;IAC5B,IAAI,EAAE,UAAU,CAAA;IAChB,KAAK,EAAE,gBAAgB,CAAA;CACxB,CAAA;AAED,oBAAY,SAAS,GAAG;IACtB,WAAW,EAAE,eAAe,CAAA;IAC5B,QAAQ,EAAE,mBAAmB,CAAA;IAC7B,QAAQ,EAAE,mBAAmB,CAAA;IAC7B,QAAQ,EAAE,mBAAmB,CAAA;IAC7B,WAAW,EAAE,mBAAmB,CAAA;IAChC,QAAQ,EAAE,mBAAmB,CAAA;IAC7B,QAAQ,EAAE,mBAAmB,CAAA;IAC7B,QAAQ,EAAE,mBAAmB,CAAA;IAC7B,YAAY,EAAE,mBAAmB,CAAA;IACjC,SAAS,EAAE,mBAAmB,CAAA;IAC9B,SAAS,EAAE,mBAAmB,CAAA;IAC9B,YAAY,EAAE,mBAAmB,CAAA;IACjC,SAAS,EAAE,mBAAmB,CAAA;IAC9B,SAAS,EAAE,mBAAmB,CAAA;IAC9B,gBAAgB,EAAE,mBAAmB,CAAA;IACrC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAA;CAChB,CAAA"} \ No newline at end of file diff --git a/build/faceRecognitionNet/types.js b/build/faceRecognitionNet/types.js index 5b2306a..718fd38 100644 --- a/build/faceRecognitionNet/types.js +++ b/build/faceRecognitionNet/types.js @@ -1 +1,2 @@ +export {}; //# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/build/factories/WithAge.d.ts b/build/factories/WithAge.d.ts index b924852..b3e2750 100644 --- a/build/factories/WithAge.d.ts +++ b/build/factories/WithAge.d.ts @@ -3,3 +3,4 @@ export declare type WithAge = TSource & { }; export declare function isWithAge(obj: any): obj is WithAge<{}>; export declare function extendWithAge(sourceObj: TSource, age: number): WithAge; +//# sourceMappingURL=WithAge.d.ts.map \ No newline at end of file diff --git a/build/factories/WithAge.d.ts.map b/build/factories/WithAge.d.ts.map new file mode 100644 index 0000000..29a388d --- /dev/null +++ b/build/factories/WithAge.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"WithAge.d.ts","sourceRoot":"","sources":["../../src/factories/WithAge.ts"],"names":[],"mappings":"AAAA,oBAAY,OAAO,CAAC,OAAO,IAAI,OAAO,GAAG;IACvC,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,OAAO,CAAC,EAAE,CAAC,CAEtD;AAED,wBAAgB,aAAa,CAC3B,OAAO,EAEP,SAAS,EAAE,OAAO,EAClB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,OAAO,CAAC,CAIlB"} \ No newline at end of file diff --git a/build/factories/WithFaceDescriptor.d.ts b/build/factories/WithFaceDescriptor.d.ts index 45175ba..e8a5f3c 100644 --- a/build/factories/WithFaceDescriptor.d.ts +++ b/build/factories/WithFaceDescriptor.d.ts @@ -2,3 +2,4 @@ export declare type WithFaceDescriptor = TSource & { descriptor: Float32Array; }; export declare function extendWithFaceDescriptor(sourceObj: TSource, descriptor: Float32Array): WithFaceDescriptor; +//# sourceMappingURL=WithFaceDescriptor.d.ts.map \ No newline at end of file diff --git a/build/factories/WithFaceDescriptor.d.ts.map b/build/factories/WithFaceDescriptor.d.ts.map new file mode 100644 index 0000000..8dd42ac --- /dev/null +++ b/build/factories/WithFaceDescriptor.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"WithFaceDescriptor.d.ts","sourceRoot":"","sources":["../../src/factories/WithFaceDescriptor.ts"],"names":[],"mappings":"AAAA,oBAAY,kBAAkB,CAAC,OAAO,IAAI,OAAO,GAAG;IAClD,UAAU,EAAE,YAAY,CAAA;CACzB,CAAA;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAEP,SAAS,EAAE,OAAO,EAClB,UAAU,EAAE,YAAY,GACvB,kBAAkB,CAAC,OAAO,CAAC,CAI7B"} \ No newline at end of file diff --git a/build/factories/WithFaceDetection.d.ts b/build/factories/WithFaceDetection.d.ts index 718ea71..9700e03 100644 --- a/build/factories/WithFaceDetection.d.ts +++ b/build/factories/WithFaceDetection.d.ts @@ -4,3 +4,4 @@ export declare type WithFaceDetection = TSource & { }; export declare function isWithFaceDetection(obj: any): obj is WithFaceDetection<{}>; export declare function extendWithFaceDetection(sourceObj: TSource, detection: FaceDetection): WithFaceDetection; +//# sourceMappingURL=WithFaceDetection.d.ts.map \ No newline at end of file diff --git a/build/factories/WithFaceDetection.d.ts.map b/build/factories/WithFaceDetection.d.ts.map new file mode 100644 index 0000000..460e0af --- /dev/null +++ b/build/factories/WithFaceDetection.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"WithFaceDetection.d.ts","sourceRoot":"","sources":["../../src/factories/WithFaceDetection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,oBAAY,iBAAiB,CAAC,OAAO,IAAI,OAAO,GAAG;IACjD,SAAS,EAAE,aAAa,CAAA;CACzB,CAAA;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,iBAAiB,CAAC,EAAE,CAAC,CAE1E;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAEP,SAAS,EAAE,OAAO,EAClB,SAAS,EAAE,aAAa,GACvB,iBAAiB,CAAC,OAAO,CAAC,CAI5B"} \ No newline at end of file diff --git a/build/factories/WithFaceExpressions.d.ts b/build/factories/WithFaceExpressions.d.ts index f7960b2..6b20e9e 100644 --- a/build/factories/WithFaceExpressions.d.ts +++ b/build/factories/WithFaceExpressions.d.ts @@ -4,3 +4,4 @@ export declare type WithFaceExpressions = TSource & { }; export declare function isWithFaceExpressions(obj: any): obj is WithFaceExpressions<{}>; export declare function extendWithFaceExpressions(sourceObj: TSource, expressions: FaceExpressions): WithFaceExpressions; +//# sourceMappingURL=WithFaceExpressions.d.ts.map \ No newline at end of file diff --git a/build/factories/WithFaceExpressions.d.ts.map b/build/factories/WithFaceExpressions.d.ts.map new file mode 100644 index 0000000..f1fec19 --- /dev/null +++ b/build/factories/WithFaceExpressions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"WithFaceExpressions.d.ts","sourceRoot":"","sources":["../../src/factories/WithFaceExpressions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAEvE,oBAAY,mBAAmB,CAAC,OAAO,IAAI,OAAO,GAAG;IACnD,WAAW,EAAE,eAAe,CAAA;CAC7B,CAAA;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,mBAAmB,CAAC,EAAE,CAAC,CAE9E;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAEP,SAAS,EAAE,OAAO,EAClB,WAAW,EAAE,eAAe,GAC3B,mBAAmB,CAAC,OAAO,CAAC,CAI9B"} \ No newline at end of file diff --git a/build/factories/WithFaceLandmarks.d.ts b/build/factories/WithFaceLandmarks.d.ts index 99b9315..5ca5d38 100644 --- a/build/factories/WithFaceLandmarks.d.ts +++ b/build/factories/WithFaceLandmarks.d.ts @@ -9,3 +9,4 @@ export declare type WithFaceLandmarks, TFa }; export declare function isWithFaceLandmarks(obj: any): obj is WithFaceLandmarks, FaceLandmarks>; export declare function extendWithFaceLandmarks, TFaceLandmarks extends FaceLandmarks = FaceLandmarks68>(sourceObj: TSource, unshiftedLandmarks: TFaceLandmarks): WithFaceLandmarks; +//# sourceMappingURL=WithFaceLandmarks.d.ts.map \ No newline at end of file diff --git a/build/factories/WithFaceLandmarks.d.ts.map b/build/factories/WithFaceLandmarks.d.ts.map new file mode 100644 index 0000000..8b06858 --- /dev/null +++ b/build/factories/WithFaceLandmarks.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"WithFaceLandmarks.d.ts","sourceRoot":"","sources":["../../src/factories/WithFaceLandmarks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAuB,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7E,oBAAY,iBAAiB,CAC3B,OAAO,SAAS,iBAAiB,CAAC,EAAE,CAAC,EACrC,cAAc,SAAS,aAAa,GAAG,eAAe,IACpD,OAAO,GAAG;IACZ,SAAS,EAAE,cAAc,CAAA;IACzB,kBAAkB,EAAE,cAAc,CAAA;IAClC,WAAW,EAAE,aAAa,CAAA;CAC3B,CAAA;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAE,aAAa,CAAC,CAK5G;AAED,wBAAgB,uBAAuB,CACrC,OAAO,SAAS,iBAAiB,CAAC,EAAE,CAAC,EACrC,cAAc,SAAS,aAAa,GAAG,eAAe,EAEtD,SAAS,EAAE,OAAO,EAClB,kBAAkB,EAAE,cAAc,GACjC,iBAAiB,CAAC,OAAO,EAAE,cAAc,CAAC,CAgB5C"} \ No newline at end of file diff --git a/build/factories/WithGender.d.ts b/build/factories/WithGender.d.ts index 6f26c11..e035220 100644 --- a/build/factories/WithGender.d.ts +++ b/build/factories/WithGender.d.ts @@ -5,3 +5,4 @@ export declare type WithGender = TSource & { }; export declare function isWithGender(obj: any): obj is WithGender<{}>; export declare function extendWithGender(sourceObj: TSource, gender: Gender, genderProbability: number): WithGender; +//# sourceMappingURL=WithGender.d.ts.map \ No newline at end of file diff --git a/build/factories/WithGender.d.ts.map b/build/factories/WithGender.d.ts.map new file mode 100644 index 0000000..b399990 --- /dev/null +++ b/build/factories/WithGender.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"WithGender.d.ts","sourceRoot":"","sources":["../../src/factories/WithGender.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAG/C,oBAAY,UAAU,CAAC,OAAO,IAAI,OAAO,GAAG;IAC1C,MAAM,EAAE,MAAM,CAAA;IACd,iBAAiB,EAAE,MAAM,CAAA;CAC1B,CAAA;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAG5D;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAEP,SAAS,EAAE,OAAO,EAClB,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,MAAM,GACxB,UAAU,CAAC,OAAO,CAAC,CAIrB"} \ No newline at end of file diff --git a/build/factories/index.d.ts b/build/factories/index.d.ts index c5094ab..067605a 100644 --- a/build/factories/index.d.ts +++ b/build/factories/index.d.ts @@ -4,3 +4,4 @@ export * from './WithFaceExpressions'; export * from './WithFaceLandmarks'; export * from './WithAge'; export * from './WithGender'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/build/factories/index.d.ts.map b/build/factories/index.d.ts.map new file mode 100644 index 0000000..8360b59 --- /dev/null +++ b/build/factories/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/factories/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA"} \ No newline at end of file diff --git a/build/globalApi/ComposableTask.d.ts b/build/globalApi/ComposableTask.d.ts index b7203e3..8ba8320 100644 --- a/build/globalApi/ComposableTask.d.ts +++ b/build/globalApi/ComposableTask.d.ts @@ -2,3 +2,4 @@ export declare class ComposableTask { then(onfulfilled: (value: T) => T | PromiseLike): Promise; run(): Promise; } +//# sourceMappingURL=ComposableTask.d.ts.map \ No newline at end of file diff --git a/build/globalApi/ComposableTask.d.ts.map b/build/globalApi/ComposableTask.d.ts.map new file mode 100644 index 0000000..a235018 --- /dev/null +++ b/build/globalApi/ComposableTask.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"ComposableTask.d.ts","sourceRoot":"","sources":["../../src/globalApi/ComposableTask.ts"],"names":[],"mappings":"AAAA,qBAAa,cAAc,CAAC,CAAC;IAEd,IAAI,CACf,WAAW,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAC5C,OAAO,CAAC,CAAC,CAAC;IAIA,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC;CAG/B"} \ No newline at end of file diff --git a/build/globalApi/ComputeFaceDescriptorsTasks.d.ts b/build/globalApi/ComputeFaceDescriptorsTasks.d.ts index a17900b..04a8815 100644 --- a/build/globalApi/ComputeFaceDescriptorsTasks.d.ts +++ b/build/globalApi/ComputeFaceDescriptorsTasks.d.ts @@ -20,3 +20,4 @@ export declare class ComputeSingleFaceDescriptorTask>; withAgeAndGender(): PredictSingleAgeAndGenderWithFaceAlignmentTask>; } +//# sourceMappingURL=ComputeFaceDescriptorsTasks.d.ts.map \ No newline at end of file diff --git a/build/globalApi/ComputeFaceDescriptorsTasks.d.ts.map b/build/globalApi/ComputeFaceDescriptorsTasks.d.ts.map new file mode 100644 index 0000000..9b78f17 --- /dev/null +++ b/build/globalApi/ComputeFaceDescriptorsTasks.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"ComputeFaceDescriptorsTasks.d.ts","sourceRoot":"","sources":["../../src/globalApi/ComputeFaceDescriptorsTasks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAA4B,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAC/F,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD,OAAO,EACL,2CAA2C,EAC3C,8CAA8C,EAC/C,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,8CAA8C,EAC9C,iDAAiD,EAClD,MAAM,8BAA8B,CAAC;AAEtC,qBAAa,8BAA8B,CAAC,OAAO,EAAE,aAAa,CAAE,SAAQ,cAAc,CAAC,OAAO,CAAC;IAE/F,SAAS,CAAC,UAAU,EAAE,cAAc,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC;IAC5E,SAAS,CAAC,KAAK,EAAE,SAAS;gBADhB,UAAU,EAAE,cAAc,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,EAClE,KAAK,EAAE,SAAS;CAI7B;AAED,qBAAa,6BAA6B,CACxC,OAAO,SAAS,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CACxD,SAAQ,8BAA8B,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC;IAEnE,GAAG,IAAI,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;IAiB1D,mBAAmB;IAInB,gBAAgB;CAGjB;AAED,qBAAa,+BAA+B,CAC1C,OAAO,SAAS,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CACxD,SAAQ,8BAA8B,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG,SAAS,EAAE,OAAO,GAAG,SAAS,CAAC;IAEvF,GAAG,IAAI,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;IAiBpE,mBAAmB;IAInB,gBAAgB;CAGjB"} \ No newline at end of file diff --git a/build/globalApi/DetectFaceLandmarksTasks.d.ts b/build/globalApi/DetectFaceLandmarksTasks.d.ts index 53b6fd8..20203fb 100644 --- a/build/globalApi/DetectFaceLandmarksTasks.d.ts +++ b/build/globalApi/DetectFaceLandmarksTasks.d.ts @@ -27,3 +27,4 @@ export declare class DetectSingleFaceLandmarksTask>; withFaceDescriptor(): ComputeSingleFaceDescriptorTask>; } +//# sourceMappingURL=DetectFaceLandmarksTasks.d.ts.map \ No newline at end of file diff --git a/build/globalApi/DetectFaceLandmarksTasks.d.ts.map b/build/globalApi/DetectFaceLandmarksTasks.d.ts.map new file mode 100644 index 0000000..c9ede3e --- /dev/null +++ b/build/globalApi/DetectFaceLandmarksTasks.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"DetectFaceLandmarksTasks.d.ts","sourceRoot":"","sources":["../../src/globalApi/DetectFaceLandmarksTasks.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAoC,SAAS,EAAE,MAAM,QAAQ,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAA2B,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAC5F,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,6BAA6B,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAC;AAE/G,OAAO,EACL,2CAA2C,EAC3C,8CAA8C,EAC/C,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,8CAA8C,EAC9C,iDAAiD,EAClD,MAAM,8BAA8B,CAAC;AAEtC,qBAAa,2BAA2B,CAAC,OAAO,EAAE,aAAa,CAAE,SAAQ,cAAc,CAAC,OAAO,CAAC;IAE5F,SAAS,CAAC,UAAU,EAAE,cAAc,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC;IAC5E,SAAS,CAAC,KAAK,EAAE,SAAS;IAC1B,SAAS,CAAC,kBAAkB,EAAE,OAAO;gBAF3B,UAAU,EAAE,cAAc,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,EAClE,KAAK,EAAE,SAAS,EAChB,kBAAkB,EAAE,OAAO;IAKvC,SAAS,KAAK,WAAW,IAAI,iBAAiB,GAAG,qBAAqB,CAIrE;CACF;AAED,qBAAa,0BAA0B,CACrC,OAAO,SAAS,iBAAiB,CAAC,EAAE,CAAC,CACrC,SAAQ,2BAA2B,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC;IAE/D,GAAG,IAAI,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;IAoBzD,mBAAmB;IAInB,gBAAgB;IAIhB,mBAAmB;CAGpB;AAED,qBAAa,6BAA6B,CACxC,OAAO,SAAS,iBAAiB,CAAC,EAAE,CAAC,CACpC,SAAQ,2BAA2B,CAAC,iBAAiB,CAAC,OAAO,CAAC,GAAG,SAAS,EAAE,OAAO,GAAG,SAAS,CAAC;IAEpF,GAAG,IAAI,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;IAmBnE,mBAAmB;IAInB,gBAAgB;IAIhB,kBAAkB;CAGnB"} \ No newline at end of file diff --git a/build/globalApi/DetectFacesTasks.d.ts b/build/globalApi/DetectFacesTasks.d.ts index 1da11c5..97fd22f 100644 --- a/build/globalApi/DetectFacesTasks.d.ts +++ b/build/globalApi/DetectFacesTasks.d.ts @@ -36,3 +36,4 @@ export declare class DetectSingleFaceTask extends DetectFacesTaskBase; } +//# sourceMappingURL=DetectFacesTasks.d.ts.map \ No newline at end of file diff --git a/build/globalApi/DetectFacesTasks.d.ts.map b/build/globalApi/DetectFacesTasks.d.ts.map new file mode 100644 index 0000000..6bf3cfc --- /dev/null +++ b/build/globalApi/DetectFacesTasks.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"DetectFacesTasks.d.ts","sourceRoot":"","sources":["../../src/globalApi/DetectFacesTasks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAGnC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,0BAA0B,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAEvG,OAAO,EAAE,0BAA0B,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AACtG,OAAO,EAAE,6BAA6B,EAAE,gCAAgC,EAAE,MAAM,8BAA8B,CAAC;AAC/G,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAE/C,qBAAa,mBAAmB,CAAC,OAAO,CAAE,SAAQ,cAAc,CAAC,OAAO,CAAC;IAErE,SAAS,CAAC,KAAK,EAAE,SAAS;IAC1B,SAAS,CAAC,OAAO,EAAE,oBAAoB;gBAD7B,KAAK,EAAE,SAAS,EAChB,OAAO,GAAE,oBAAoD;CAI1E;AAED,qBAAa,kBAAmB,SAAQ,mBAAmB,CAAC,aAAa,EAAE,CAAC;IAE7D,GAAG,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAgB5C,OAAO,CAAC,8BAA8B;IAOtC,iBAAiB,CAAC,kBAAkB,GAAE,OAAe;;;IAQrD,mBAAmB;;;IAOnB,gBAAgB;;;CAMjB;AAED,qBAAa,oBAAqB,SAAQ,mBAAmB,CAAC,aAAa,GAAG,SAAS,CAAC;IAEzE,GAAG,IAAI,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAWtD,OAAO,CAAC,6BAA6B;IAOrC,iBAAiB,CAAC,kBAAkB,GAAE,OAAe;;;IAQrD,mBAAmB;;;IAOnB,gBAAgB;;;CAMjB"} \ No newline at end of file diff --git a/build/globalApi/FaceMatcher.d.ts b/build/globalApi/FaceMatcher.d.ts index 4479ca0..8b14409 100644 --- a/build/globalApi/FaceMatcher.d.ts +++ b/build/globalApi/FaceMatcher.d.ts @@ -13,3 +13,4 @@ export declare class FaceMatcher { toJSON(): any; static fromJSON(json: any): FaceMatcher; } +//# sourceMappingURL=FaceMatcher.d.ts.map \ No newline at end of file diff --git a/build/globalApi/FaceMatcher.d.ts.map b/build/globalApi/FaceMatcher.d.ts.map new file mode 100644 index 0000000..2b5016e --- /dev/null +++ b/build/globalApi/FaceMatcher.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"FaceMatcher.d.ts","sourceRoot":"","sources":["../../src/globalApi/FaceMatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAE3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,qBAAa,WAAW;IAEtB,OAAO,CAAC,mBAAmB,CAA0B;IACrD,OAAO,CAAC,kBAAkB,CAAQ;gBAGhC,MAAM,EAAE,sBAAsB,GAAG,kBAAkB,CAAC,GAAG,CAAC,GAAG,YAAY,GAAG,KAAK,CAAC,sBAAsB,GAAG,kBAAkB,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,EAChJ,iBAAiB,GAAE,MAAY;IA+BjC,IAAW,kBAAkB,IAAI,sBAAsB,EAAE,CAAoC;IAC7F,IAAW,iBAAiB,IAAI,MAAM,CAAmC;IAElE,mBAAmB,CAAC,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,MAAM;IAOvF,eAAe,CAAC,eAAe,EAAE,YAAY,GAAG,SAAS;IASzD,aAAa,CAAC,eAAe,EAAE,YAAY,GAAG,SAAS;IAOvD,MAAM,IAAI,GAAG;WAON,QAAQ,CAAC,IAAI,EAAE,GAAG,GAAG,WAAW;CAM/C"} \ No newline at end of file diff --git a/build/globalApi/PredictAgeAndGenderTask.d.ts b/build/globalApi/PredictAgeAndGenderTask.d.ts index ec86a43..e1094d9 100644 --- a/build/globalApi/PredictAgeAndGenderTask.d.ts +++ b/build/globalApi/PredictAgeAndGenderTask.d.ts @@ -29,3 +29,4 @@ export declare class PredictSingleAgeAndGenderWithFaceAlignmentTask>>; withFaceDescriptor(): ComputeSingleFaceDescriptorTask>>; } +//# sourceMappingURL=PredictAgeAndGenderTask.d.ts.map \ No newline at end of file diff --git a/build/globalApi/PredictAgeAndGenderTask.d.ts.map b/build/globalApi/PredictAgeAndGenderTask.d.ts.map new file mode 100644 index 0000000..31f0c53 --- /dev/null +++ b/build/globalApi/PredictAgeAndGenderTask.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"PredictAgeAndGenderTask.d.ts","sourceRoot":"","sources":["../../src/globalApi/PredictAgeAndGenderTask.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAG5C,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAiB,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAoB,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,6BAA6B,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAC;AAG/G,OAAO,EACL,6BAA6B,EAC7B,8CAA8C,EAC9C,gCAAgC,EAChC,iDAAiD,EAClD,MAAM,8BAA8B,CAAC;AAEtC,qBAAa,2BAA2B,CAAC,OAAO,EAAE,aAAa,CAAE,SAAQ,cAAc,CAAC,OAAO,CAAC;IAE5F,SAAS,CAAC,UAAU,EAAE,cAAc,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC;IAC5E,SAAS,CAAC,KAAK,EAAE,SAAS;IAC1B,SAAS,CAAC,cAAc,CAAC;gBAFf,UAAU,EAAE,cAAc,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,EAClE,KAAK,EAAE,SAAS,EAChB,cAAc,CAAC,iDAAwC;CAIpE;AAED,qBAAa,0BAA0B,CACrC,OAAO,SAAS,iBAAiB,CAAC,EAAE,CAAC,CACrC,SAAQ,2BAA2B,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC;IAEjE,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;IAmB3D,mBAAmB;CAGpB;AAED,qBAAa,6BAA6B,CACxC,OAAO,SAAS,iBAAiB,CAAC,EAAE,CAAC,CACpC,SAAQ,2BAA2B,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,EAAE,OAAO,GAAG,SAAS,CAAC;IAEtF,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAiBrE,mBAAmB;CAGpB;AAED,qBAAa,2CAA2C,CACtD,OAAO,SAAS,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CACxD,SAAQ,0BAA0B,CAAC,OAAO,CAAC;IAE3C,mBAAmB;IAInB,mBAAmB;CAGpB;AAED,qBAAa,8CAA8C,CACzD,OAAO,SAAS,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CACxD,SAAQ,6BAA6B,CAAC,OAAO,CAAC;IAE9C,mBAAmB;IAInB,kBAAkB;CAGnB"} \ No newline at end of file diff --git a/build/globalApi/PredictFaceExpressionsTask.d.ts b/build/globalApi/PredictFaceExpressionsTask.d.ts index 5e9961c..d70b1be 100644 --- a/build/globalApi/PredictFaceExpressionsTask.d.ts +++ b/build/globalApi/PredictFaceExpressionsTask.d.ts @@ -28,3 +28,4 @@ export declare class PredictSingleFaceExpressionsWithFaceAlignmentTask>; withFaceDescriptor(): ComputeSingleFaceDescriptorTask>; } +//# sourceMappingURL=PredictFaceExpressionsTask.d.ts.map \ No newline at end of file diff --git a/build/globalApi/PredictFaceExpressionsTask.d.ts.map b/build/globalApi/PredictFaceExpressionsTask.d.ts.map new file mode 100644 index 0000000..b6535ee --- /dev/null +++ b/build/globalApi/PredictFaceExpressionsTask.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"PredictFaceExpressionsTask.d.ts","sourceRoot":"","sources":["../../src/globalApi/PredictFaceExpressionsTask.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAA6B,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAClG,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,6BAA6B,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAC;AAG/G,OAAO,EACL,0BAA0B,EAC1B,2CAA2C,EAC3C,6BAA6B,EAC7B,8CAA8C,EAC/C,MAAM,2BAA2B,CAAC;AAEnC,qBAAa,8BAA8B,CAAC,OAAO,EAAE,aAAa,CAAE,SAAQ,cAAc,CAAC,OAAO,CAAC;IAE/F,SAAS,CAAC,UAAU,EAAE,cAAc,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC;IAC5E,SAAS,CAAC,KAAK,EAAE,SAAS;IAC1B,SAAS,CAAC,cAAc,CAAC;gBAFf,UAAU,EAAE,cAAc,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,EAClE,KAAK,EAAE,SAAS,EAChB,cAAc,CAAC,iDAAwC;CAIpE;AAED,qBAAa,6BAA6B,CACxC,OAAO,SAAS,iBAAiB,CAAC,EAAE,CAAC,CACrC,SAAQ,8BAA8B,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC;IAEpE,GAAG,IAAI,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;IAkB3D,gBAAgB;CAGjB;AAED,qBAAa,gCAAgC,CAC3C,OAAO,SAAS,iBAAiB,CAAC,EAAE,CAAC,CACpC,SAAQ,8BAA8B,CAAC,mBAAmB,CAAC,OAAO,CAAC,GAAG,SAAS,EAAE,OAAO,GAAG,SAAS,CAAC;IAEzF,GAAG,IAAI,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;IAiBrE,gBAAgB;CAGjB;AAED,qBAAa,8CAA8C,CACzD,OAAO,SAAS,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CACxD,SAAQ,6BAA6B,CAAC,OAAO,CAAC;IAE9C,gBAAgB;IAIhB,mBAAmB;CAGpB;AAED,qBAAa,iDAAiD,CAC5D,OAAO,SAAS,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CACxD,SAAQ,gCAAgC,CAAC,OAAO,CAAC;IAEjD,gBAAgB;IAIhB,kBAAkB;CAGnB"} \ No newline at end of file diff --git a/build/globalApi/detectFaces.d.ts b/build/globalApi/detectFaces.d.ts index c5a3169..1723de0 100644 --- a/build/globalApi/detectFaces.d.ts +++ b/build/globalApi/detectFaces.d.ts @@ -3,3 +3,4 @@ import { DetectAllFacesTask, DetectSingleFaceTask } from './DetectFacesTasks'; import { FaceDetectionOptions } from './types'; export declare function detectSingleFace(input: TNetInput, options?: FaceDetectionOptions): DetectSingleFaceTask; export declare function detectAllFaces(input: TNetInput, options?: FaceDetectionOptions): DetectAllFacesTask; +//# sourceMappingURL=detectFaces.d.ts.map \ No newline at end of file diff --git a/build/globalApi/detectFaces.d.ts.map b/build/globalApi/detectFaces.d.ts.map new file mode 100644 index 0000000..ab46855 --- /dev/null +++ b/build/globalApi/detectFaces.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"detectFaces.d.ts","sourceRoot":"","sources":["../../src/globalApi/detectFaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAI/C,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,SAAS,EAChB,OAAO,GAAE,oBAAoD,GAC5D,oBAAoB,CAEtB;AAED,wBAAgB,cAAc,CAC5B,KAAK,EAAE,SAAS,EAChB,OAAO,GAAE,oBAAoD,GAC5D,kBAAkB,CAEpB"} \ No newline at end of file diff --git a/build/globalApi/extractFacesAndComputeResults.d.ts b/build/globalApi/extractFacesAndComputeResults.d.ts index 3c6ec2c..cb51276 100644 --- a/build/globalApi/extractFacesAndComputeResults.d.ts +++ b/build/globalApi/extractFacesAndComputeResults.d.ts @@ -5,3 +5,4 @@ import { WithFaceDetection } from '../factories/WithFaceDetection'; import { WithFaceLandmarks } from '../factories/WithFaceLandmarks'; export declare function extractAllFacesAndComputeResults, TResult>(parentResults: TSource[], input: TNetInput, computeResults: (faces: Array) => Promise, extractedFaces?: Array | null, getRectForAlignment?: (parentResult: WithFaceLandmarks) => FaceDetection): Promise; export declare function extractSingleFaceAndComputeResult, TResult>(parentResult: TSource, input: TNetInput, computeResult: (face: HTMLCanvasElement | tf.Tensor3D) => Promise, extractedFaces?: Array | null, getRectForAlignment?: (parentResult: WithFaceLandmarks) => FaceDetection): Promise; +//# sourceMappingURL=extractFacesAndComputeResults.d.ts.map \ No newline at end of file diff --git a/build/globalApi/extractFacesAndComputeResults.d.ts.map b/build/globalApi/extractFacesAndComputeResults.d.ts.map new file mode 100644 index 0000000..2a3a51b --- /dev/null +++ b/build/globalApi/extractFacesAndComputeResults.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"extractFacesAndComputeResults.d.ts","sourceRoot":"","sources":["../../src/globalApi/extractFacesAndComputeResults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAoC,SAAS,EAAE,MAAM,QAAQ,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAuB,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAExF,wBAAsB,gCAAgC,CAAC,OAAO,SAAS,iBAAiB,CAAC,EAAE,CAAC,EAAE,OAAO,EACnG,aAAa,EAAE,OAAO,EAAE,EACxB,KAAK,EAAE,SAAS,EAChB,cAAc,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,iBAAiB,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,EACnF,cAAc,CAAC,EAAE,KAAK,CAAC,iBAAiB,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,IAAI,EAC9D,mBAAmB,GAAE,CAAC,YAAY,EAAE,iBAAiB,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,aAAgD,oBAkBzH;AAED,wBAAsB,iCAAiC,CAAC,OAAO,SAAS,iBAAiB,CAAC,EAAE,CAAC,EAAE,OAAO,EACpG,YAAY,EAAE,OAAO,EACrB,KAAK,EAAE,SAAS,EAChB,aAAa,EAAE,CAAC,IAAI,EAAE,iBAAiB,GAAG,EAAE,CAAC,QAAQ,KAAK,OAAO,CAAC,OAAO,CAAC,EAC1E,cAAc,CAAC,EAAE,KAAK,CAAC,iBAAiB,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,IAAI,EAC9D,mBAAmB,CAAC,EAAE,CAAC,YAAY,EAAE,iBAAiB,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,aAAa,oBASvF"} \ No newline at end of file diff --git a/build/globalApi/index.d.ts b/build/globalApi/index.d.ts index 5453caa..1b36e41 100644 --- a/build/globalApi/index.d.ts +++ b/build/globalApi/index.d.ts @@ -6,3 +6,4 @@ export * from './DetectFaceLandmarksTasks'; export * from './FaceMatcher'; export * from './nets'; export * from './types'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/build/globalApi/index.d.ts.map b/build/globalApi/index.d.ts.map new file mode 100644 index 0000000..163cefe --- /dev/null +++ b/build/globalApi/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/globalApi/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA;AAClC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,eAAe,CAAA;AAC7B,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA"} \ No newline at end of file diff --git a/build/globalApi/nets.d.ts b/build/globalApi/nets.d.ts index 174d567..96d62b0 100644 --- a/build/globalApi/nets.d.ts +++ b/build/globalApi/nets.d.ts @@ -83,3 +83,4 @@ export declare const loadAgeGenderModel: (url: string) => Promise; export declare const loadFaceDetectionModel: (url: string) => Promise; export declare const locateFaces: typeof TinyFaceDetector; export declare const detectLandmarks: (input: TNetInput) => Promise; +//# sourceMappingURL=nets.d.ts.map \ No newline at end of file diff --git a/build/globalApi/nets.d.ts.map b/build/globalApi/nets.d.ts.map new file mode 100644 index 0000000..eeefd40 --- /dev/null +++ b/build/globalApi/nets.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"nets.d.ts","sourceRoot":"","sources":["../../src/globalApi/nets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAG9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AACtF,OAAO,EAAsB,UAAU,EAAE,MAAM,eAAe,CAAC;AAE/D,eAAO,MAAM,IAAI;;;;;;;;CAQhB,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,UAAW,SAAS,WAAW,uBAAuB,KAAG,QAAQ,aAAa,EAAE,CAC1D,CAAA;AAEnD;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,UAAW,SAAS,KAAG,QAAQ,eAAe,GAAG,eAAe,EAAE,CACnD,CAAA;AAE/C;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,UAAW,SAAS,KAAG,QAAQ,eAAe,GAAG,eAAe,EAAE,CACnD,CAAA;AAEnD;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB,UAAW,SAAS,KAAG,QAAQ,YAAY,GAAG,YAAY,EAAE,CACxC,CAAA;AAGtD;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,UAAW,SAAS,KAAG,QAAQ,eAAe,GAAG,eAAe,EAAE,CACrD,CAAA;AAElD;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,UAAW,SAAS,KAAG,QAAQ,sBAAsB,GAAG,sBAAsB,EAAE,CAClE,CAAA;AAE9C,eAAO,MAAM,yBAAyB,QAAS,MAAM,kBAAoC,CAAA;AACzF,eAAO,MAAM,mBAAmB,QAAS,MAAM,kBAA8B,CAAA;AAC7E,eAAO,MAAM,qBAAqB,QAAS,MAAM,kBAAqC,CAAA;AACtF,eAAO,MAAM,yBAAyB,QAAS,MAAM,kBAAyC,CAAA;AAC9F,eAAO,MAAM,wBAAwB,QAAS,MAAM,kBAAsC,CAAA;AAC1F,eAAO,MAAM,uBAAuB,QAAS,MAAM,kBAAqC,CAAA;AACxF,eAAO,MAAM,kBAAkB,QAAS,MAAM,kBAAgC,CAAA;AAG9E,eAAO,MAAM,sBAAsB,QATY,MAAM,kBASU,CAAA;AAC/D,eAAO,MAAM,WAAW,yBAAmB,CAAA;AAC3C,eAAO,MAAM,eAAe,UA5De,SAAS,KAAG,QAAQ,eAAe,GAAG,eAAe,EAAE,CA4DhD,CAAA"} \ No newline at end of file diff --git a/build/globalApi/types.d.ts b/build/globalApi/types.d.ts index e4e3afa..b0b285f 100644 --- a/build/globalApi/types.d.ts +++ b/build/globalApi/types.d.ts @@ -3,3 +3,4 @@ import { TNetInput } from '../dom'; import { TinyFaceDetectorOptions } from '../tinyFaceDetector/TinyFaceDetectorOptions'; export declare type FaceDetectionOptions = TinyFaceDetectorOptions; export declare type FaceDetectionFunction = (input: TNetInput) => Promise; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/build/globalApi/types.d.ts.map b/build/globalApi/types.d.ts.map new file mode 100644 index 0000000..dc8144f --- /dev/null +++ b/build/globalApi/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/globalApi/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AAEtF,oBAAY,oBAAoB,GAAG,uBAAuB,CAAA;AAE1D,oBAAY,qBAAqB,GAAG,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC,aAAa,EAAE,CAAC,CAAA"} \ No newline at end of file diff --git a/build/globalApi/types.js b/build/globalApi/types.js index 5b2306a..718fd38 100644 --- a/build/globalApi/types.js +++ b/build/globalApi/types.js @@ -1 +1,2 @@ +export {}; //# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/build/index.d.ts b/build/index.d.ts index 8db682b..8ead65d 100644 --- a/build/index.d.ts +++ b/build/index.d.ts @@ -1,4 +1,4 @@ -import * as tf from '@tensorflow/tfjs-core'; +import * as tf from '@tensorflow/tfjs'; import * as draw from './draw'; import * as utils from './utils'; export { draw, utils, tf }; @@ -17,3 +17,4 @@ export * from './tinyYolov2/index'; export * from './euclideanDistance'; export * from './NeuralNetwork'; export * from './resizeResults'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/build/index.d.ts.map b/build/index.d.ts.map new file mode 100644 index 0000000..b583b5f --- /dev/null +++ b/build/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAA;AAE1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC"} \ No newline at end of file diff --git a/build/index.js b/build/index.js index 4bb9001..fa4a248 100644 --- a/build/index.js +++ b/build/index.js @@ -1,4 +1,4 @@ -import * as tf from '@tensorflow/tfjs-core'; +import * as tf from '@tensorflow/tfjs'; import * as draw from './draw'; import * as utils from './utils'; export { draw, utils, tf }; diff --git a/build/index.js.map b/build/index.js.map index 1dcda04..71a9867 100644 --- a/build/index.js.map +++ b/build/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,OAAO,EACL,IAAI,EACJ,KAAK,EACL,EAAE,EACH,CAAA;AAED,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AAEnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAA;AAE1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC"} \ No newline at end of file diff --git a/build/ops/index.d.ts b/build/ops/index.d.ts index 825d345..b372636 100644 --- a/build/ops/index.d.ts +++ b/build/ops/index.d.ts @@ -6,3 +6,4 @@ export * from './padToSquare'; export * from './shuffleArray'; export declare function sigmoid(x: number): number; export declare function inverseSigmoid(x: number): number; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/build/ops/index.d.ts.map b/build/ops/index.d.ts.map new file mode 100644 index 0000000..ce19b0e --- /dev/null +++ b/build/ops/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ops/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAA;AACrB,cAAc,WAAW,CAAA;AACzB,cAAc,qBAAqB,CAAA;AACnC,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAE9B,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,UAEhC;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,UAEvC"} \ No newline at end of file diff --git a/build/ops/iou.d.ts b/build/ops/iou.d.ts index 0e800d7..7ab1059 100644 --- a/build/ops/iou.d.ts +++ b/build/ops/iou.d.ts @@ -1,2 +1,3 @@ import { Box } from '../classes/Box'; export declare function iou(box1: Box, box2: Box, isIOU?: boolean): number; +//# sourceMappingURL=iou.d.ts.map \ No newline at end of file diff --git a/build/ops/iou.d.ts.map b/build/ops/iou.d.ts.map new file mode 100644 index 0000000..8d513ea --- /dev/null +++ b/build/ops/iou.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"iou.d.ts","sourceRoot":"","sources":["../../src/ops/iou.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAErC,wBAAgB,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,GAAE,OAAc,UAQ9D"} \ No newline at end of file diff --git a/build/ops/minBbox.d.ts b/build/ops/minBbox.d.ts index 37e1358..ac34355 100644 --- a/build/ops/minBbox.d.ts +++ b/build/ops/minBbox.d.ts @@ -1,2 +1,3 @@ import { BoundingBox, IPoint } from '../classes'; export declare function minBbox(pts: IPoint[]): BoundingBox; +//# sourceMappingURL=minBbox.d.ts.map \ No newline at end of file diff --git a/build/ops/minBbox.d.ts.map b/build/ops/minBbox.d.ts.map new file mode 100644 index 0000000..0bc2648 --- /dev/null +++ b/build/ops/minBbox.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"minBbox.d.ts","sourceRoot":"","sources":["../../src/ops/minBbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEjD,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,WAAW,CASlD"} \ No newline at end of file diff --git a/build/ops/nonMaxSuppression.d.ts b/build/ops/nonMaxSuppression.d.ts index bba434a..1189f32 100644 --- a/build/ops/nonMaxSuppression.d.ts +++ b/build/ops/nonMaxSuppression.d.ts @@ -1,2 +1,3 @@ import { Box } from '../classes/Box'; export declare function nonMaxSuppression(boxes: Box[], scores: number[], iouThreshold: number, isIOU?: boolean): number[]; +//# sourceMappingURL=nonMaxSuppression.d.ts.map \ No newline at end of file diff --git a/build/ops/nonMaxSuppression.d.ts.map b/build/ops/nonMaxSuppression.d.ts.map new file mode 100644 index 0000000..e460001 --- /dev/null +++ b/build/ops/nonMaxSuppression.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"nonMaxSuppression.d.ts","sourceRoot":"","sources":["../../src/ops/nonMaxSuppression.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAGrC,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,GAAG,EAAE,EACZ,MAAM,EAAE,MAAM,EAAE,EAChB,YAAY,EAAE,MAAM,EACpB,KAAK,GAAE,OAAc,GACpB,MAAM,EAAE,CAgCV"} \ No newline at end of file diff --git a/build/ops/normalize.d.ts b/build/ops/normalize.d.ts index 10cc558..5896e9c 100644 --- a/build/ops/normalize.d.ts +++ b/build/ops/normalize.d.ts @@ -1,2 +1,3 @@ import * as tf from '@tensorflow/tfjs-core'; export declare function normalize(x: tf.Tensor4D, meanRgb: number[]): tf.Tensor4D; +//# sourceMappingURL=normalize.d.ts.map \ No newline at end of file diff --git a/build/ops/normalize.d.ts.map b/build/ops/normalize.d.ts.map new file mode 100644 index 0000000..7da4a40 --- /dev/null +++ b/build/ops/normalize.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../src/ops/normalize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C,wBAAgB,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAUxE"} \ No newline at end of file diff --git a/build/ops/padToSquare.d.ts b/build/ops/padToSquare.d.ts index 3322894..b546993 100644 --- a/build/ops/padToSquare.d.ts +++ b/build/ops/padToSquare.d.ts @@ -8,3 +8,4 @@ import * as tf from '@tensorflow/tfjs-core'; * @returns The padded tensor with width === height. */ export declare function padToSquare(imgTensor: tf.Tensor4D, isCenterImage?: boolean): tf.Tensor4D; +//# sourceMappingURL=padToSquare.d.ts.map \ No newline at end of file diff --git a/build/ops/padToSquare.d.ts.map b/build/ops/padToSquare.d.ts.map new file mode 100644 index 0000000..299a8d0 --- /dev/null +++ b/build/ops/padToSquare.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"padToSquare.d.ts","sourceRoot":"","sources":["../../src/ops/padToSquare.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,SAAS,EAAE,EAAE,CAAC,QAAQ,EACtB,aAAa,GAAE,OAAe,GAC7B,EAAE,CAAC,QAAQ,CAkCb"} \ No newline at end of file diff --git a/build/ops/shuffleArray.d.ts b/build/ops/shuffleArray.d.ts index 2783fec..741441a 100644 --- a/build/ops/shuffleArray.d.ts +++ b/build/ops/shuffleArray.d.ts @@ -1 +1,2 @@ export declare function shuffleArray(inputArray: any[]): any[]; +//# sourceMappingURL=shuffleArray.d.ts.map \ No newline at end of file diff --git a/build/ops/shuffleArray.d.ts.map b/build/ops/shuffleArray.d.ts.map new file mode 100644 index 0000000..8ca3a83 --- /dev/null +++ b/build/ops/shuffleArray.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"shuffleArray.d.ts","sourceRoot":"","sources":["../../src/ops/shuffleArray.ts"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,CAAC,UAAU,EAAE,GAAG,EAAE,SAS7C"} \ No newline at end of file diff --git a/build/resizeResults.d.ts b/build/resizeResults.d.ts index 3910d16..dfb650f 100644 --- a/build/resizeResults.d.ts +++ b/build/resizeResults.d.ts @@ -1,2 +1,3 @@ import { IDimensions } from './classes'; export declare function resizeResults(results: T, dimensions: IDimensions): T; +//# sourceMappingURL=resizeResults.d.ts.map \ No newline at end of file diff --git a/build/resizeResults.d.ts.map b/build/resizeResults.d.ts.map new file mode 100644 index 0000000..4474772 --- /dev/null +++ b/build/resizeResults.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"resizeResults.d.ts","sourceRoot":"","sources":["../src/resizeResults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,WAAW,EAAE,MAAM,WAAW,CAAC;AAMpD,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,WAAW,GAAG,CAAC,CAoBvE"} \ No newline at end of file diff --git a/build/resizeResults.js.map b/build/resizeResults.js.map index 4278f2d..8fce2a2 100644 --- a/build/resizeResults.js.map +++ b/build/resizeResults.js.map @@ -1 +1 @@ -{"version":3,"file":"resizeResults.js","sourceRoot":"","sources":["../src/resizeResults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAe,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAC7F,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAE7F,MAAM,UAAU,aAAa,CAAI,OAAU,EAAE,UAAuB;IAElE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;IAE7E,IAAI,KAAK,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE;QAC7B,MAAM,IAAI,KAAK,CAAC,uCAAuC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA;KAC5F;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAC1B,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAa,CAAA;KAC7E;IAED,IAAI,mBAAmB,CAAC,OAAO,CAAC,EAAE;QAChC,MAAM,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QACjE,MAAM,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAEpH,OAAO,uBAAuB,CAAC,uBAAuB,CAAC,OAAO,EAAE,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,CAAA;KACrG;IAED,IAAI,mBAAmB,CAAC,OAAO,CAAC,EAAE;QAChC,OAAO,uBAAuB,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAA;KAClF;IAED,IAAI,OAAO,YAAY,aAAa,IAAI,OAAO,YAAY,aAAa,EAAE;QACxE,OAAQ,OAAe,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;KAC/C;IAED,OAAO,OAAO,CAAA;AAChB,CAAC"} \ No newline at end of file +{"version":3,"file":"resizeResults.js","sourceRoot":"","sources":["../src/resizeResults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAe,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAC7F,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAE7F,MAAM,UAAU,aAAa,CAAI,OAAU,EAAE,UAAuB;IAClE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;IAC7E,IAAI,KAAK,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE;QAC7B,MAAM,IAAI,KAAK,CAAC,uCAAuC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA;KAC5F;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAC1B,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAa,CAAA;KAC7E;IACD,IAAI,mBAAmB,CAAC,OAAO,CAAC,EAAE;QAChC,MAAM,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QACjE,MAAM,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACpH,OAAO,uBAAuB,CAAC,uBAAuB,CAAC,OAAO,EAAE,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,CAAA;KACrG;IACD,IAAI,mBAAmB,CAAC,OAAO,CAAC,EAAE;QAChC,OAAO,uBAAuB,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAA;KAClF;IACD,IAAI,OAAO,YAAY,aAAa,IAAI,OAAO,YAAY,aAAa,EAAE;QACxE,OAAQ,OAAe,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;KAC/C;IACD,OAAO,OAAO,CAAA;AAChB,CAAC"} \ No newline at end of file diff --git a/build/tinyFaceDetector/TinyFaceDetector.d.ts b/build/tinyFaceDetector/TinyFaceDetector.d.ts index e114768..6fc8aa7 100644 --- a/build/tinyFaceDetector/TinyFaceDetector.d.ts +++ b/build/tinyFaceDetector/TinyFaceDetector.d.ts @@ -15,3 +15,4 @@ export declare class TinyFaceDetector extends TinyYolov2Base { paramMappings: ParamMapping[]; }; } +//# sourceMappingURL=TinyFaceDetector.d.ts.map \ No newline at end of file diff --git a/build/tinyFaceDetector/TinyFaceDetector.d.ts.map b/build/tinyFaceDetector/TinyFaceDetector.d.ts.map new file mode 100644 index 0000000..bc85819 --- /dev/null +++ b/build/tinyFaceDetector/TinyFaceDetector.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"TinyFaceDetector.d.ts","sourceRoot":"","sources":["../../src/tinyFaceDetector/TinyFaceDetector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG1D,qBAAa,gBAAiB,SAAQ,cAAc;;IAgBlD,IAAW,OAAO,IAAI,KAAK,EAAE,CAE5B;IAEY,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAKvG,SAAS,CAAC,mBAAmB,IAAI,MAAM;IAIvC,SAAS,CAAC,0BAA0B,CAAC,SAAS,EAAE,EAAE,CAAC,cAAc,GAAG;QAAE,MAAM,EAAE,mBAAmB,CAAC;QAAC,aAAa,EAAE,YAAY,EAAE,CAAA;KAAE;CAGnI"} \ No newline at end of file diff --git a/build/tinyFaceDetector/TinyFaceDetectorOptions.d.ts b/build/tinyFaceDetector/TinyFaceDetectorOptions.d.ts index 8730ed7..44984ae 100644 --- a/build/tinyFaceDetector/TinyFaceDetectorOptions.d.ts +++ b/build/tinyFaceDetector/TinyFaceDetectorOptions.d.ts @@ -4,3 +4,4 @@ export interface ITinyFaceDetectorOptions extends ITinyYolov2Options { export declare class TinyFaceDetectorOptions extends TinyYolov2Options { protected _name: string; } +//# sourceMappingURL=TinyFaceDetectorOptions.d.ts.map \ No newline at end of file diff --git a/build/tinyFaceDetector/TinyFaceDetectorOptions.d.ts.map b/build/tinyFaceDetector/TinyFaceDetectorOptions.d.ts.map new file mode 100644 index 0000000..65fc57c --- /dev/null +++ b/build/tinyFaceDetector/TinyFaceDetectorOptions.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"TinyFaceDetectorOptions.d.ts","sourceRoot":"","sources":["../../src/tinyFaceDetector/TinyFaceDetectorOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEtE,MAAM,WAAW,wBAAyB,SAAQ,kBAAkB;CAAG;AAEvE,qBAAa,uBAAwB,SAAQ,iBAAiB;IAC5D,SAAS,CAAC,KAAK,EAAE,MAAM,CAA4B;CACpD"} \ No newline at end of file diff --git a/build/tinyFaceDetector/const.d.ts b/build/tinyFaceDetector/const.d.ts index 2efa870..991c035 100644 --- a/build/tinyFaceDetector/const.d.ts +++ b/build/tinyFaceDetector/const.d.ts @@ -2,3 +2,4 @@ import { Point } from '../classes'; export declare const IOU_THRESHOLD = 0.4; export declare const BOX_ANCHORS: Point[]; export declare const MEAN_RGB: [number, number, number]; +//# sourceMappingURL=const.d.ts.map \ No newline at end of file diff --git a/build/tinyFaceDetector/const.d.ts.map b/build/tinyFaceDetector/const.d.ts.map new file mode 100644 index 0000000..b96dd22 --- /dev/null +++ b/build/tinyFaceDetector/const.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../../src/tinyFaceDetector/const.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC,eAAO,MAAM,aAAa,MAAM,CAAA;AAEhC,eAAO,MAAM,WAAW,SAMvB,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAA8B,CAAA"} \ No newline at end of file diff --git a/build/tinyFaceDetector/index.d.ts b/build/tinyFaceDetector/index.d.ts index cde93ca..11643f9 100644 --- a/build/tinyFaceDetector/index.d.ts +++ b/build/tinyFaceDetector/index.d.ts @@ -2,3 +2,4 @@ import { TinyFaceDetector } from './TinyFaceDetector'; export * from './TinyFaceDetector'; export * from './TinyFaceDetectorOptions'; export declare function createTinyFaceDetector(weights: Float32Array): TinyFaceDetector; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/build/tinyFaceDetector/index.d.ts.map b/build/tinyFaceDetector/index.d.ts.map new file mode 100644 index 0000000..f18daa7 --- /dev/null +++ b/build/tinyFaceDetector/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tinyFaceDetector/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAE1C,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,YAAY,oBAI3D"} \ No newline at end of file diff --git a/build/tinyYolov2/TinyYolov2.d.ts b/build/tinyYolov2/TinyYolov2.d.ts index 7ee0946..d1c6ee4 100644 --- a/build/tinyYolov2/TinyYolov2.d.ts +++ b/build/tinyYolov2/TinyYolov2.d.ts @@ -16,3 +16,4 @@ export declare class TinyYolov2 extends TinyYolov2Base { paramMappings: ParamMapping[]; }; } +//# sourceMappingURL=TinyYolov2.d.ts.map \ No newline at end of file diff --git a/build/tinyYolov2/TinyYolov2.d.ts.map b/build/tinyYolov2/TinyYolov2.d.ts.map new file mode 100644 index 0000000..869b54b --- /dev/null +++ b/build/tinyYolov2/TinyYolov2.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"TinyYolov2.d.ts","sourceRoot":"","sources":["../../src/tinyYolov2/TinyYolov2.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AASzC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE9C,qBAAa,UAAW,SAAQ,cAAc;gBAEhC,kBAAkB,GAAE,OAAc;IAoB9C,IAAW,kBAAkB,IAAI,OAAO,CAEvC;IAED,IAAW,OAAO,IAAI,KAAK,EAAE,CAE5B;IAEY,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAKvG,SAAS,CAAC,mBAAmB,IAAI,MAAM;IAIvC,SAAS,CAAC,0BAA0B,CAAC,SAAS,EAAE,EAAE,CAAC,cAAc,GAAG;QAAE,MAAM,EAAE,mBAAmB,CAAC;QAAC,aAAa,EAAE,YAAY,EAAE,CAAA;KAAE;CAGnI"} \ No newline at end of file diff --git a/build/tinyYolov2/TinyYolov2Base.d.ts b/build/tinyYolov2/TinyYolov2Base.d.ts index 558e01f..633c1a8 100644 --- a/build/tinyYolov2/TinyYolov2Base.d.ts +++ b/build/tinyYolov2/TinyYolov2Base.d.ts @@ -40,3 +40,4 @@ export declare class TinyYolov2Base extends NeuralNetwork { }[]>; private extractPredictedClass; } +//# sourceMappingURL=TinyYolov2Base.d.ts.map \ No newline at end of file diff --git a/build/tinyYolov2/TinyYolov2Base.d.ts.map b/build/tinyYolov2/TinyYolov2Base.d.ts.map new file mode 100644 index 0000000..cc95b40 --- /dev/null +++ b/build/tinyYolov2/TinyYolov2Base.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"TinyYolov2Base.d.ts","sourceRoot":"","sources":["../../src/tinyYolov2/TinyYolov2Base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAI7D,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAIjD,OAAO,EAAE,gBAAgB,EAAkB,MAAM,UAAU,CAAC;AAM5D,OAAO,EAAE,kBAAkB,EAAqB,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,0BAA0B,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE3F,qBAAa,cAAe,SAAQ,aAAa,CAAC,mBAAmB,CAAC;IAEpE,OAAc,oBAAoB,WAEjC;IAED,OAAO,CAAC,OAAO,CAAkB;gBAErB,MAAM,EAAE,gBAAgB;IAMpC,IAAW,MAAM,IAAI,gBAAgB,CAEpC;IAED,IAAW,eAAe,IAAI,OAAO,CAEpC;IAED,IAAW,eAAe,IAAI,MAAM,CAEnC;IAEM,aAAa,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,0BAA0B,GAAG,EAAE,CAAC,QAAQ;IAoB9E,YAAY,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,GAAG,EAAE,CAAC,QAAQ;IAsBlE,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,EAAE,CAAC,QAAQ;IAsBvD,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC;IAIlE,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,aAAa,GAAE,kBAAuB,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IA0CzG,SAAS,CAAC,mBAAmB,IAAI,MAAM;IAIvC,SAAS,CAAC,0BAA0B,CAAC,SAAS,EAAE,EAAE,CAAC,cAAc;;;;IAIjE,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,YAAY;;;;cAU7B,YAAY,CAC1B,YAAY,EAAE,EAAE,CAAC,QAAQ,EACzB,mBAAmB,EAAE,UAAU,EAC/B,cAAc,CAAC,EAAE,MAAM;;;;;;;;;YAgEX,qBAAqB;CAWpC"} \ No newline at end of file diff --git a/build/tinyYolov2/TinyYolov2Options.d.ts b/build/tinyYolov2/TinyYolov2Options.d.ts index ee5c17f..396e977 100644 --- a/build/tinyYolov2/TinyYolov2Options.d.ts +++ b/build/tinyYolov2/TinyYolov2Options.d.ts @@ -16,3 +16,4 @@ export declare class TinyYolov2Options { get inputSize(): number; get scoreThreshold(): number; } +//# sourceMappingURL=TinyYolov2Options.d.ts.map \ No newline at end of file diff --git a/build/tinyYolov2/TinyYolov2Options.d.ts.map b/build/tinyYolov2/TinyYolov2Options.d.ts.map new file mode 100644 index 0000000..ca4c4a0 --- /dev/null +++ b/build/tinyYolov2/TinyYolov2Options.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"TinyYolov2Options.d.ts","sourceRoot":"","sources":["../../src/tinyYolov2/TinyYolov2Options.ts"],"names":[],"mappings":"AAAA,oBAAY,kBAAkB;IAC5B,EAAE,MAAM;IACR,EAAE,MAAM;IACR,EAAE,MAAM;IACR,EAAE,MAAM;CACT;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,qBAAa,iBAAiB;IAC5B,SAAS,CAAC,KAAK,EAAE,MAAM,CAAsB;IAE7C,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,eAAe,CAAQ;gBAEnB,EAAE,SAAS,EAAE,cAAc,EAAE,GAAE,kBAAuB;IAalE,IAAI,SAAS,IAAI,MAAM,CAA2B;IAClD,IAAI,cAAc,IAAI,MAAM,CAAgC;CAC7D"} \ No newline at end of file diff --git a/build/tinyYolov2/config.d.ts b/build/tinyYolov2/config.d.ts index 4158ad0..d9dbd6f 100644 --- a/build/tinyYolov2/config.d.ts +++ b/build/tinyYolov2/config.d.ts @@ -10,3 +10,4 @@ export declare type TinyYolov2Config = { isFirstLayerConv2d?: boolean; }; export declare function validateConfig(config: any): void; +//# sourceMappingURL=config.d.ts.map \ No newline at end of file diff --git a/build/tinyYolov2/config.d.ts.map b/build/tinyYolov2/config.d.ts.map new file mode 100644 index 0000000..30de6ae --- /dev/null +++ b/build/tinyYolov2/config.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/tinyYolov2/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,oBAAY,gBAAgB,GAAG;IAC7B,kBAAkB,EAAE,OAAO,CAAA;IAC3B,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,KAAK,EAAE,CAAA;IAChB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAClC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B,CAAA;AAID,wBAAgB,cAAc,CAAC,MAAM,EAAE,GAAG,QAuCzC"} \ No newline at end of file diff --git a/build/tinyYolov2/const.d.ts b/build/tinyYolov2/const.d.ts index 9f3fd32..ca9f834 100644 --- a/build/tinyYolov2/const.d.ts +++ b/build/tinyYolov2/const.d.ts @@ -5,3 +5,4 @@ export declare const BOX_ANCHORS_SEPARABLE: Point[]; export declare const MEAN_RGB_SEPARABLE: [number, number, number]; export declare const DEFAULT_MODEL_NAME = "tiny_yolov2_model"; export declare const DEFAULT_MODEL_NAME_SEPARABLE_CONV = "tiny_yolov2_separable_conv_model"; +//# sourceMappingURL=const.d.ts.map \ No newline at end of file diff --git a/build/tinyYolov2/const.d.ts.map b/build/tinyYolov2/const.d.ts.map new file mode 100644 index 0000000..fcd99e8 --- /dev/null +++ b/build/tinyYolov2/const.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../../src/tinyYolov2/const.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,eAAO,MAAM,aAAa,MAAM,CAAA;AAEhC,eAAO,MAAM,WAAW,SAMvB,CAAA;AAED,eAAO,MAAM,qBAAqB,SAMjC,CAAA;AAED,eAAO,MAAM,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAA8B,CAAA;AAEtF,eAAO,MAAM,kBAAkB,sBAAsB,CAAA;AACrD,eAAO,MAAM,iCAAiC,qCAAqC,CAAA"} \ No newline at end of file diff --git a/build/tinyYolov2/convWithBatchNorm.d.ts b/build/tinyYolov2/convWithBatchNorm.d.ts index f6ecdb9..02b0352 100644 --- a/build/tinyYolov2/convWithBatchNorm.d.ts +++ b/build/tinyYolov2/convWithBatchNorm.d.ts @@ -1,3 +1,4 @@ import * as tf from '@tensorflow/tfjs-core'; import { ConvWithBatchNorm } from './types'; export declare function convWithBatchNorm(x: tf.Tensor4D, params: ConvWithBatchNorm): tf.Tensor4D; +//# sourceMappingURL=convWithBatchNorm.d.ts.map \ No newline at end of file diff --git a/build/tinyYolov2/convWithBatchNorm.d.ts.map b/build/tinyYolov2/convWithBatchNorm.d.ts.map new file mode 100644 index 0000000..91be0a8 --- /dev/null +++ b/build/tinyYolov2/convWithBatchNorm.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"convWithBatchNorm.d.ts","sourceRoot":"","sources":["../../src/tinyYolov2/convWithBatchNorm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAG5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,iBAAiB,GAAG,EAAE,CAAC,QAAQ,CAWxF"} \ No newline at end of file diff --git a/build/tinyYolov2/depthwiseSeparableConv.d.ts b/build/tinyYolov2/depthwiseSeparableConv.d.ts index 4274242..cffd719 100644 --- a/build/tinyYolov2/depthwiseSeparableConv.d.ts +++ b/build/tinyYolov2/depthwiseSeparableConv.d.ts @@ -1,3 +1,4 @@ import * as tf from '@tensorflow/tfjs-core'; import { SeparableConvParams } from '../common/types'; export declare function depthwiseSeparableConv(x: tf.Tensor4D, params: SeparableConvParams): tf.Tensor4D; +//# sourceMappingURL=depthwiseSeparableConv.d.ts.map \ No newline at end of file diff --git a/build/tinyYolov2/depthwiseSeparableConv.d.ts.map b/build/tinyYolov2/depthwiseSeparableConv.d.ts.map new file mode 100644 index 0000000..b8bb523 --- /dev/null +++ b/build/tinyYolov2/depthwiseSeparableConv.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"depthwiseSeparableConv.d.ts","sourceRoot":"","sources":["../../src/tinyYolov2/depthwiseSeparableConv.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAGtD,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,mBAAmB,GAAG,EAAE,CAAC,QAAQ,CAS/F"} \ No newline at end of file diff --git a/build/tinyYolov2/extractParams.d.ts b/build/tinyYolov2/extractParams.d.ts index 2722193..69970cd 100644 --- a/build/tinyYolov2/extractParams.d.ts +++ b/build/tinyYolov2/extractParams.d.ts @@ -5,3 +5,4 @@ export declare function extractParams(weights: Float32Array, config: TinyYolov2C params: TinyYolov2NetParams; paramMappings: ParamMapping[]; }; +//# sourceMappingURL=extractParams.d.ts.map \ No newline at end of file diff --git a/build/tinyYolov2/extractParams.d.ts.map b/build/tinyYolov2/extractParams.d.ts.map new file mode 100644 index 0000000..d39182c --- /dev/null +++ b/build/tinyYolov2/extractParams.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"extractParams.d.ts","sourceRoot":"","sources":["../../src/tinyYolov2/extractParams.ts"],"names":[],"mappings":"AAKA,OAAO,EAA0B,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAgC,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAoC5E,wBAAgB,aAAa,CAC3B,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,gBAAgB,EACxB,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,EAAE,GACpB;IAAE,MAAM,EAAE,mBAAmB,CAAC;IAAC,aAAa,EAAE,YAAY,EAAE,CAAA;CAAE,CAoDhE"} \ No newline at end of file diff --git a/build/tinyYolov2/extractParamsFromWeigthMap.d.ts b/build/tinyYolov2/extractParamsFromWeigthMap.d.ts index a421696..e0747f6 100644 --- a/build/tinyYolov2/extractParamsFromWeigthMap.d.ts +++ b/build/tinyYolov2/extractParamsFromWeigthMap.d.ts @@ -6,3 +6,4 @@ export declare function extractParamsFromWeigthMap(weightMap: tf.NamedTensorMap, params: TinyYolov2NetParams; paramMappings: ParamMapping[]; }; +//# sourceMappingURL=extractParamsFromWeigthMap.d.ts.map \ No newline at end of file diff --git a/build/tinyYolov2/extractParamsFromWeigthMap.d.ts.map b/build/tinyYolov2/extractParamsFromWeigthMap.d.ts.map new file mode 100644 index 0000000..9257df0 --- /dev/null +++ b/build/tinyYolov2/extractParamsFromWeigthMap.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"extractParamsFromWeigthMap.d.ts","sourceRoot":"","sources":["../../src/tinyYolov2/extractParamsFromWeigthMap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAM5C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAgC,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAkC5E,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,EAAE,CAAC,cAAc,EAC5B,MAAM,EAAE,gBAAgB,GACvB;IAAE,MAAM,EAAE,mBAAmB,CAAC;IAAC,aAAa,EAAE,YAAY,EAAE,CAAA;CAAE,CA0ChE"} \ No newline at end of file diff --git a/build/tinyYolov2/index.d.ts b/build/tinyYolov2/index.d.ts index bfef96a..bfee139 100644 --- a/build/tinyYolov2/index.d.ts +++ b/build/tinyYolov2/index.d.ts @@ -4,3 +4,4 @@ export * from './config'; export * from './types'; export { TinyYolov2 }; export declare function createTinyYolov2(weights: Float32Array, withSeparableConvs?: boolean): TinyYolov2; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/build/tinyYolov2/index.d.ts.map b/build/tinyYolov2/index.d.ts.map new file mode 100644 index 0000000..5dc96df --- /dev/null +++ b/build/tinyYolov2/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tinyYolov2/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,cAAc,qBAAqB,CAAC;AAEpC,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AAEvB,OAAO,EAAE,UAAU,EAAE,CAAA;AAErB,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,kBAAkB,GAAE,OAAc,cAIzF"} \ No newline at end of file diff --git a/build/tinyYolov2/leaky.d.ts b/build/tinyYolov2/leaky.d.ts index 9bbf7f5..dc35656 100644 --- a/build/tinyYolov2/leaky.d.ts +++ b/build/tinyYolov2/leaky.d.ts @@ -1,2 +1,3 @@ import * as tf from '@tensorflow/tfjs-core'; export declare function leaky(x: tf.Tensor4D): tf.Tensor4D; +//# sourceMappingURL=leaky.d.ts.map \ No newline at end of file diff --git a/build/tinyYolov2/leaky.d.ts.map b/build/tinyYolov2/leaky.d.ts.map new file mode 100644 index 0000000..7492aa9 --- /dev/null +++ b/build/tinyYolov2/leaky.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"leaky.d.ts","sourceRoot":"","sources":["../../src/tinyYolov2/leaky.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C,wBAAgB,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAMjD"} \ No newline at end of file diff --git a/build/tinyYolov2/types.d.ts b/build/tinyYolov2/types.d.ts index 5c142f9..fabac66 100644 --- a/build/tinyYolov2/types.d.ts +++ b/build/tinyYolov2/types.d.ts @@ -32,3 +32,4 @@ export declare type DefaultTinyYolov2NetParams = { conv8: ConvParams; }; export declare type TinyYolov2NetParams = DefaultTinyYolov2NetParams | MobilenetParams; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/build/tinyYolov2/types.d.ts.map b/build/tinyYolov2/types.d.ts.map new file mode 100644 index 0000000..d8609c1 --- /dev/null +++ b/build/tinyYolov2/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tinyYolov2/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,oBAAY,SAAS,GAAG;IACtB,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAA;IAChB,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAA;CACrB,CAAA;AAED,oBAAY,iBAAiB,GAAG;IAC9B,IAAI,EAAE,UAAU,CAAA;IAChB,EAAE,EAAE,SAAS,CAAA;CACd,CAAA;AAED,oBAAY,eAAe,GAAG;IAC5B,KAAK,EAAE,mBAAmB,GAAG,UAAU,CAAA;IACvC,KAAK,EAAE,mBAAmB,CAAA;IAC1B,KAAK,EAAE,mBAAmB,CAAA;IAC1B,KAAK,EAAE,mBAAmB,CAAA;IAC1B,KAAK,EAAE,mBAAmB,CAAA;IAC1B,KAAK,EAAE,mBAAmB,CAAA;IAC1B,KAAK,CAAC,EAAE,mBAAmB,CAAA;IAC3B,KAAK,CAAC,EAAE,mBAAmB,CAAA;IAC3B,KAAK,EAAE,UAAU,CAAA;CAClB,CAAA;AAED,oBAAY,0BAA0B,GAAG;IACvC,KAAK,EAAE,iBAAiB,CAAA;IACxB,KAAK,EAAE,iBAAiB,CAAA;IACxB,KAAK,EAAE,iBAAiB,CAAA;IACxB,KAAK,EAAE,iBAAiB,CAAA;IACxB,KAAK,EAAE,iBAAiB,CAAA;IACxB,KAAK,EAAE,iBAAiB,CAAA;IACxB,KAAK,EAAE,iBAAiB,CAAA;IACxB,KAAK,EAAE,iBAAiB,CAAA;IACxB,KAAK,EAAE,UAAU,CAAA;CAClB,CAAA;AAED,oBAAY,mBAAmB,GAAG,0BAA0B,GAAG,eAAe,CAAA"} \ No newline at end of file diff --git a/build/tinyYolov2/types.js b/build/tinyYolov2/types.js index 5b2306a..718fd38 100644 --- a/build/tinyYolov2/types.js +++ b/build/tinyYolov2/types.js @@ -1 +1,2 @@ +export {}; //# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/build/utils/index.d.ts b/build/utils/index.d.ts index 8fc6e76..1fee00b 100644 --- a/build/utils/index.d.ts +++ b/build/utils/index.d.ts @@ -15,3 +15,4 @@ export declare function getCenterPoint(pts: Point[]): Point; export declare function range(num: number, start: number, step: number): number[]; export declare function isValidNumber(num: any): boolean; export declare function isValidProbablitiy(num: any): boolean; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/build/utils/index.d.ts.map b/build/utils/index.d.ts.map new file mode 100644 index 0000000..eecef0b --- /dev/null +++ b/build/utils/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEhE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,WAEhD;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,EAAE,CAAC,QAAQ,CAE7D;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,EAAE,CAAC,QAAQ,CAE7D;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,EAAE,CAAC,QAAQ,CAE7D;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,EAAE,CAAC,QAAQ,CAE7D;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,WAElC;AAED,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,WAEjC;AAED,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,MAAU,UAGlD;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAE9C;AAED,wBAAgB,yBAAyB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,cAG1F;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,CAGlD;AAED,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAExE;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,GAAG,WAErC;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,GAAG,WAE1C"} \ No newline at end of file diff --git a/build/xception/TinyXception.d.ts b/build/xception/TinyXception.d.ts index 339dbcc..705992a 100644 --- a/build/xception/TinyXception.d.ts +++ b/build/xception/TinyXception.d.ts @@ -17,3 +17,4 @@ export declare class TinyXception extends NeuralNetwork { paramMappings: import("../common").ParamMapping[]; }; } +//# sourceMappingURL=TinyXception.d.ts.map \ No newline at end of file diff --git a/build/xception/TinyXception.d.ts.map b/build/xception/TinyXception.d.ts.map new file mode 100644 index 0000000..2027b82 --- /dev/null +++ b/build/xception/TinyXception.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"TinyXception.d.ts","sourceRoot":"","sources":["../../src/xception/TinyXception.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAG5C,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAc,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAKjD,OAAO,EAAyC,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAuBpF,qBAAa,YAAa,SAAQ,aAAa,CAAC,kBAAkB,CAAC;IAEjE,OAAO,CAAC,cAAc,CAAQ;gBAElB,aAAa,EAAE,MAAM;IAK1B,YAAY,CAAC,KAAK,EAAE,QAAQ,GAAG,EAAE,CAAC,QAAQ;IA2BpC,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC;IAI5D,SAAS,CAAC,mBAAmB,IAAI,MAAM;IAIvC,SAAS,CAAC,0BAA0B,CAAC,SAAS,EAAE,EAAE,CAAC,cAAc;;;;IAIjE,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,YAAY;;;;CAG9C"} \ No newline at end of file diff --git a/build/xception/extractParams.d.ts b/build/xception/extractParams.d.ts index 886c5ca..9c8b4a6 100644 --- a/build/xception/extractParams.d.ts +++ b/build/xception/extractParams.d.ts @@ -4,3 +4,4 @@ export declare function extractParams(weights: Float32Array, numMainBlocks: numb params: TinyXceptionParams; paramMappings: ParamMapping[]; }; +//# sourceMappingURL=extractParams.d.ts.map \ No newline at end of file diff --git a/build/xception/extractParams.d.ts.map b/build/xception/extractParams.d.ts.map new file mode 100644 index 0000000..f3c4fc0 --- /dev/null +++ b/build/xception/extractParams.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"extractParams.d.ts","sourceRoot":"","sources":["../../src/xception/extractParams.ts"],"names":[],"mappings":"AACA,OAAO,EAA0B,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEvE,OAAO,EAAyC,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAkCpF,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,kBAAkB,CAAC;IAAC,aAAa,EAAE,YAAY,EAAE,CAAA;CAAE,CA+CzI"} \ No newline at end of file diff --git a/build/xception/extractParamsFromWeigthMap.d.ts b/build/xception/extractParamsFromWeigthMap.d.ts index 51e1911..58524bc 100644 --- a/build/xception/extractParamsFromWeigthMap.d.ts +++ b/build/xception/extractParamsFromWeigthMap.d.ts @@ -5,3 +5,4 @@ export declare function extractParamsFromWeigthMap(weightMap: tf.NamedTensorMap, params: TinyXceptionParams; paramMappings: ParamMapping[]; }; +//# sourceMappingURL=extractParamsFromWeigthMap.d.ts.map \ No newline at end of file diff --git a/build/xception/extractParamsFromWeigthMap.d.ts.map b/build/xception/extractParamsFromWeigthMap.d.ts.map new file mode 100644 index 0000000..13e62d7 --- /dev/null +++ b/build/xception/extractParamsFromWeigthMap.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"extractParamsFromWeigthMap.d.ts","sourceRoot":"","sources":["../../src/xception/extractParamsFromWeigthMap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAIL,YAAY,EACb,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAyC,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAmCpF,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,EAAE,CAAC,cAAc,EAC5B,aAAa,EAAE,MAAM,GACpB;IAAE,MAAM,EAAE,kBAAkB,CAAC;IAAC,aAAa,EAAE,YAAY,EAAE,CAAA;CAAE,CAqC/D"} \ No newline at end of file diff --git a/build/xception/index.d.ts b/build/xception/index.d.ts index 021d0de..60563d0 100644 --- a/build/xception/index.d.ts +++ b/build/xception/index.d.ts @@ -1 +1,2 @@ export * from './TinyXception'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/build/xception/index.d.ts.map b/build/xception/index.d.ts.map new file mode 100644 index 0000000..11365a7 --- /dev/null +++ b/build/xception/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/xception/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"} \ No newline at end of file diff --git a/build/xception/types.d.ts b/build/xception/types.d.ts index 0d8bddb..0a03a3e 100644 --- a/build/xception/types.d.ts +++ b/build/xception/types.d.ts @@ -21,3 +21,4 @@ export declare type TinyXceptionParams = { separable_conv: SeparableConvParams; }; }; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/build/xception/types.d.ts.map b/build/xception/types.d.ts.map new file mode 100644 index 0000000..af6a731 --- /dev/null +++ b/build/xception/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/xception/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAE5D,oBAAY,oBAAoB,GAAG;IACjC,eAAe,EAAE,mBAAmB,CAAA;IACpC,eAAe,EAAE,mBAAmB,CAAA;IACpC,cAAc,EAAE,UAAU,CAAA;CAC3B,CAAA;AAED,oBAAY,eAAe,GAAG;IAC5B,eAAe,EAAE,mBAAmB,CAAA;IACpC,eAAe,EAAE,mBAAmB,CAAA;IACpC,eAAe,EAAE,mBAAmB,CAAA;CACrC,CAAA;AAED,oBAAY,kBAAkB,GAAG;IAC/B,UAAU,EAAE;QACV,OAAO,EAAE,UAAU,CAAA;QACnB,iBAAiB,EAAE,oBAAoB,CAAA;QACvC,iBAAiB,EAAE,oBAAoB,CAAA;KACxC,CAAA;IACD,WAAW,EAAE,GAAG,CAAC;IACjB,SAAS,EAAE;QACT,eAAe,EAAE,oBAAoB,CAAA;QACrC,cAAc,EAAE,mBAAmB,CAAA;KACpC,CAAA;CACF,CAAA"} \ No newline at end of file diff --git a/build/xception/types.js b/build/xception/types.js index 5b2306a..718fd38 100644 --- a/build/xception/types.js +++ b/build/xception/types.js @@ -1 +1,2 @@ +export {}; //# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/dist/face-api.js b/dist/face-api.js index 0f60097..14cd77a 100644 --- a/dist/face-api.js +++ b/dist/face-api.js @@ -32,7 +32,7 @@ var faceapi = (() => { }; // node_modules/seedrandom/lib/alea.js - var require_alea = __commonJS((exports, module) => { + var require_alea = __commonJS((exports3, module) => { (function(global2, module2, define2) { function Alea(seed) { var me = this, mash = Mash(); @@ -68,7 +68,7 @@ var faceapi = (() => { return t; } function impl(seed, opts) { - var xg = new Alea(seed), state = opts && opts.state, prng = xg.next; + var xg = new Alea(seed), state6 = opts && opts.state, prng = xg.next; prng.int32 = function() { return xg.next() * 4294967296 | 0; }; @@ -76,9 +76,9 @@ var faceapi = (() => { return prng() + (prng() * 2097152 | 0) * 11102230246251565e-32; }; prng.quick = prng; - if (state) { - if (typeof state == "object") - copy(state, xg); + if (state6) { + if (typeof state6 == "object") + copy(state6, xg); prng.state = function() { return copy(xg, {}); }; @@ -112,11 +112,11 @@ var faceapi = (() => { } else { this.alea = impl; } - })(exports, typeof module == "object" && module, typeof define == "function" && define); + })(exports3, typeof module == "object" && module, typeof define == "function" && define); }); // node_modules/seedrandom/lib/xor128.js - var require_xor128 = __commonJS((exports, module) => { + var require_xor128 = __commonJS((exports3, module) => { (function(global2, module2, define2) { function XorGen(seed) { var me = this, strseed = ""; @@ -149,7 +149,7 @@ var faceapi = (() => { return t; } function impl(seed, opts) { - var xg = new XorGen(seed), state = opts && opts.state, prng = function() { + var xg = new XorGen(seed), state6 = opts && opts.state, prng = function() { return (xg.next() >>> 0) / 4294967296; }; prng.double = function() { @@ -160,9 +160,9 @@ var faceapi = (() => { }; prng.int32 = xg.next; prng.quick = prng; - if (state) { - if (typeof state == "object") - copy(state, xg); + if (state6) { + if (typeof state6 == "object") + copy(state6, xg); prng.state = function() { return copy(xg, {}); }; @@ -178,11 +178,11 @@ var faceapi = (() => { } else { this.xor128 = impl; } - })(exports, typeof module == "object" && module, typeof define == "function" && define); + })(exports3, typeof module == "object" && module, typeof define == "function" && define); }); // node_modules/seedrandom/lib/xorwow.js - var require_xorwow = __commonJS((exports, module) => { + var require_xorwow = __commonJS((exports3, module) => { (function(global2, module2, define2) { function XorGen(seed) { var me = this, strseed = ""; @@ -222,7 +222,7 @@ var faceapi = (() => { return t; } function impl(seed, opts) { - var xg = new XorGen(seed), state = opts && opts.state, prng = function() { + var xg = new XorGen(seed), state6 = opts && opts.state, prng = function() { return (xg.next() >>> 0) / 4294967296; }; prng.double = function() { @@ -233,9 +233,9 @@ var faceapi = (() => { }; prng.int32 = xg.next; prng.quick = prng; - if (state) { - if (typeof state == "object") - copy(state, xg); + if (state6) { + if (typeof state6 == "object") + copy(state6, xg); prng.state = function() { return copy(xg, {}); }; @@ -251,11 +251,11 @@ var faceapi = (() => { } else { this.xorwow = impl; } - })(exports, typeof module == "object" && module, typeof define == "function" && define); + })(exports3, typeof module == "object" && module, typeof define == "function" && define); }); // node_modules/seedrandom/lib/xorshift7.js - var require_xorshift7 = __commonJS((exports, module) => { + var require_xorshift7 = __commonJS((exports3, module) => { (function(global2, module2, define2) { function XorGen(seed) { var me = this; @@ -311,7 +311,7 @@ var faceapi = (() => { function impl(seed, opts) { if (seed == null) seed = +new Date(); - var xg = new XorGen(seed), state = opts && opts.state, prng = function() { + var xg = new XorGen(seed), state6 = opts && opts.state, prng = function() { return (xg.next() >>> 0) / 4294967296; }; prng.double = function() { @@ -322,9 +322,9 @@ var faceapi = (() => { }; prng.int32 = xg.next; prng.quick = prng; - if (state) { - if (state.x) - copy(state, xg); + if (state6) { + if (state6.x) + copy(state6, xg); prng.state = function() { return copy(xg, {}); }; @@ -340,11 +340,11 @@ var faceapi = (() => { } else { this.xorshift7 = impl; } - })(exports, typeof module == "object" && module, typeof define == "function" && define); + })(exports3, typeof module == "object" && module, typeof define == "function" && define); }); // node_modules/seedrandom/lib/xor4096.js - var require_xor4096 = __commonJS((exports, module) => { + var require_xor4096 = __commonJS((exports3, module) => { (function(global2, module2, define2) { function XorGen(seed) { var me = this; @@ -415,7 +415,7 @@ var faceapi = (() => { function impl(seed, opts) { if (seed == null) seed = +new Date(); - var xg = new XorGen(seed), state = opts && opts.state, prng = function() { + var xg = new XorGen(seed), state6 = opts && opts.state, prng = function() { return (xg.next() >>> 0) / 4294967296; }; prng.double = function() { @@ -426,9 +426,9 @@ var faceapi = (() => { }; prng.int32 = xg.next; prng.quick = prng; - if (state) { - if (state.X) - copy(state, xg); + if (state6) { + if (state6.X) + copy(state6, xg); prng.state = function() { return copy(xg, {}); }; @@ -444,11 +444,11 @@ var faceapi = (() => { } else { this.xor4096 = impl; } - })(exports, typeof module == "object" && module, typeof define == "function" && define); + })(exports3, typeof module == "object" && module, typeof define == "function" && define); }); // node_modules/seedrandom/lib/tychei.js - var require_tychei = __commonJS((exports, module) => { + var require_tychei = __commonJS((exports3, module) => { (function(global2, module2, define2) { function XorGen(seed) { var me = this, strseed = ""; @@ -487,7 +487,7 @@ var faceapi = (() => { } ; function impl(seed, opts) { - var xg = new XorGen(seed), state = opts && opts.state, prng = function() { + var xg = new XorGen(seed), state6 = opts && opts.state, prng = function() { return (xg.next() >>> 0) / 4294967296; }; prng.double = function() { @@ -498,9 +498,9 @@ var faceapi = (() => { }; prng.int32 = xg.next; prng.quick = prng; - if (state) { - if (typeof state == "object") - copy(state, xg); + if (state6) { + if (typeof state6 == "object") + copy(state6, xg); prng.state = function() { return copy(xg, {}); }; @@ -516,7 +516,7 @@ var faceapi = (() => { } else { this.tychei = impl; } - })(exports, typeof module == "object" && module, typeof define == "function" && define); + })(exports3, typeof module == "object" && module, typeof define == "function" && define); }); // disabled:crypto @@ -524,13 +524,13 @@ var faceapi = (() => { }); // node_modules/seedrandom/seedrandom.js - var require_seedrandom = __commonJS((exports, module) => { - (function(pool3, math) { + var require_seedrandom = __commonJS((exports3, module) => { + (function(pool4, math) { var global2 = this, width = 256, chunks = 6, digits = 52, rngname = "random", startdenom = math.pow(width, chunks), significance = math.pow(2, digits), overflow = significance * 2, mask = width - 1, nodecrypto; - function seedrandom2(seed, options, callback) { + function seedrandom5(seed, options, callback) { var key = []; options = options == true ? {entropy: true} : options || {}; - var shortseed = mixkey(flatten2(options.entropy ? [seed, tostring(pool3)] : seed == null ? autoseed() : seed, 3), key); + var shortseed = mixkey(flatten4(options.entropy ? [seed, tostring(pool4)] : seed == null ? autoseed() : seed, 3), key); var arc4 = new ARC4(key); var prng = function() { var n = arc4.g(chunks), d = startdenom, x = 0; @@ -553,11 +553,11 @@ var faceapi = (() => { return arc4.g(4) / 4294967296; }; prng.double = prng; - mixkey(tostring(arc4.S), pool3); - return (options.pass || callback || function(prng2, seed2, is_math_call, state) { - if (state) { - if (state.S) { - copy(state, arc4); + mixkey(tostring(arc4.S), pool4); + return (options.pass || callback || function(prng2, seed2, is_math_call, state6) { + if (state6) { + if (state6.S) { + copy(state6, arc4); } prng2.state = function() { return copy(arc4, {}); @@ -570,7 +570,7 @@ var faceapi = (() => { return prng2; })(prng, shortseed, "global" in options ? options.global : this == math, options.state); } - math["seed" + rngname] = seedrandom2; + math["seed" + rngname] = seedrandom5; function ARC4(key) { var t, keylen = key.length, me = this, i = 0, j = me.i = me.j = 0, s = me.S = []; if (!keylen) { @@ -583,9 +583,9 @@ var faceapi = (() => { s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])]; s[j] = t; } - (me.g = function(count) { + (me.g = function(count2) { var t2, r = 0, i2 = me.i, j2 = me.j, s2 = me.S; - while (count--) { + while (count2--) { t2 = s2[i2 = mask & i2 + 1]; r = r * width + s2[mask & (s2[i2] = s2[j2 = mask & j2 + t2]) + (s2[j2] = t2)]; } @@ -601,12 +601,12 @@ var faceapi = (() => { return t; } ; - function flatten2(obj, depth) { + function flatten4(obj, depth) { var result = [], typ = typeof obj, prop; if (depth && typ == "object") { for (prop in obj) { try { - result.push(flatten2(obj[prop], depth - 1)); + result.push(flatten4(obj[prop], depth - 1)); } catch (e) { } } @@ -632,37 +632,37 @@ var faceapi = (() => { return tostring(out); } catch (e) { var browser = global2.navigator, plugins = browser && browser.plugins; - return [+new Date(), global2, plugins, global2.screen, tostring(pool3)]; + return [+new Date(), global2, plugins, global2.screen, tostring(pool4)]; } } function tostring(a) { return String.fromCharCode.apply(0, a); } - mixkey(math.random(), pool3); + mixkey(math.random(), pool4); if (typeof module == "object" && module.exports) { - module.exports = seedrandom2; + module.exports = seedrandom5; try { nodecrypto = require_disabled_crypto(); } catch (ex) { } } else if (typeof define == "function" && define.amd) { define(function() { - return seedrandom2; + return seedrandom5; }); } })([], Math); }); // node_modules/seedrandom/index.js - var require_seedrandom2 = __commonJS((exports, module) => { - var alea2 = require_alea(); + var require_seedrandom2 = __commonJS((exports3, module) => { + var alea5 = require_alea(); var xor128 = require_xor128(); var xorwow = require_xorwow(); var xorshift7 = require_xorshift7(); var xor4096 = require_xor4096(); var tychei = require_tychei(); var sr = require_seedrandom(); - sr.alea = alea2; + sr.alea = alea5; sr.xor128 = xor128; sr.xorwow = xorwow; sr.xorshift7 = xorshift7; @@ -671,136 +671,30 @@ var faceapi = (() => { module.exports = sr; }); + // disabled:/home/vlado/dev/face-api/node_modules/string_decoder/lib/string_decoder.js + var require_string_decoder = __commonJS(() => { + }); + + // disabled:fs + var require_disabled_fs = __commonJS(() => { + }); + // build/env/isNodejs.js - var require_isNodejs = __commonJS((exports, module) => { - __export(exports, { - isNodejs: () => isNodejs + var require_isNodejs = __commonJS((exports3, module) => { + __export(exports3, { + isNodejs: () => isNodejs3 }); - function isNodejs() { + function isNodejs3() { return typeof global === "object" && true && typeof module !== "undefined" && typeof process !== "undefined" && !!process.version; } }); - // build/env/types.js - var require_types = __commonJS(() => { - }); - - // build/env/index.js - var require_env = __commonJS((exports) => { - __export(exports, { - env: () => env30 - }); - const isNodejs2 = __toModule(require_isNodejs()); - __exportStar(exports, __toModule(require_types())); - let environment11; - function getEnv() { - if (!environment11) { - throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()"); - } - return environment11; - } - function setEnv(env31) { - environment11 = env31; - } - function initialize() { - if (isBrowser2()) { - return setEnv(createBrowserEnv()); - } - if (isNodejs2.isNodejs()) { - return setEnv(createNodejsEnv()); - } - } - function monkeyPatch(env31) { - if (!environment11) { - initialize(); - } - if (!environment11) { - throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()"); - } - const {Canvas = environment11.Canvas, Image = environment11.Image} = env31; - environment11.Canvas = Canvas; - environment11.Image = Image; - environment11.createCanvasElement = env31.createCanvasElement || (() => new Canvas()); - environment11.createImageElement = env31.createImageElement || (() => new Image()); - environment11.ImageData = env31.ImageData || environment11.ImageData; - environment11.Video = env31.Video || environment11.Video; - environment11.fetch = env31.fetch || environment11.fetch; - environment11.readFile = env31.readFile || environment11.readFile; - } - const env30 = { - getEnv, - setEnv, - initialize, - createBrowserEnv, - createFileSystem, - createNodejsEnv, - monkeyPatch, - isBrowser: isBrowser2, - isNodejs: isNodejs2.isNodejs - }; - initialize(); - }); - - // build/dom/types.js - var require_types2 = __commonJS(() => { - }); - - // build/dom/index.js - var require_dom = __commonJS((exports) => { - __export(exports, { - NetInput: () => NetInput, - awaitMediaLoaded: () => awaitMediaLoaded, - bufferToImage: () => bufferToImage, - createCanvas: () => createCanvas, - createCanvasFromMedia: () => createCanvasFromMedia, - extractFaceTensors: () => extractFaceTensors, - extractFaces: () => extractFaces, - fetchImage: () => fetchImage, - fetchJson: () => fetchJson, - fetchNetWeights: () => fetchNetWeights, - fetchOrThrow: () => fetchOrThrow, - getContext2dOrThrow: () => getContext2dOrThrow, - getMediaDimensions: () => getMediaDimensions, - imageTensorToCanvas: () => imageTensorToCanvas, - imageToSquare: () => imageToSquare, - isMediaElement: () => isMediaElement, - isMediaLoaded: () => isMediaLoaded, - loadWeightMap: () => loadWeightMap, - matchDimensions: () => matchDimensions, - resolveInput: () => resolveInput, - toNetInput: () => toNetInput - }); - __exportStar(exports, __toModule(require_types2())); - }); - - // build/tinyYolov2/types.js - var require_types3 = __commonJS(() => { - }); - - // build/tinyYolov2/index.js - var require_tinyYolov2 = __commonJS((exports) => { - __export(exports, { - TinyYolov2: () => TinyYolov2, - TinyYolov2Options: () => TinyYolov2Options, - TinyYolov2SizeType: () => TinyYolov2SizeType, - createTinyYolov2: () => createTinyYolov2, - validateConfig: () => validateConfig - }); - __exportStar(exports, __toModule(require_types3())); - function createTinyYolov2(weights, withSeparableConvs = true) { - const net = new TinyYolov2(withSeparableConvs); - net.extractWeights(weights); - return net; - } - }); - - // build/globalApi/types.js - var require_types4 = __commonJS(() => { - }); - - // build/globalApi/index.js - var require_globalApi = __commonJS((exports) => { - __export(exports, { + // build/index.js + var require_build = __commonJS((exports3) => { + __export(exports3, { + AgeGenderNet: () => AgeGenderNet, + BoundingBox: () => BoundingBox, + Box: () => Box, ComposableTask: () => ComposableTask, ComputeAllFaceDescriptorsTask: () => ComputeAllFaceDescriptorsTask, ComputeFaceDescriptorsTaskBase: () => ComputeFaceDescriptorsTaskBase, @@ -811,36 +705,6 @@ var faceapi = (() => { DetectFacesTaskBase: () => DetectFacesTaskBase, DetectSingleFaceLandmarksTask: () => DetectSingleFaceLandmarksTask, DetectSingleFaceTask: () => DetectSingleFaceTask, - FaceMatcher: () => FaceMatcher, - computeFaceDescriptor: () => computeFaceDescriptor, - detectAllFaces: () => detectAllFaces, - detectFaceLandmarks: () => detectFaceLandmarks, - detectFaceLandmarksTiny: () => detectFaceLandmarksTiny, - detectLandmarks: () => detectLandmarks, - detectSingleFace: () => detectSingleFace, - loadAgeGenderModel: () => loadAgeGenderModel, - loadFaceDetectionModel: () => loadFaceDetectionModel, - loadFaceExpressionModel: () => loadFaceExpressionModel, - loadFaceLandmarkModel: () => loadFaceLandmarkModel, - loadFaceLandmarkTinyModel: () => loadFaceLandmarkTinyModel, - loadFaceRecognitionModel: () => loadFaceRecognitionModel, - loadTinyFaceDetectorModel: () => loadTinyFaceDetectorModel, - loadTinyYolov2Model: () => loadTinyYolov2Model, - locateFaces: () => locateFaces, - nets: () => nets, - predictAgeAndGender: () => predictAgeAndGender, - recognizeFaceExpressions: () => recognizeFaceExpressions, - tinyFaceDetector: () => tinyFaceDetector - }); - __exportStar(exports, __toModule(require_types4())); - }); - - // build/index.js - var require_build = __commonJS((exports) => { - __export(exports, { - AgeGenderNet: () => AgeGenderNet, - BoundingBox: () => BoundingBox, - Box: () => Box, Dimensions: () => Dimensions, FACE_EXPRESSION_LABELS: () => FACE_EXPRESSION_LABELS, FaceDetection: () => FaceDetection, @@ -853,10 +717,12 @@ var faceapi = (() => { FaceLandmarks5: () => FaceLandmarks5, FaceLandmarks68: () => FaceLandmarks68, FaceMatch: () => FaceMatch, + FaceMatcher: () => FaceMatcher, FaceRecognitionNet: () => FaceRecognitionNet, Gender: () => Gender, LabeledBox: () => LabeledBox, LabeledFaceDescriptors: () => LabeledFaceDescriptors, + NetInput: () => NetInput, NeuralNetwork: () => NeuralNetwork, ObjectDetection: () => ObjectDetection, Point: () => Point, @@ -864,9 +730,24 @@ var faceapi = (() => { Rect: () => Rect, TinyFaceDetector: () => TinyFaceDetector, TinyFaceDetectorOptions: () => TinyFaceDetectorOptions, + TinyYolov2: () => TinyYolov2, + TinyYolov2Options: () => TinyYolov2Options, + TinyYolov2SizeType: () => TinyYolov2SizeType, + awaitMediaLoaded: () => awaitMediaLoaded, + bufferToImage: () => bufferToImage, + computeFaceDescriptor: () => computeFaceDescriptor, + createCanvas: () => createCanvas2, + createCanvasFromMedia: () => createCanvasFromMedia, createFaceRecognitionNet: () => createFaceRecognitionNet, createTinyFaceDetector: () => createTinyFaceDetector, + createTinyYolov2: () => createTinyYolov2, + detectAllFaces: () => detectAllFaces, + detectFaceLandmarks: () => detectFaceLandmarks, + detectFaceLandmarksTiny: () => detectFaceLandmarksTiny, + detectLandmarks: () => detectLandmarks, + detectSingleFace: () => detectSingleFace, draw: () => draw_exports, + env: () => env2, euclideanDistance: () => euclideanDistance, extendWithAge: () => extendWithAge, extendWithFaceDescriptor: () => extendWithFaceDescriptor, @@ -874,27 +755,53 @@ var faceapi = (() => { extendWithFaceExpressions: () => extendWithFaceExpressions, extendWithFaceLandmarks: () => extendWithFaceLandmarks, extendWithGender: () => extendWithGender, + extractFaceTensors: () => extractFaceTensors, + extractFaces: () => extractFaces, + fetchImage: () => fetchImage, + fetchJson: () => fetchJson, + fetchNetWeights: () => fetchNetWeights, + fetchOrThrow: () => fetchOrThrow, + getContext2dOrThrow: () => getContext2dOrThrow, + getMediaDimensions: () => getMediaDimensions, + imageTensorToCanvas: () => imageTensorToCanvas, + imageToSquare: () => imageToSquare, inverseSigmoid: () => inverseSigmoid, iou: () => iou, + isMediaElement: () => isMediaElement, + isMediaLoaded: () => isMediaLoaded, isWithAge: () => isWithAge, isWithFaceDetection: () => isWithFaceDetection, isWithFaceExpressions: () => isWithFaceExpressions, isWithFaceLandmarks: () => isWithFaceLandmarks, isWithGender: () => isWithGender, + loadAgeGenderModel: () => loadAgeGenderModel, + loadFaceDetectionModel: () => loadFaceDetectionModel, + loadFaceExpressionModel: () => loadFaceExpressionModel, + loadFaceLandmarkModel: () => loadFaceLandmarkModel, + loadFaceLandmarkTinyModel: () => loadFaceLandmarkTinyModel, + loadFaceRecognitionModel: () => loadFaceRecognitionModel, + loadTinyFaceDetectorModel: () => loadTinyFaceDetectorModel, + loadTinyYolov2Model: () => loadTinyYolov2Model, + loadWeightMap: () => loadWeightMap, + locateFaces: () => locateFaces, + matchDimensions: () => matchDimensions, minBbox: () => minBbox, + nets: () => nets, nonMaxSuppression: () => nonMaxSuppression2, normalize: () => normalize, padToSquare: () => padToSquare, + predictAgeAndGender: () => predictAgeAndGender, + recognizeFaceExpressions: () => recognizeFaceExpressions, resizeResults: () => resizeResults, + resolveInput: () => resolveInput, shuffleArray: () => shuffleArray, sigmoid: () => sigmoid6, - tf: () => dist_exports, - utils: () => utils_exports + tf: () => dist_exports2, + tinyFaceDetector: () => tinyFaceDetector, + toNetInput: () => toNetInput, + utils: () => utils_exports, + validateConfig: () => validateConfig }); - __exportStar(exports, __toModule(require_dom())); - __exportStar(exports, __toModule(require_env())); - __exportStar(exports, __toModule(require_globalApi())); - __exportStar(exports, __toModule(require_tinyYolov2())); }); // node_modules/@tensorflow/tfjs-core/dist/environment.js @@ -1029,8 +936,8 @@ var faceapi = (() => { return ENV; } let ENV = null; - function setEnvironmentGlobal(environment11) { - ENV = environment11; + function setEnvironmentGlobal(environment12) { + ENV = environment12; } // node_modules/@tensorflow/tfjs-core/dist/global_util.js @@ -1382,20 +1289,20 @@ var faceapi = (() => { * limitations under the License. * ============================================================================= */ - function shuffle(array) { - let counter = array.length; + function shuffle(array2) { + let counter = array2.length; let temp = 0; let index = 0; while (counter > 0) { index = Math.random() * counter | 0; counter--; - temp = array[counter]; - array[counter] = array[index]; - array[index] = temp; + temp = array2[counter]; + array2[counter] = array2[index]; + array2[index] = temp; } } - function clamp(min5, x, max7) { - return Math.max(min5, Math.min(x, max7)); + function clamp(min6, x, max8) { + return Math.max(min6, Math.min(x, max8)); } function nearestLargerEven(val) { return val % 2 === 0 ? val : val + 1; @@ -1778,11 +1685,11 @@ var faceapi = (() => { return a instanceof Float32Array && dtype === "float32" || a instanceof Int32Array && dtype === "int32" || a instanceof Uint8Array && dtype === "bool"; } function makeOnesTypedArray(size, dtype) { - const array = makeZerosTypedArray(size, dtype); - for (let i = 0; i < array.length; i++) { - array[i] = 1; + const array2 = makeZerosTypedArray(size, dtype); + for (let i = 0; i < array2.length; i++) { + array2[i] = 1; } - return array; + return array2; } function makeZerosTypedArray(size, dtype) { if (dtype == null || dtype === "float32" || dtype === "complex64") { @@ -1929,9 +1836,9 @@ var faceapi = (() => { const shape = rightPad(result.shape.toString(), 14); let inputShapesDescription = ""; for (const name2 in inputs) { - const input = inputs[name2]; - if (input != null) { - const inputShape = input.shape || result.shape; + const input2 = inputs[name2]; + if (input2 != null) { + const inputShape = input2.shape || result.shape; const inputRank = inputShape.length; inputShapesDescription += `${name2}: ${inputRank}D ${inputRank > 0 ? inputShape : ""} `; } @@ -1967,10 +1874,10 @@ var faceapi = (() => { const node = tape2[i]; const nodeInputs = node.inputs; for (const inputName in nodeInputs) { - const input = nodeInputs[inputName]; + const input2 = nodeInputs[inputName]; let anyInputFromX = false; for (let j = 0; j < xs.length; j++) { - if (tensorsFromX[input.id]) { + if (tensorsFromX[input2.id]) { node.outputs.forEach((output) => tensorsFromX[output.id] = true); anyInputFromX = true; nodesFromX[node.id] = true; @@ -2017,7 +1924,7 @@ var faceapi = (() => { } return filteredTape; } - function backpropagateGradients(tensorAccumulatedGradientMap, filteredTape, tidy2, add29) { + function backpropagateGradients(tensorAccumulatedGradientMap, filteredTape, tidy2, add30) { for (let i = filteredTape.length - 1; i >= 0; i--) { const node = filteredTape[i]; const dys = []; @@ -2049,7 +1956,7 @@ var faceapi = (() => { tensorAccumulatedGradientMap[x.id] = dx; } else { const curGradient = tensorAccumulatedGradientMap[x.id]; - tensorAccumulatedGradientMap[x.id] = add29(curGradient, dx); + tensorAccumulatedGradientMap[x.id] = add30(curGradient, dx); curGradient.dispose(); } } @@ -2549,18 +2456,18 @@ var faceapi = (() => { walkTensorContainer(result, list, seen); return list; } - function walkTensorContainer(container, list, seen) { - if (container == null) { + function walkTensorContainer(container2, list, seen) { + if (container2 == null) { return; } - if (container instanceof Tensor) { - list.push(container); + if (container2 instanceof Tensor) { + list.push(container2); return; } - if (!isIterable(container)) { + if (!isIterable(container2)) { return; } - const iterable = container; + const iterable = container2; for (const k in iterable) { const val = iterable[k]; if (!seen.has(val)) { @@ -2614,8 +2521,8 @@ var faceapi = (() => { } } class Engine { - constructor(ENV3) { - this.ENV = ENV3; + constructor(ENV4) { + this.ENV = ENV4; this.registry = {}; this.registryFactory = {}; this.pendingBackendInitId = 0; @@ -3213,8 +3120,8 @@ var faceapi = (() => { assert(inputs.every((t) => t instanceof Tensor), () => "The args passed in customGrad(f)(x1, x2,...) must all be tensors"); let res; const inputMap = {}; - inputs.forEach((input, i) => { - inputMap[i] = input; + inputs.forEach((input2, i) => { + inputMap[i] = input2; }); return this.runKernelFunc((_, save) => { res = f(...[...inputs, save]); @@ -3282,8 +3189,8 @@ var faceapi = (() => { function getOrMakeEngine() { const ns = getGlobalNamespace(); if (ns._tfengine == null) { - const environment11 = new Environment(ns); - ns._tfengine = new Engine(environment11); + const environment12 = new Environment(ns); + ns._tfengine = new Engine(environment12); } setEnvironmentGlobal(ns._tfengine.ENV); setTensorTracker(() => ns._tfengine); @@ -4546,8 +4453,8 @@ var faceapi = (() => { function tidy(nameOrFn, fn) { return ENGINE.tidy(nameOrFn, fn); } - function dispose(container) { - const tensors = getTensorsInContainer(container); + function dispose(container2) { + const tensors = getTensorsInContainer(container2); tensors.forEach((tensor17) => tensor17.dispose()); } function keep(result) { @@ -4932,11 +4839,11 @@ var faceapi = (() => { * limitations under the License. * ============================================================================= */ - function assertParamsValid(input, begin, size) { - assert(input.rank === begin.length, () => `Error in slice${input.rank}D: Length of begin ${begin} must match the rank of the array (${input.rank}).`); - assert(input.rank === size.length, () => `Error in slice${input.rank}D: Length of size ${size} must match the rank of the array (${input.rank}).`); - for (let i = 0; i < input.rank; ++i) { - assert(begin[i] + size[i] <= input.shape[i], () => `Error in slice${input.rank}D: begin[${i}] + size[${i}] (${begin[i] + size[i]}) would overflow input.shape[${i}] (${input.shape[i]})`); + function assertParamsValid(input2, begin, size) { + assert(input2.rank === begin.length, () => `Error in slice${input2.rank}D: Length of begin ${begin} must match the rank of the array (${input2.rank}).`); + assert(input2.rank === size.length, () => `Error in slice${input2.rank}D: Length of size ${size} must match the rank of the array (${input2.rank}).`); + for (let i = 0; i < input2.rank; ++i) { + assert(begin[i] + size[i] <= input2.shape[i], () => `Error in slice${input2.rank}D: begin[${i}] + size[${i}] (${begin[i] + size[i]}) would overflow input.shape[${i}] (${input2.shape[i]})`); } } function maskToAxes(mask) { @@ -5465,36 +5372,36 @@ var faceapi = (() => { * ============================================================================= */ function broadcastTo_(x, shape) { - let input = convertToTensor(x, "broadcastTo", "x"); - const xShape = input.shape; + let input2 = convertToTensor(x, "broadcastTo", "x"); + const xShape = input2.shape; if (shape.some((d) => !(d > 0) || d % 1 !== 0)) { throw new Error(`broadcastTo(): Invalid broadcast shape [${shape}].`); } - if (shape.length < input.rank) { - throw new Error(`broadcastTo(): shape.length=${shape.length} < input.rank=${input.rank}.`); + if (shape.length < input2.rank) { + throw new Error(`broadcastTo(): shape.length=${shape.length} < input.rank=${input2.rank}.`); } - if (shape.length > input.rank) { - const newShape = input.shape.slice(); + if (shape.length > input2.rank) { + const newShape = input2.shape.slice(); while (newShape.length < shape.length) { newShape.unshift(1); } - input = reshape(input, newShape); + input2 = reshape(input2, newShape); } - const inputShape = input.shape; + const inputShape = input2.shape; const reps = Array.from(shape); for (let i = shape.length - 1; i >= 0; i--) { if (inputShape[i] === shape[i]) { reps[i] = 1; - } else if (input.shape[i] !== 1) { + } else if (input2.shape[i] !== 1) { throw new Error(`broadcastTo(): [${xShape}] cannot be broadcast to [${shape}].`); } } const axes = reps.map((n, i) => n > 1 ? i : -1).filter((i) => i >= 0); if (axes.length === 0) { - return clone(input); + return clone(input2); } - const forward = (backend2) => backend2.tile(input, reps); - const inputs = {x: input}; + const forward = (backend2) => backend2.tile(input2, reps); + const inputs = {x: input2}; const attrs = {shape, inputShape}; return ENGINE.runKernelFunc(forward, inputs, null, BroadcastTo, attrs); } @@ -6384,9 +6291,9 @@ var faceapi = (() => { let $b = convertToTensor(b, "b", "div"); [$a, $b] = makeTypesMatch($a, $b); const divResult = div($a, $b); - const zeros9 = zerosLike(divResult); - const bEqualsZero = equal($b, zeros9); - return where(bEqualsZero, zeros9, divResult); + const zeros10 = zerosLike(divResult); + const bEqualsZero = equal($b, zeros10); + return where(bEqualsZero, zeros10, divResult); } const divNoNan = op({divNoNan_}); @@ -6683,15 +6590,15 @@ var faceapi = (() => { * limitations under the License. * ============================================================================= */ - function fft_(input) { - assert(input.dtype === "complex64", () => `The dtype for tf.spectral.fft() must be complex64 but got ${input.dtype}.`); - const inputs = {input}; + function fft_(input2) { + assert(input2.dtype === "complex64", () => `The dtype for tf.spectral.fft() must be complex64 but got ${input2.dtype}.`); + const inputs = {input: input2}; return ENGINE.runKernelFunc((backend2) => { - const innerDimensionSize = input.shape[input.shape.length - 1]; - const batch = input.size / innerDimensionSize; - const input2D = input.as2D(batch, innerDimensionSize); + const innerDimensionSize = input2.shape[input2.shape.length - 1]; + const batch = input2.size / innerDimensionSize; + const input2D = input2.as2D(batch, innerDimensionSize); const result = backend2.fft(input2D); - return result.reshape(input.shape); + return result.reshape(input2.shape); }, inputs, null, FFT); } const fft = op({fft_}); @@ -6949,15 +6856,15 @@ var faceapi = (() => { * limitations under the License. * ============================================================================= */ - function ifft_(input) { - assert(input.dtype === "complex64", () => `The dtype for tf.spectral.ifft() must be complex64 but got ${input.dtype}.`); - const inputs = {input}; + function ifft_(input2) { + assert(input2.dtype === "complex64", () => `The dtype for tf.spectral.ifft() must be complex64 but got ${input2.dtype}.`); + const inputs = {input: input2}; return ENGINE.runKernelFunc((backend2) => { - const innerDimensionSize = input.shape[input.shape.length - 1]; - const batch = input.size / innerDimensionSize; - const input2D = reshape(input, [batch, innerDimensionSize]); + const innerDimensionSize = input2.shape[input2.shape.length - 1]; + const batch = input2.size / innerDimensionSize; + const input2D = reshape(input2, [batch, innerDimensionSize]); const result = backend2.ifft(input2D); - return reshape(result, input.shape); + return reshape(result, input2.shape); }, inputs, null, IFFT); } const ifft = op({ifft_}); @@ -6979,8 +6886,8 @@ var faceapi = (() => { * limitations under the License. * ============================================================================= */ - function imag_(input) { - const $input = convertToTensor(input, "input", "imag"); + function imag_(input2) { + const $input = convertToTensor(input2, "input", "imag"); const forward = (backend2) => { return backend2.imag($input); }; @@ -7006,8 +6913,8 @@ var faceapi = (() => { * limitations under the License. * ============================================================================= */ - function real_(input) { - const $input = convertToTensor(input, "input", "real"); + function real_(input2) { + const $input = convertToTensor(input2, "input", "real"); const forward = (backend2) => { return backend2.real($input); }; @@ -7095,17 +7002,17 @@ var faceapi = (() => { * limitations under the License. * ============================================================================= */ - function irfft_(input) { - const innerDimensionSize = input.shape[input.shape.length - 1]; - const batch = input.size / innerDimensionSize; + function irfft_(input2) { + const innerDimensionSize = input2.shape[input2.shape.length - 1]; + const batch = input2.size / innerDimensionSize; let ret; if (innerDimensionSize <= 2) { - const complexInput = reshape(input, [batch, innerDimensionSize]); + const complexInput = reshape(input2, [batch, innerDimensionSize]); ret = ifft(complexInput); } else { const outputShape = [batch, 2 * (innerDimensionSize - 1)]; - const realInput = reshape(real(input), [batch, innerDimensionSize]); - const imagInput = reshape(imag(input), [batch, innerDimensionSize]); + const realInput = reshape(real(input2), [batch, innerDimensionSize]); + const imagInput = reshape(imag(input2), [batch, innerDimensionSize]); const realConjugate = reverse(slice(realInput, [0, 1], [batch, innerDimensionSize - 2]), 1); const imagConjugate = mul(reverse(slice(imagInput, [0, 1], [batch, innerDimensionSize - 2]), 1), scalar(-1)); const r = concat([realInput, realConjugate], 1); @@ -7114,9 +7021,9 @@ var faceapi = (() => { ret = ifft(complexInput); } ret = real(ret); - if (input.rank === 3 && input.shape[0] !== 0) { + if (input2.rank === 3 && input2.shape[0] !== 0) { const temp = ret; - const batch2 = input.shape[0]; + const batch2 = input2.shape[0]; ret = reshape(ret, [batch2, ret.shape[0] / batch2, ret.shape[1]]); temp.dispose(); } @@ -8324,13 +8231,13 @@ var faceapi = (() => { const $data = convertToTensor(data, "data", "multiRNNCell"); const $c = convertToTensorArray(c, "c", "multiRNNCell"); const $h = convertToTensorArray(h, "h", "multiRNNCell"); - let input = $data; + let input2 = $data; const newStates = []; for (let i = 0; i < lstmCells.length; i++) { - const output = lstmCells[i](input, $c[i], $h[i]); + const output = lstmCells[i](input2, $c[i], $h[i]); newStates.push(output[0]); newStates.push(output[1]); - input = output[1]; + input2 = output[1]; } const newC = []; const newH = []; @@ -8591,7 +8498,7 @@ var faceapi = (() => { * limitations under the License. * ============================================================================= */ - function pool_(input, windowShape, poolingType, pad8, dilations, strides) { + function pool_(input2, windowShape, poolingType, pad8, dilations, strides) { if (dilations == null) { dilations = [1, 1]; } @@ -8601,7 +8508,7 @@ var faceapi = (() => { if (pad8 === 0) { pad8 = "valid"; } - const $x = convertToTensor(input, "x", "maxPool"); + const $x = convertToTensor(input2, "x", "maxPool"); let x4D = $x; let reshapedTo4D = false; if ($x.rank === 3) { @@ -8844,11 +8751,11 @@ var faceapi = (() => { */ const TEST_EPSILON_FLOAT32 = 1e-3; const TEST_EPSILON_FLOAT16 = 0.1; - function expectArraysClose(actual, expected, epsilon) { - if (epsilon == null) { - epsilon = testEpsilon(); + function expectArraysClose(actual, expected, epsilon2) { + if (epsilon2 == null) { + epsilon2 = testEpsilon(); } - return expectArraysPredicate(actual, expected, (a, b) => areClose(a, b, epsilon)); + return expectArraysPredicate(actual, expected, (a, b) => areClose(a, b, epsilon2)); } function testEpsilon() { return ENGINE.backend.floatPrecision() === 32 ? TEST_EPSILON_FLOAT32 : TEST_EPSILON_FLOAT16; @@ -8902,19 +8809,19 @@ Expected: ${expectedFlat}.`); } return expectArraysPredicate(actual, expected, (a, b) => areClose(a, b, 0)); } - function expectNumbersClose(a, e, epsilon) { - if (epsilon == null) { - epsilon = testEpsilon(); + function expectNumbersClose(a, e, epsilon2) { + if (epsilon2 == null) { + epsilon2 = testEpsilon(); } - if (!areClose(a, e, epsilon)) { + if (!areClose(a, e, epsilon2)) { throw new Error(`Numbers differ: actual === ${a}, expected === ${e}`); } } - function areClose(a, e, epsilon) { + function areClose(a, e, epsilon2) { if (!isFinite(a) && !isFinite(e)) { return true; } - if (isNaN(a) || isNaN(e) || Math.abs(a - e) > epsilon) { + if (isNaN(a) || isNaN(e) || Math.abs(a - e) > epsilon2) { return false; } return true; @@ -9044,10 +8951,10 @@ Expected: ${expectedFlat}.`); } } class UniformRandom { - constructor(min5 = 0, max7 = 1, dtype, seed) { + constructor(min6 = 0, max8 = 1, dtype, seed) { this.canReturnFloat = () => this.dtype == null || this.dtype === "float32"; - this.min = min5; - this.range = max7 - min5; + this.min = min6; + this.range = max8 - min6; this.dtype = dtype; if (seed == null) { seed = Math.random(); @@ -9056,7 +8963,7 @@ Expected: ${expectedFlat}.`); seed = seed.toString(); } if (!this.canReturnFloat() && this.range <= 1) { - throw new Error(`The difference between ${min5} - ${max7} <= 1 and dtype is not float`); + throw new Error(`The difference between ${min6} - ${max8} <= 1 and dtype is not float`); } this.random = seedrandom.alea(seed); } @@ -9427,11 +9334,11 @@ Expected: ${expectedFlat}.`); assert(x.shape[axis] % numOrSizeSplits === 0, () => "Number of splits must evenly divide the axis."); splitSizes = new Array(numOrSizeSplits).fill(x.shape[axis] / numOrSizeSplits); } else { - const numOfNegs = numOrSizeSplits.reduce((count, value) => { + const numOfNegs = numOrSizeSplits.reduce((count2, value) => { if (value === -1) { - count += 1; + count2 += 1; } - return count; + return count2; }, 0); assert(numOfNegs <= 1, () => "There should be only one negative value in split array."); const negIndex = numOrSizeSplits.indexOf(-1); @@ -9492,24 +9399,24 @@ Expected: ${expectedFlat}.`); * limitations under the License. * ============================================================================= */ - function rfft_(input, fftLength) { - assert(input.dtype === "float32", () => `The dtype for rfft() must be real value but got ${input.dtype}`); - let innerDimensionSize = input.shape[input.shape.length - 1]; - const batch = input.size / innerDimensionSize; + function rfft_(input2, fftLength) { + assert(input2.dtype === "float32", () => `The dtype for rfft() must be real value but got ${input2.dtype}`); + let innerDimensionSize = input2.shape[input2.shape.length - 1]; + const batch = input2.size / innerDimensionSize; let adjustedInput; if (fftLength != null && fftLength < innerDimensionSize) { - const begin = input.shape.map((v) => 0); - const size = input.shape.map((v) => v); - size[input.shape.length - 1] = fftLength; - adjustedInput = slice(input, begin, size); + const begin = input2.shape.map((v) => 0); + const size = input2.shape.map((v) => v); + size[input2.shape.length - 1] = fftLength; + adjustedInput = slice(input2, begin, size); innerDimensionSize = fftLength; } else if (fftLength != null && fftLength > innerDimensionSize) { - const zerosShape = input.shape.map((v) => v); - zerosShape[input.shape.length - 1] = fftLength - innerDimensionSize; - adjustedInput = concat([input, zeros(zerosShape)], input.shape.length - 1); + const zerosShape = input2.shape.map((v) => v); + zerosShape[input2.shape.length - 1] = fftLength - innerDimensionSize; + adjustedInput = concat([input2, zeros(zerosShape)], input2.shape.length - 1); innerDimensionSize = fftLength; } else { - adjustedInput = input; + adjustedInput = input2; } const zerosInput = zerosLike(adjustedInput); const complexInput = reshape(complex(adjustedInput, zerosInput), [batch, innerDimensionSize]); @@ -11134,7 +11041,7 @@ Expected: ${expectedFlat}.`); const predictionsVals = await $predictions.data(); const targetsVals = await $targets.data(); const [batch, size] = [predictionsVals.length / lastDim, lastDim]; - const precision = getTypedArrayFromDType("bool", batch); + const precision3 = getTypedArrayFromDType("bool", batch); for (let b = 0; b < batch; b++) { const offset = b * size; const vals = predictionsVals.subarray(offset, offset + size); @@ -11143,10 +11050,10 @@ Expected: ${expectedFlat}.`); valAndInd.push({value: vals[i], index: i}); } valAndInd.sort((a, b2) => b2.value - a.value); - precision[b] = 0; + precision3[b] = 0; for (let i = 0; i < k; i++) { if (valAndInd[i].index === targetsVals[b]) { - precision[b] = 1; + precision3[b] = 1; break; } } @@ -11157,7 +11064,7 @@ Expected: ${expectedFlat}.`); if (targets !== $targets) { $targets.dispose(); } - return tensor5(precision, $targets.shape, "bool"); + return tensor5(precision3, $targets.shape, "bool"); } const inTopKAsync = inTopKAsync_; @@ -11226,14 +11133,14 @@ Expected: ${expectedFlat}.`); * limitations under the License. * ============================================================================= */ - function getFusedDyActivation(dy, y, activation) { - if (activation == null || activation === "linear") { + function getFusedDyActivation(dy, y, activation2) { + if (activation2 == null || activation2 === "linear") { return dy; } - if (activation === "relu") { + if (activation2 === "relu") { return mul(dy, step(y)); } - throw new Error(`Cannot compute gradient for fused activation ${activation}.`); + throw new Error(`Cannot compute gradient for fused activation ${activation2}.`); } function getFusedBiasGradient(bias, dyActivation) { let res = dyActivation; @@ -11243,23 +11150,23 @@ Expected: ${expectedFlat}.`); } return reshape(res, bias.shape); } - function applyActivation(x, activation, preluActivationWeights) { - if (activation === "linear") { + function applyActivation(x, activation2, preluActivationWeights) { + if (activation2 === "linear") { return x; - } else if (activation === "relu") { + } else if (activation2 === "relu") { return relu(x); - } else if (activation === "elu") { + } else if (activation2 === "elu") { return elu(x); - } else if (activation === "relu6") { + } else if (activation2 === "relu6") { return relu6(x); - } else if (activation === "prelu") { + } else if (activation2 === "prelu") { return prelu(x, preluActivationWeights); } - throw new Error(`Unknown fused activation ${activation}.`); + throw new Error(`Unknown fused activation ${activation2}.`); } - const shouldFuse = (gradientDepth, activation) => { + const shouldFuse = (gradientDepth, activation2) => { const gradientMode = gradientDepth > 0; - return !gradientMode || activation === "linear"; + return !gradientMode || activation2 === "linear"; }; // node_modules/@tensorflow/tfjs-core/dist/ops/fused_conv2d.js @@ -11279,14 +11186,14 @@ Expected: ${expectedFlat}.`); * limitations under the License. * ============================================================================= */ - function fusedConv2d_({x, filter, strides, pad: pad8, dataFormat = "NHWC", dilations = [1, 1], dimRoundingMode, bias, activation = "linear", preluActivationWeights}) { - activation = activation || "linear"; - if (shouldFuse(ENGINE.state.gradientDepth, activation) === false) { + function fusedConv2d_({x, filter, strides, pad: pad8, dataFormat = "NHWC", dilations = [1, 1], dimRoundingMode, bias, activation: activation2 = "linear", preluActivationWeights}) { + activation2 = activation2 || "linear"; + if (shouldFuse(ENGINE.state.gradientDepth, activation2) === false) { let result = conv2d(x, filter, strides, pad8, dataFormat, dilations, dimRoundingMode); if (bias != null) { result = add2(result, bias); } - return applyActivation(result, activation, preluActivationWeights); + return applyActivation(result, activation2, preluActivationWeights); } const $x = convertToTensor(x, "x", "conv2d"); const $filter = convertToTensor(filter, "filter", "conv2d"); @@ -11317,7 +11224,7 @@ Expected: ${expectedFlat}.`); } const grad2 = (dy, saved) => { const [$filter2, x4D2, y, $bias2] = saved; - const dyActivation = getFusedDyActivation(dy, y, activation); + const dyActivation = getFusedDyActivation(dy, y, activation2); assert(tupleValuesAreOne(dilations), () => `Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${dilations}'`); const xDer = conv2DBackpropInput(x4D2.shape, dyActivation, $filter2, strides, pad8); const filterDer = conv2DBackpropFilter(x4D2, dyActivation, $filter2.shape, strides, pad8); @@ -11334,7 +11241,7 @@ Expected: ${expectedFlat}.`); filter: $filter, convInfo, bias: $bias, - activation, + activation: activation2, preluActivationWeights: $preluActivationWeights }); return res; @@ -11345,7 +11252,7 @@ Expected: ${expectedFlat}.`); bias: $bias, preluActivationWeights: $preluActivationWeights }; - const attrs = {strides, pad: pad8, dataFormat, dilations, dimRoundingMode, activation}; + const attrs = {strides, pad: pad8, dataFormat, dilations, dimRoundingMode, activation: activation2}; if (bias == null) { const customOp = customGrad((x4D2, filter2, save) => { let res = ENGINE.runKernelFunc(forward, inputs, null, FusedConv2D, attrs); @@ -11453,13 +11360,13 @@ Expected: ${expectedFlat}.`); * limitations under the License. * ============================================================================= */ - function fusedDepthwiseConv2d_({x, filter, strides, pad: pad8, dataFormat = "NHWC", dilations = [1, 1], dimRoundingMode, bias, activation = "linear", preluActivationWeights}) { - if (shouldFuse(ENGINE.state.gradientDepth, activation) === false) { + function fusedDepthwiseConv2d_({x, filter, strides, pad: pad8, dataFormat = "NHWC", dilations = [1, 1], dimRoundingMode, bias, activation: activation2 = "linear", preluActivationWeights}) { + if (shouldFuse(ENGINE.state.gradientDepth, activation2) === false) { let result = depthwiseConv2d(x, filter, strides, pad8, dataFormat, dilations, dimRoundingMode); if (bias != null) { result = add2(result, bias); } - return applyActivation(result, activation, preluActivationWeights); + return applyActivation(result, activation2, preluActivationWeights); } const $x = convertToTensor(x, "x", "depthwiseConv2d"); const $filter = convertToTensor(filter, "filter", "depthwiseConv2d"); @@ -11493,7 +11400,7 @@ Expected: ${expectedFlat}.`); const grad2 = (dy, saved) => { assert(tupleValuesAreOne(dilations), () => `Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${dilations}'`); const [$filter2, x4D2, y, bias2] = saved; - const dyActivation = getFusedDyActivation(dy, y, activation); + const dyActivation = getFusedDyActivation(dy, y, activation2); const xDer = depthwiseConv2dNativeBackpropInput(x4D2.shape, dyActivation, $filter2, convInfo); const filterDer = depthwiseConv2dNativeBackpropFilter(x4D2, dyActivation, $filter2.shape, convInfo); if (bias2 != null) { @@ -11508,7 +11415,7 @@ Expected: ${expectedFlat}.`); filter: $filter, convInfo, bias: $bias, - activation, + activation: activation2, preluActivationWeights: $preluActivationWeights }); return res; @@ -11519,7 +11426,7 @@ Expected: ${expectedFlat}.`); bias: $bias, preluActivationWeights: $preluActivationWeights }; - const attrs = {strides, pad: pad8, dataFormat, dilations, dimRoundingMode, activation}; + const attrs = {strides, pad: pad8, dataFormat, dilations, dimRoundingMode, activation: activation2}; if (bias == null) { const customOp = customGrad((x4D2, filter2, save) => { let res = ENGINE.runKernelFunc(forward, inputs, null, FusedDepthwiseConv2D, attrs); @@ -11561,13 +11468,13 @@ Expected: ${expectedFlat}.`); * limitations under the License. * ============================================================================= */ - function fusedMatMul_({a, b, transposeA = false, transposeB = false, bias, activation = "linear", preluActivationWeights}) { - if (shouldFuse(ENGINE.state.gradientDepth, activation) === false) { + function fusedMatMul_({a, b, transposeA = false, transposeB = false, bias, activation: activation2 = "linear", preluActivationWeights}) { + if (shouldFuse(ENGINE.state.gradientDepth, activation2) === false) { let result = matMul(a, b, transposeA, transposeB); if (bias != null) { result = add2(result, bias); } - return applyActivation(result, activation, preluActivationWeights); + return applyActivation(result, activation2, preluActivationWeights); } let $a = convertToTensor(a, "a", "fused matMul"); let $b = convertToTensor(b, "b", "fused matMul"); @@ -11598,7 +11505,7 @@ Expected: ${expectedFlat}.`); } const grad2 = (dy, saved) => { const [a3D2, b3D2, y, $bias2] = saved; - const dyActivation = getFusedDyActivation(reshape(dy, y.shape), y, activation); + const dyActivation = getFusedDyActivation(reshape(dy, y.shape), y, activation2); let aDer; let bDer; if (!transposeA && !transposeB) { @@ -11628,7 +11535,7 @@ Expected: ${expectedFlat}.`); transposeA, transposeB, bias: $bias, - activation, + activation: activation2, preluActivationWeights: $preluActivationWeights }); return y; @@ -11639,7 +11546,7 @@ Expected: ${expectedFlat}.`); bias: $bias, preluActivationWeights: $preluActivationWeights }; - const attrs = {transposeA, transposeB, activation}; + const attrs = {transposeA, transposeB, activation: activation2}; if (bias == null) { const customOp = customGrad((a3D2, b3D2, save) => { const res = ENGINE.runKernelFunc(forward, inputs, null, _FusedMatMul, attrs); @@ -11816,8 +11723,8 @@ Expected: ${expectedFlat}.`); * limitations under the License. * ============================================================================= */ - function cropAndResize_(image2, boxes, boxInd, cropSize, method, extrapolationValue) { - const $image = convertToTensor(image2, "image", "cropAndResize"); + function cropAndResize_(image3, boxes, boxInd, cropSize, method, extrapolationValue) { + const $image = convertToTensor(image3, "image", "cropAndResize"); const $boxes = convertToTensor(boxes, "boxes", "cropAndResize", "float32"); const $boxInd = convertToTensor(boxInd, "boxInd", "cropAndResize", "int32"); method = method || "bilinear"; @@ -11854,8 +11761,8 @@ Expected: ${expectedFlat}.`); * limitations under the License. * ============================================================================= */ - function flipLeftRight_(image2) { - const $image = convertToTensor(image2, "image", "flipLeftRight", "float32"); + function flipLeftRight_(image3) { + const $image = convertToTensor(image3, "image", "flipLeftRight", "float32"); assert($image.rank === 4, () => `Error in flipLeftRight: image must be rank 4,but got rank ${$image.rank}.`); const inputs = {image: $image}; const res = ENGINE.runKernel(FlipLeftRight, inputs, {}); @@ -11880,8 +11787,8 @@ Expected: ${expectedFlat}.`); * limitations under the License. * ============================================================================= */ - function rotateWithOffset_(image2, radians, fillValue = 0, center = 0.5) { - const $image = convertToTensor(image2, "image", "rotateWithOffset", "float32"); + function rotateWithOffset_(image3, radians, fillValue = 0, center = 0.5) { + const $image = convertToTensor(image3, "image", "rotateWithOffset", "float32"); assert($image.rank === 4, () => `Error in rotateWithOffset: image must be rank 4,but got rank ${$image.rank}.`); const inputs = {image: $image}; const attrs = {radians, fillValue, center}; @@ -12604,20 +12511,20 @@ Expected: ${expectedFlat}.`); })(Reduction || (Reduction = {})); // node_modules/@tensorflow/tfjs-core/dist/ops/compute_weighted_loss.js - function computeWeightedLoss_(losses2, weights, reduction = Reduction.SUM_BY_NONZERO_WEIGHTS) { - const $losses = convertToTensor(losses2, "losses", "computeWeightedLoss"); + function computeWeightedLoss_(losses8, weights, reduction2 = Reduction.SUM_BY_NONZERO_WEIGHTS) { + const $losses = convertToTensor(losses8, "losses", "computeWeightedLoss"); let $weights = null; if (weights != null) { $weights = convertToTensor(weights, "weights", "computeWeightedLoss"); } const weightedLoss = $weights == null ? $losses : mul($losses, $weights); - if (reduction === Reduction.NONE) { + if (reduction2 === Reduction.NONE) { return weightedLoss; } - if (reduction === Reduction.SUM) { + if (reduction2 === Reduction.SUM) { return sum2(weightedLoss); } - if (reduction === Reduction.MEAN) { + if (reduction2 === Reduction.MEAN) { if ($weights == null) { return mean(weightedLoss); } else { @@ -12626,7 +12533,7 @@ Expected: ${expectedFlat}.`); return broadcastFactor > 1 ? div(result, scalar(broadcastFactor)) : result; } } - if (reduction === Reduction.SUM_BY_NONZERO_WEIGHTS) { + if (reduction2 === Reduction.SUM_BY_NONZERO_WEIGHTS) { if ($weights == null) { return div(sum2(weightedLoss), scalar($losses.size)); } else { @@ -12635,7 +12542,7 @@ Expected: ${expectedFlat}.`); return div(sum2(weightedLoss), numNonZeros); } } - throw Error(`Unknown reduction: ${reduction}`); + throw Error(`Unknown reduction: ${reduction2}`); } const computeWeightedLoss = op({computeWeightedLoss_}); @@ -12656,7 +12563,7 @@ Expected: ${expectedFlat}.`); * limitations under the License. * ============================================================================= */ - function absoluteDifference_(labels, predictions, weights, reduction = Reduction.SUM_BY_NONZERO_WEIGHTS) { + function absoluteDifference_(labels, predictions, weights, reduction2 = Reduction.SUM_BY_NONZERO_WEIGHTS) { const $labels = convertToTensor(labels, "labels", "absoluteDifference"); const $predictions = convertToTensor(predictions, "predictions", "absoluteDifference"); let $weights = null; @@ -12664,13 +12571,13 @@ Expected: ${expectedFlat}.`); $weights = convertToTensor(weights, "weights", "absoluteDifference"); } assertShapesMatch($labels.shape, $predictions.shape, "Error in absoluteDifference: "); - const losses2 = abs(sub($labels, $predictions)); - return computeWeightedLoss(losses2, $weights, reduction); + const losses8 = abs(sub($labels, $predictions)); + return computeWeightedLoss(losses8, $weights, reduction2); } const absoluteDifference = op({absoluteDifference_}); // node_modules/@tensorflow/tfjs-core/dist/ops/cosine_distance.js - function cosineDistance_(labels, predictions, axis, weights, reduction = Reduction.SUM_BY_NONZERO_WEIGHTS) { + function cosineDistance_(labels, predictions, axis, weights, reduction2 = Reduction.SUM_BY_NONZERO_WEIGHTS) { const $labels = convertToTensor(labels, "labels", "cosineDistance"); const $predictions = convertToTensor(predictions, "predictions", "cosineDistance"); let $weights = null; @@ -12679,13 +12586,13 @@ Expected: ${expectedFlat}.`); } assertShapesMatch($labels.shape, $predictions.shape, "Error in cosineDistance: "); const one = scalar(1); - const losses2 = sub(one, sum2(mul($labels, $predictions), axis, true)); - return computeWeightedLoss(losses2, $weights, reduction); + const losses8 = sub(one, sum2(mul($labels, $predictions), axis, true)); + return computeWeightedLoss(losses8, $weights, reduction2); } const cosineDistance = op({cosineDistance_}); // node_modules/@tensorflow/tfjs-core/dist/ops/hinge_loss.js - function hingeLoss_(labels, predictions, weights, reduction = Reduction.SUM_BY_NONZERO_WEIGHTS) { + function hingeLoss_(labels, predictions, weights, reduction2 = Reduction.SUM_BY_NONZERO_WEIGHTS) { let $labels = convertToTensor(labels, "labels", "hingeLoss"); const $predictions = convertToTensor(predictions, "predictions", "hingeLoss"); let $weights = null; @@ -12695,8 +12602,8 @@ Expected: ${expectedFlat}.`); assertShapesMatch($labels.shape, $predictions.shape, "Error in hingeLoss: "); const one = scalar(1); $labels = sub(mul(scalar(2), $labels), one); - const losses2 = relu(sub(one, mul($labels, $predictions))); - return computeWeightedLoss(losses2, $weights, reduction); + const losses8 = relu(sub(one, mul($labels, $predictions))); + return computeWeightedLoss(losses8, $weights, reduction2); } const hingeLoss = op({hingeLoss_}); @@ -12717,7 +12624,7 @@ Expected: ${expectedFlat}.`); * limitations under the License. * ============================================================================= */ - function huberLoss_(labels, predictions, weights, delta = 1, reduction = Reduction.SUM_BY_NONZERO_WEIGHTS) { + function huberLoss_(labels, predictions, weights, delta = 1, reduction2 = Reduction.SUM_BY_NONZERO_WEIGHTS) { const $labels = convertToTensor(labels, "labels", "huberLoss"); const $predictions = convertToTensor(predictions, "predictions", "huberLoss"); let $weights = null; @@ -12729,8 +12636,8 @@ Expected: ${expectedFlat}.`); const error = abs(sub($predictions, $labels)); const quadratic = minimum(error, deltaScalar); const linear = sub(error, quadratic); - const losses2 = add2(mul(scalar(0.5), square(quadratic)), mul(deltaScalar, linear)); - return computeWeightedLoss(losses2, $weights, reduction); + const losses8 = add2(mul(scalar(0.5), square(quadratic)), mul(deltaScalar, linear)); + return computeWeightedLoss(losses8, $weights, reduction2); } const huberLoss = op({huberLoss_}); @@ -12751,7 +12658,7 @@ Expected: ${expectedFlat}.`); * limitations under the License. * ============================================================================= */ - function logLoss_(labels, predictions, weights, epsilon = 1e-7, reduction = Reduction.SUM_BY_NONZERO_WEIGHTS) { + function logLoss_(labels, predictions, weights, epsilon2 = 1e-7, reduction2 = Reduction.SUM_BY_NONZERO_WEIGHTS) { const $labels = convertToTensor(labels, "labels", "logLoss"); const $predictions = convertToTensor(predictions, "predictions", "logLoss"); let $weights = null; @@ -12760,11 +12667,11 @@ Expected: ${expectedFlat}.`); } assertShapesMatch($labels.shape, $predictions.shape, "Error in logLoss: "); const one = scalar(1); - const epsilonScalar = scalar(epsilon); - const l1 = neg(mul($labels, log(add2($predictions, epsilonScalar)))); - const l2 = mul(sub(one, $labels), log(add2(sub(one, $predictions), epsilonScalar))); - const losses2 = sub(l1, l2); - return computeWeightedLoss(losses2, $weights, reduction); + const epsilonScalar = scalar(epsilon2); + const l13 = neg(mul($labels, log(add2($predictions, epsilonScalar)))); + const l23 = mul(sub(one, $labels), log(add2(sub(one, $predictions), epsilonScalar))); + const losses8 = sub(l13, l23); + return computeWeightedLoss(losses8, $weights, reduction2); } const logLoss = op({logLoss_}); @@ -12785,7 +12692,7 @@ Expected: ${expectedFlat}.`); * limitations under the License. * ============================================================================= */ - function meanSquaredError_(labels, predictions, weights, reduction = Reduction.SUM_BY_NONZERO_WEIGHTS) { + function meanSquaredError_(labels, predictions, weights, reduction2 = Reduction.SUM_BY_NONZERO_WEIGHTS) { const $labels = convertToTensor(labels, "labels", "meanSquaredError"); const $predictions = convertToTensor(predictions, "predictions", "meanSquaredError"); let $weights = null; @@ -12793,8 +12700,8 @@ Expected: ${expectedFlat}.`); $weights = convertToTensor(weights, "weights", "meanSquaredError"); } assertShapesMatch($labels.shape, $predictions.shape, "Error in meanSquaredError: "); - const losses2 = squaredDifference($labels, $predictions); - return computeWeightedLoss(losses2, $weights, reduction); + const losses8 = squaredDifference($labels, $predictions); + return computeWeightedLoss(losses8, $weights, reduction2); } const meanSquaredError = op({meanSquaredError_}); @@ -12824,7 +12731,7 @@ Expected: ${expectedFlat}.`); const sigmoidOutput = log1p(exp(neg(abs($logits)))); return add2(sub(maxOutput, outputXTarget), sigmoidOutput); } - function sigmoidCrossEntropy_(multiClassLabels, logits, weights, labelSmoothing = 0, reduction = Reduction.SUM_BY_NONZERO_WEIGHTS) { + function sigmoidCrossEntropy_(multiClassLabels, logits, weights, labelSmoothing = 0, reduction2 = Reduction.SUM_BY_NONZERO_WEIGHTS) { let $multiClassLabels = convertToTensor(multiClassLabels, "multiClassLabels", "sigmoidCrossEntropy"); const $logits = convertToTensor(logits, "logits", "sigmoidCrossEntropy"); let $weights = null; @@ -12838,8 +12745,8 @@ Expected: ${expectedFlat}.`); const half = scalar(0.5); $multiClassLabels = add2(mul($multiClassLabels, sub(one, labelSmoothingScalar)), mul(half, labelSmoothingScalar)); } - const losses2 = sigmoidCrossEntropyWithLogits_($multiClassLabels, $logits); - return computeWeightedLoss(losses2, $weights, reduction); + const losses8 = sigmoidCrossEntropyWithLogits_($multiClassLabels, $logits); + return computeWeightedLoss(losses8, $weights, reduction2); } const sigmoidCrossEntropy = op({sigmoidCrossEntropy_}); @@ -12886,7 +12793,7 @@ Expected: ${expectedFlat}.`); }); return customOp(labels, logits); } - function softmaxCrossEntropy_(onehotLabels, logits, weights, labelSmoothing = 0, reduction = Reduction.SUM_BY_NONZERO_WEIGHTS) { + function softmaxCrossEntropy_(onehotLabels, logits, weights, labelSmoothing = 0, reduction2 = Reduction.SUM_BY_NONZERO_WEIGHTS) { let $onehotLabels = convertToTensor(onehotLabels, "onehotLabels", "softmaxCrossEntropy"); const $logits = convertToTensor(logits, "logits", "softmaxCrossEntropy"); let $weights = null; @@ -12900,8 +12807,8 @@ Expected: ${expectedFlat}.`); const numClasses = scalar($onehotLabels.shape[1]); $onehotLabels = add2(mul($onehotLabels, sub(one, labelSmoothingScalar)), div(labelSmoothingScalar, numClasses)); } - const losses2 = softmaxCrossEntropyWithLogits_($onehotLabels, $logits); - return computeWeightedLoss(losses2, $weights, reduction); + const losses8 = softmaxCrossEntropyWithLogits_($onehotLabels, $logits); + return computeWeightedLoss(losses8, $weights, reduction2); } const softmaxCrossEntropy = op({softmaxCrossEntropy_}); @@ -13355,13 +13262,13 @@ Expected: ${expectedFlat}.`); } else if (dtype === "complex64") { values = new Float32Array(byteBuffer); const real6 = new Float32Array(values.length / 2); - const image2 = new Float32Array(values.length / 2); + const image3 = new Float32Array(values.length / 2); for (let i = 0; i < real6.length; i++) { real6[i] = values[i * 2]; - image2[i] = values[i * 2 + 1]; + image3[i] = values[i * 2 + 1]; } const realTensor = tensor5(real6, shape, "float32"); - const imageTensor = tensor5(image2, shape, "float32"); + const imageTensor = tensor5(image3, shape, "float32"); out[name] = complex(realTensor, imageTensor); } else { throw new Error(`Unsupported dtype in weight '${name}': ${dtype}`); @@ -14702,14 +14609,14 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); * ============================================================================= */ class AdadeltaOptimizer extends Optimizer { - constructor(learningRate, rho, epsilon = null) { + constructor(learningRate, rho, epsilon2 = null) { super(); this.learningRate = learningRate; this.rho = rho; - this.epsilon = epsilon; + this.epsilon = epsilon2; this.accumulatedGrads = []; this.accumulatedUpdates = []; - if (epsilon == null) { + if (epsilon2 == null) { this.epsilon = ENGINE.backend.epsilon(); } } @@ -14755,8 +14662,8 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); } } async getWeights() { - const variables = [...this.accumulatedGrads, ...this.accumulatedUpdates]; - return [await this.saveIterations()].concat(variables.map((v) => ({name: v.originalName, tensor: v.variable}))); + const variables5 = [...this.accumulatedGrads, ...this.accumulatedUpdates]; + return [await this.saveIterations()].concat(variables5.map((v) => ({name: v.originalName, tensor: v.variable}))); } async setWeights(weightValues) { weightValues = await this.extractIterations(weightValues); @@ -14878,19 +14785,19 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); * ============================================================================= */ class AdamOptimizer extends Optimizer { - constructor(learningRate, beta1, beta2, epsilon = null) { + constructor(learningRate, beta1, beta2, epsilon2 = null) { super(); this.learningRate = learningRate; this.beta1 = beta1; this.beta2 = beta2; - this.epsilon = epsilon; + this.epsilon = epsilon2; this.accumulatedFirstMoment = []; this.accumulatedSecondMoment = []; tidy(() => { this.accBeta1 = scalar(beta1).variable(); this.accBeta2 = scalar(beta2).variable(); }); - if (epsilon == null) { + if (epsilon2 == null) { this.epsilon = ENGINE.backend.epsilon(); } } @@ -14945,8 +14852,8 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); } } async getWeights() { - const variables = [...this.accumulatedFirstMoment, ...this.accumulatedSecondMoment]; - return [await this.saveIterations()].concat(variables.map((v) => ({name: v.originalName, tensor: v.variable}))); + const variables5 = [...this.accumulatedFirstMoment, ...this.accumulatedSecondMoment]; + return [await this.saveIterations()].concat(variables5.map((v) => ({name: v.originalName, tensor: v.variable}))); } async setWeights(weightValues) { weightValues = await this.extractIterations(weightValues); @@ -14998,12 +14905,12 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); * ============================================================================= */ class AdamaxOptimizer extends Optimizer { - constructor(learningRate, beta1, beta2, epsilon = null, decay = 0) { + constructor(learningRate, beta1, beta2, epsilon2 = null, decay = 0) { super(); this.learningRate = learningRate; this.beta1 = beta1; this.beta2 = beta2; - this.epsilon = epsilon; + this.epsilon = epsilon2; this.decay = decay; this.accumulatedFirstMoment = []; this.accumulatedWeightedInfNorm = []; @@ -15011,7 +14918,7 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); this.iteration = scalar(0).variable(); this.accBeta1 = scalar(beta1).variable(); }); - if (epsilon == null) { + if (epsilon2 == null) { this.epsilon = ENGINE.backend.epsilon(); } } @@ -15259,17 +15166,17 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); * ============================================================================= */ class RMSPropOptimizer extends Optimizer { - constructor(learningRate, decay = 0.9, momentum = 0, epsilon = null, centered = false) { + constructor(learningRate, decay = 0.9, momentum = 0, epsilon2 = null, centered = false) { super(); this.learningRate = learningRate; this.decay = decay; this.momentum = momentum; - this.epsilon = epsilon; + this.epsilon = epsilon2; this.accumulatedMeanSquares = []; this.accumulatedMoments = []; this.accumulatedMeanGrads = []; this.centered = centered; - if (epsilon == null) { + if (epsilon2 == null) { this.epsilon = ENGINE.backend.epsilon(); } if (learningRate == null) { @@ -15341,11 +15248,11 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); } } async getWeights() { - const variables = [...this.accumulatedMeanSquares, ...this.accumulatedMoments]; + const variables5 = [...this.accumulatedMeanSquares, ...this.accumulatedMoments]; if (this.centered) { - variables.push(...this.accumulatedMeanGrads); + variables5.push(...this.accumulatedMeanGrads); } - return [await this.saveIterations()].concat(variables.map((v) => ({name: v.originalName, tensor: v.variable}))); + return [await this.saveIterations()].concat(variables5.map((v) => ({name: v.originalName, tensor: v.variable}))); } async setWeights(weightValues) { weightValues = await this.extractIterations(weightValues); @@ -15406,17 +15313,17 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); static momentum(learningRate, momentum, useNesterov = false) { return new MomentumOptimizer(learningRate, momentum, useNesterov); } - static rmsprop(learningRate, decay = 0.9, momentum = 0, epsilon = null, centered = false) { - return new RMSPropOptimizer(learningRate, decay, momentum, epsilon, centered); + static rmsprop(learningRate, decay = 0.9, momentum = 0, epsilon2 = null, centered = false) { + return new RMSPropOptimizer(learningRate, decay, momentum, epsilon2, centered); } - static adam(learningRate = 1e-3, beta1 = 0.9, beta2 = 0.999, epsilon = null) { - return new AdamOptimizer(learningRate, beta1, beta2, epsilon); + static adam(learningRate = 1e-3, beta1 = 0.9, beta2 = 0.999, epsilon2 = null) { + return new AdamOptimizer(learningRate, beta1, beta2, epsilon2); } - static adadelta(learningRate = 1e-3, rho = 0.95, epsilon = null) { - return new AdadeltaOptimizer(learningRate, rho, epsilon); + static adadelta(learningRate = 1e-3, rho = 0.95, epsilon2 = null) { + return new AdadeltaOptimizer(learningRate, rho, epsilon2); } - static adamax(learningRate = 2e-3, beta1 = 0.9, beta2 = 0.999, epsilon = null, decay = 0) { - return new AdamaxOptimizer(learningRate, beta1, beta2, epsilon, decay); + static adamax(learningRate = 2e-3, beta1 = 0.9, beta2 = 0.999, epsilon2 = null, decay = 0) { + return new AdamaxOptimizer(learningRate, beta1, beta2, epsilon2, decay); } static adagrad(learningRate, initialAccumulatorValue = 0.1) { return new AdagradOptimizer(learningRate, initialAccumulatorValue); @@ -16108,7 +16015,7 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); batchMatMul(a, b, transposeA, transposeB) { return notYetImplemented("batchMatMul"); } - fusedBatchMatMul({a, b, transposeA, transposeB, bias, activation, preluActivationWeights}) { + fusedBatchMatMul({a, b, transposeA, transposeB, bias, activation: activation2, preluActivationWeights}) { return notYetImplemented("fusedBatchMatMul"); } slice(x, begin, size) { @@ -16294,7 +16201,7 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); int(x) { return notYetImplemented("int"); } - clip(x, min5, max7) { + clip(x, min6, max8) { return notYetImplemented("clip"); } abs(x) { @@ -16354,7 +16261,7 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); step(x, alpha) { return notYetImplemented("step"); } - fusedConv2d({input, filter, convInfo, bias, activation, preluActivationWeights}) { + fusedConv2d({input: input2, filter, convInfo, bias, activation: activation2, preluActivationWeights}) { return notYetImplemented("fusedConv2d"); } conv2d(x, filter, convInfo) { @@ -16366,10 +16273,10 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); conv2dDerFilter(x, dY, convInfo) { return notYetImplemented("conv2dDerFilter"); } - fusedDepthwiseConv2D({input, filter, convInfo, bias, activation, preluActivationWeights}) { + fusedDepthwiseConv2D({input: input2, filter, convInfo, bias, activation: activation2, preluActivationWeights}) { return notYetImplemented("fusedDepthwiseConv2D"); } - depthwiseConv2D(input, filter, convInfo) { + depthwiseConv2D(input2, filter, convInfo) { return notYetImplemented("depthwiseConv2D"); } depthwiseConv2DDerInput(dy, filter, convInfo) { @@ -16483,13 +16390,13 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); complex(real6, imag6) { return notYetImplemented("complex"); } - real(input) { + real(input2) { return notYetImplemented("real"); } - imag(input) { + imag(input2) { return notYetImplemented("imag"); } - cropAndResize(image2, boxes, boxIndex, cropSize, method, extrapolationValue) { + cropAndResize(image3, boxes, boxIndex, cropSize, method, extrapolationValue) { return notYetImplemented("cropAndResize"); } depthToSpace(x, blockSize, dataFormat) { @@ -16908,9 +16815,9 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); * limitations under the License. * ============================================================================= */ - function avgPool3dBackprop_(dy, input, filterSize, strides, dilations = [1, 1, 1], pad8, dimRoundingMode) { + function avgPool3dBackprop_(dy, input2, filterSize, strides, dilations = [1, 1, 1], pad8, dimRoundingMode) { const $dy = convertToTensor(dy, "dy", "avgPool3dBackprop"); - const $input = convertToTensor(input, "input", "avgPool3dBackprop"); + const $input = convertToTensor(input2, "input", "avgPool3dBackprop"); let dy5D = $dy; let input5D = $input; let reshapedTo5D = false; @@ -16992,9 +16899,9 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); * limitations under the License. * ============================================================================= */ - function avgPoolBackprop_(dy, input, filterSize, strides, pad8) { + function avgPoolBackprop_(dy, input2, filterSize, strides, pad8) { const $dy = convertToTensor(dy, "dy", "avgPoolBackprop"); - const $input = convertToTensor(input, "input", "avgPoolBackprop"); + const $input = convertToTensor(input2, "input", "avgPoolBackprop"); assert($input.rank === $dy.rank, () => `Rank of input (${$input.rank}) does not match rank of dy (${$dy.rank})`); let input4D = $input; let dy4D = $dy; @@ -18131,8 +18038,8 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); return { logits: () => { const keepDims = true; - const softmax3 = exp(value); - return sub(dy, mul(sum2(dy, axis, keepDims), softmax3)); + const softmax4 = exp(value); + return sub(dy, mul(sum2(dy, axis, keepDims), softmax4)); } }; } @@ -18310,9 +18217,9 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); * limitations under the License. * ============================================================================= */ - function maxPool3dBackprop_(dy, input, output, filterSize, strides, dilations = [1, 1, 1], pad8, dimRoundingMode) { + function maxPool3dBackprop_(dy, input2, output, filterSize, strides, dilations = [1, 1, 1], pad8, dimRoundingMode) { const $dy = convertToTensor(dy, "dy", "maxPool3dBackprop"); - const $input = convertToTensor(input, "input", "maxPool3dBackprop"); + const $input = convertToTensor(input2, "input", "maxPool3dBackprop"); const $output = convertToTensor(output, "output", "maxPool3dBackprop"); let dy5D = $dy; let input5D = $input; @@ -18405,9 +18312,9 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); * limitations under the License. * ============================================================================= */ - function maxPoolBackprop_(dy, input, output, filterSize, strides, pad8, dimRoundingMode) { + function maxPoolBackprop_(dy, input2, output, filterSize, strides, pad8, dimRoundingMode) { const $dy = convertToTensor(dy, "dy", "maxPoolBackprop"); - const $input = convertToTensor(input, "input", "maxPoolBackprop"); + const $input = convertToTensor(input2, "input", "maxPoolBackprop"); const $output = convertToTensor(output, "output", "maxPoolBackprop"); assert($input.rank === $dy.rank, () => `Rank of input (${$input.rank}) does not match rank of dy (${$dy.rank})`); assert($dy.rank === 4, () => `Error in maxPoolBackprop: dy must be rank 4 but got rank ${$dy.rank}.`); @@ -19892,8 +19799,35278 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); } // node_modules/@tensorflow/tfjs-core/dist/index.js + /** + * @license + * Copyright 2017 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + + // node_modules/@tensorflow/tfjs-layers/dist/backend/common.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + let _epsilon; + function epsilon() { + if (_epsilon == null) { + _epsilon = backend().epsilon(); + } + return _epsilon; + } + function imageDataFormat() { + return "channelsLast"; + } + + // node_modules/@tensorflow/tfjs-layers/dist/errors.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + class AttributeError extends Error { + constructor(message) { + super(message); + Object.setPrototypeOf(this, AttributeError.prototype); + } + } + class RuntimeError extends Error { + constructor(message) { + super(message); + Object.setPrototypeOf(this, RuntimeError.prototype); + } + } + class ValueError extends Error { + constructor(message) { + super(message); + Object.setPrototypeOf(this, ValueError.prototype); + } + } + class NotImplementedError extends Error { + constructor(message) { + super(message); + Object.setPrototypeOf(this, NotImplementedError.prototype); + } + } + class AssertionError extends Error { + constructor(message) { + super(message); + Object.setPrototypeOf(this, AssertionError.prototype); + } + } + class IndexError extends Error { + constructor(message) { + super(message); + Object.setPrototypeOf(this, IndexError.prototype); + } + } + + // node_modules/@tensorflow/tfjs-layers/dist/utils/generic_utils.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + function pyListRepeat(value, numValues) { + if (Array.isArray(value)) { + let newArray = []; + for (let i = 0; i < numValues; i++) { + newArray = newArray.concat(value); + } + return newArray; + } else { + const newArray = new Array(numValues); + newArray.fill(value); + return newArray; + } + } + function assert2(val, message) { + if (!val) { + throw new AssertionError(message); + } + } + function count(array2, refernce) { + let counter = 0; + for (const item of array2) { + if (item === refernce) { + counter++; + } + } + return counter; + } + function singletonOrArray(xs) { + if (xs.length === 1) { + return xs[0]; + } + return xs; + } + function toList(x) { + if (Array.isArray(x)) { + return x; + } + return [x]; + } + function toSnakeCase(name) { + const intermediate = name.replace(/(.)([A-Z][a-z0-9]+)/g, "$1_$2"); + const insecure = intermediate.replace(/([a-z])([A-Z])/g, "$1_$2").toLowerCase(); + if (insecure[0] !== "_") { + return insecure; + } + return "private" + insecure; + } + function toCamelCase(identifier) { + if (identifier.length <= 1) { + return identifier; + } + if (identifier.indexOf("_") === -1) { + return identifier; + } + return identifier.replace(/[_]+(\w|$)/g, (m, p1) => p1.toUpperCase()); + } + let _GLOBAL_CUSTOM_OBJECTS = {}; + function serializeKerasObject(instance) { + if (instance === null || instance === void 0) { + return null; + } + const dict = {}; + dict["className"] = instance.getClassName(); + dict["config"] = instance.getConfig(); + return dict; + } + function convertNDArrayScalarsInConfig(config2) { + if (config2 == null || typeof config2 !== "object") { + return; + } else if (Array.isArray(config2)) { + config2.forEach((configItem) => convertNDArrayScalarsInConfig(configItem)); + } else { + const fields = Object.keys(config2); + for (const field of fields) { + const value = config2[field]; + if (value != null && typeof value === "object") { + if (!Array.isArray(value) && value["type"] === "ndarray" && typeof value["value"] === "number") { + config2[field] = value["value"]; + } else { + convertNDArrayScalarsInConfig(value); + } + } + } + } + } + function deserializeKerasObject(identifier, moduleObjects = {}, customObjects = {}, printableModuleName = "object", fastWeightInit = false) { + if (typeof identifier === "string") { + const functionName = identifier; + let fn; + if (functionName in customObjects) { + fn = customObjects[functionName]; + } else if (functionName in _GLOBAL_CUSTOM_OBJECTS) { + fn = _GLOBAL_CUSTOM_OBJECTS[functionName]; + } else { + fn = moduleObjects[functionName]; + if (fn == null) { + throw new ValueError(`Unknown ${printableModuleName}: ${identifier}. This may be due to one of the following reasons: +1. The ${printableModuleName} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code. +2. The custom ${printableModuleName} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`); + } + } + return fn; + } else { + const config2 = identifier; + if (config2["className"] == null || config2["config"] == null) { + throw new ValueError(`${printableModuleName}: Improper config format: ${JSON.stringify(config2)}. +'className' and 'config' must set.`); + } + const className = config2["className"]; + let cls, fromConfig; + if (className in customObjects) { + [cls, fromConfig] = customObjects[className]; + } else if (className in _GLOBAL_CUSTOM_OBJECTS) { + [cls, fromConfig] = _GLOBAL_CUSTOM_OBJECTS["className"]; + } else if (className in moduleObjects) { + [cls, fromConfig] = moduleObjects[className]; + } + if (cls == null) { + throw new ValueError(`Unknown ${printableModuleName}: ${className}. This may be due to one of the following reasons: +1. The ${printableModuleName} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code. +2. The custom ${printableModuleName} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`); + } + if (fromConfig != null) { + const customObjectsCombined = {}; + for (const key of Object.keys(_GLOBAL_CUSTOM_OBJECTS)) { + customObjectsCombined[key] = _GLOBAL_CUSTOM_OBJECTS[key]; + } + for (const key of Object.keys(customObjects)) { + customObjectsCombined[key] = customObjects[key]; + } + const nestedConfig = config2["config"]; + nestedConfig["customObjects"] = customObjectsCombined; + const backupCustomObjects = Object.assign({}, _GLOBAL_CUSTOM_OBJECTS); + for (const key of Object.keys(customObjects)) { + _GLOBAL_CUSTOM_OBJECTS[key] = customObjects[key]; + } + convertNDArrayScalarsInConfig(config2["config"]); + const returnObj = fromConfig(cls, config2["config"], customObjects, fastWeightInit); + _GLOBAL_CUSTOM_OBJECTS = Object.assign({}, backupCustomObjects); + return returnObj; + } else { + const backupCustomObjects = Object.assign({}, _GLOBAL_CUSTOM_OBJECTS); + for (const key of Object.keys(customObjects)) { + _GLOBAL_CUSTOM_OBJECTS[key] = customObjects[key]; + } + const returnObj = new cls(config2["config"]); + _GLOBAL_CUSTOM_OBJECTS = Object.assign({}, backupCustomObjects); + return returnObj; + } + } + } + function numberCompare(a, b) { + return a < b ? -1 : a > b ? 1 : 0; + } + function reverseNumberCompare(a, b) { + return -1 * numberCompare(a, b); + } + function unique(xs) { + if (xs == null) { + return xs; + } + const out = []; + for (const x of xs) { + if (out.indexOf(x) === -1) { + out.push(x); + } + } + return out; + } + function isObjectEmpty(obj) { + if (obj == null) { + throw new ValueError(`Invalid value in obj: ${JSON.stringify(obj)}`); + } + for (const key in obj) { + if (obj.hasOwnProperty(key)) { + return false; + } + } + return true; + } + function checkStringTypeUnionValue(values, label, value) { + if (value == null) { + return; + } + if (values.indexOf(value) < 0) { + throw new ValueError(`${value} is not a valid ${label}. Valid values are ${values} or null/undefined.`); + } + } + function checkArrayTypeAndLength(x, expectedType, minLength = 0, maxLength = Infinity) { + assert2(minLength >= 0); + assert2(maxLength >= minLength); + return Array.isArray(x) && x.length >= minLength && x.length <= maxLength && x.every((e) => typeof e === expectedType); + } + function assertPositiveInteger(value, name) { + if (Array.isArray(value)) { + util_exports.assert(value.length > 0, () => `${name} is unexpectedly an empty array.`); + value.forEach((v, i) => assertPositiveInteger(v, `element ${i + 1} of ${name}`)); + } else { + util_exports.assert(Number.isInteger(value) && value > 0, () => `Expected ${name} to be a positive integer, but got ${formatAsFriendlyString(value)}.`); + } + } + function formatAsFriendlyString(value) { + if (value === null) { + return "null"; + } else if (Array.isArray(value)) { + return "[" + value.map((v) => formatAsFriendlyString(v)).join(",") + "]"; + } else if (typeof value === "string") { + return `"${value}"`; + } else { + return `${value}`; + } + } + function debounce(f, waitMs) { + let lastTime = util_exports.now(); + let lastResult; + const f2 = (...args) => { + const now2 = util_exports.now(); + if (now2 - lastTime < waitMs) { + return lastResult; + } + lastTime = now2; + lastResult = f(...args); + return lastResult; + }; + return f2; + } + function mapActivationToFusedKernel(activationName) { + if (activationName === "relu") { + return "relu"; + } + if (activationName === "linear") { + return "linear"; + } + if (activationName === "elu") { + return "elu"; + } + return null; + } + + // node_modules/@tensorflow/tfjs-layers/dist/constraints.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + function calcL2Norms(w, axis) { + return tidy(() => sqrt(sum2(mul(w, w), axis, true))); + } + class Constraint extends serialization_exports.Serializable { + getConfig() { + return {}; + } + } + class MaxNorm extends Constraint { + constructor(args) { + super(); + this.defaultMaxValue = 2; + this.defaultAxis = 0; + this.maxValue = args.maxValue != null ? args.maxValue : this.defaultMaxValue; + this.axis = args.axis != null ? args.axis : this.defaultAxis; + } + apply(w) { + return tidy(() => { + const norms = calcL2Norms(w, this.axis); + const desired = clipByValue(norms, 0, this.maxValue); + return mul(w, div(desired, add2(epsilon(), norms))); + }); + } + getConfig() { + return {maxValue: this.maxValue, axis: this.axis}; + } + } + MaxNorm.className = "MaxNorm"; + serialization_exports.registerClass(MaxNorm); + class UnitNorm extends Constraint { + constructor(args) { + super(); + this.defaultAxis = 0; + this.axis = args.axis != null ? args.axis : this.defaultAxis; + } + apply(w) { + return tidy(() => div(w, add2(epsilon(), calcL2Norms(w, this.axis)))); + } + getConfig() { + return {axis: this.axis}; + } + } + UnitNorm.className = "UnitNorm"; + serialization_exports.registerClass(UnitNorm); + class NonNeg extends Constraint { + apply(w) { + return relu(w); + } + } + NonNeg.className = "NonNeg"; + serialization_exports.registerClass(NonNeg); + class MinMaxNorm extends Constraint { + constructor(args) { + super(); + this.defaultMinValue = 0; + this.defaultMaxValue = 1; + this.defaultRate = 1; + this.defaultAxis = 0; + this.minValue = args.minValue != null ? args.minValue : this.defaultMinValue; + this.maxValue = args.maxValue != null ? args.maxValue : this.defaultMaxValue; + this.rate = args.rate != null ? args.rate : this.defaultRate; + this.axis = args.axis != null ? args.axis : this.defaultAxis; + } + apply(w) { + return tidy(() => { + const norms = calcL2Norms(w, this.axis); + const desired = add2(mul(this.rate, clipByValue(norms, this.minValue, this.maxValue)), mul(1 - this.rate, norms)); + return mul(w, div(desired, add2(epsilon(), norms))); + }); + } + getConfig() { + return { + minValue: this.minValue, + maxValue: this.maxValue, + rate: this.rate, + axis: this.axis + }; + } + } + MinMaxNorm.className = "MinMaxNorm"; + serialization_exports.registerClass(MinMaxNorm); + const CONSTRAINT_IDENTIFIER_REGISTRY_SYMBOL_MAP = { + maxNorm: "MaxNorm", + minMaxNorm: "MinMaxNorm", + nonNeg: "NonNeg", + unitNorm: "UnitNorm" + }; + function serializeConstraint(constraint) { + return serializeKerasObject(constraint); + } + function deserializeConstraint(config2, customObjects = {}) { + return deserializeKerasObject(config2, serialization_exports.SerializationMap.getMap().classNameMap, customObjects, "constraint"); + } + function getConstraint(identifier) { + if (identifier == null) { + return null; + } + if (typeof identifier === "string") { + const className = identifier in CONSTRAINT_IDENTIFIER_REGISTRY_SYMBOL_MAP ? CONSTRAINT_IDENTIFIER_REGISTRY_SYMBOL_MAP[identifier] : identifier; + const config2 = {className, config: {}}; + return deserializeConstraint(config2); + } else if (identifier instanceof Constraint) { + return identifier; + } else { + return deserializeConstraint(identifier); + } + } + + // node_modules/@tensorflow/tfjs-layers/dist/exports_constraints.js + const exports_constraints_exports = {}; + __export(exports_constraints_exports, { + maxNorm: () => maxNorm, + minMaxNorm: () => minMaxNorm, + nonNeg: () => nonNeg, + unitNorm: () => unitNorm + }); + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + function maxNorm(args) { + return new MaxNorm(args); + } + function unitNorm(args) { + return new UnitNorm(args); + } + function nonNeg() { + return new NonNeg(); + } + function minMaxNorm(config2) { + return new MinMaxNorm(config2); + } + + // node_modules/@tensorflow/tfjs-layers/dist/keras_format/common.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + const VALID_DATA_FORMAT_VALUES = ["channelsFirst", "channelsLast"]; + const VALID_PADDING_MODE_VALUES = ["valid", "same", "causal"]; + const VALID_POOL_MODE_VALUES = ["max", "avg"]; + const VALID_BIDIRECTIONAL_MERGE_MODES = ["sum", "mul", "concat", "ave"]; + + // node_modules/@tensorflow/tfjs-layers/dist/common.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + const nameMap = new Map(); + function checkDataFormat(value) { + checkStringTypeUnionValue(VALID_DATA_FORMAT_VALUES, "DataFormat", value); + } + function checkPaddingMode(value) { + checkStringTypeUnionValue(VALID_PADDING_MODE_VALUES, "PaddingMode", value); + } + function checkPoolMode(value) { + checkStringTypeUnionValue(VALID_POOL_MODE_VALUES, "PoolMode", value); + } + const _nameScopeStack = []; + const _nameScopeDivider = "/"; + function nameScope(name, fn) { + _nameScopeStack.push(name); + try { + const val = fn(); + _nameScopeStack.pop(); + return val; + } catch (e) { + _nameScopeStack.pop(); + throw e; + } + } + function currentNameScopePrefix() { + if (_nameScopeStack.length === 0) { + return ""; + } else { + return _nameScopeStack.join(_nameScopeDivider) + _nameScopeDivider; + } + } + function getScopedTensorName(tensorName) { + if (!isValidTensorName(tensorName)) { + throw new Error("Not a valid tensor name: '" + tensorName + "'"); + } + return currentNameScopePrefix() + tensorName; + } + function getUniqueTensorName(scopedName) { + if (!isValidTensorName(scopedName)) { + throw new Error("Not a valid tensor name: '" + scopedName + "'"); + } + if (!nameMap.has(scopedName)) { + nameMap.set(scopedName, 0); + } + const index = nameMap.get(scopedName); + nameMap.set(scopedName, nameMap.get(scopedName) + 1); + if (index > 0) { + const result = `${scopedName}_${index}`; + nameMap.set(result, 1); + return result; + } else { + return scopedName; + } + } + const tensorNameRegex = new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/); + function isValidTensorName(name) { + return !!name.match(tensorNameRegex); + } + + // node_modules/@tensorflow/tfjs-layers/dist/utils/math_utils.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + function isInteger(x) { + return x === parseInt(x.toString(), 10); + } + function arrayProd(array2, begin, end) { + if (begin == null) { + begin = 0; + } + if (end == null) { + end = array2.length; + } + let prod3 = 1; + for (let i = begin; i < end; ++i) { + prod3 *= array2[i]; + } + return prod3; + } + function toArray1D(array2) { + array2 = Array.isArray(array2) ? new Float32Array(array2) : array2; + return tensor1d(array2); + } + function min5(array2) { + return min(toArray1D(array2)).dataSync()[0]; + } + function max7(array2) { + return max(toArray1D(array2)).dataSync()[0]; + } + function range4(begin, end) { + if (end < begin) { + throw new ValueError(`end (${end}) < begin (${begin}) is forbidden.`); + } + const out = []; + for (let i = begin; i < end; ++i) { + out.push(i); + } + return out; + } + + // node_modules/@tensorflow/tfjs-layers/dist/backend/tfjs_backend.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + function cast46(x, dtype) { + return x.asType(dtype); + } + function expandDims2(x, axis = -1) { + const outShape = x.shape.slice(); + if (axis < 0) { + axis = outShape.length + axis + 1; + } + outShape.splice(axis, 0, 1); + return x.reshape(outShape); + } + function repeat(x, n) { + return tidy(() => { + if (x.shape.length !== 2) { + throw new ValueError(`repeat() expects a rank-2 tensor, but received a rank-${x.shape.length} tensor.`); + } + const y = expandDims2(x, 1); + return tile6(y, [1, n, 1]); + }); + } + function flatten2(x) { + const newShape = [arrayProd(x.shape)]; + return x.reshape(newShape); + } + function batchFlatten(x) { + if (x.rank <= 1) { + throw new ValueError(`batchFlatten requires a minimum rank of 2. Got rank: ${x.rank}.`); + } + const newShape = [x.shape[0], arrayProd(x.shape, 1)]; + return x.reshape(newShape); + } + function sliceAlongFirstAxis(array2, start, size) { + return tidy(() => { + switch (array2.rank) { + case 1: + return slice1d(array2, start, size); + case 2: + return slice2d(array2, [start, 0], [size, array2.shape[1]]); + case 3: + return slice3d(array2, [start, 0, 0], [size, array2.shape[1], array2.shape[2]]); + case 4: + return slice4d(array2, [start, 0, 0, 0], [size, array2.shape[1], array2.shape[2], array2.shape[3]]); + case 5: + return slice(array2, [start, 0, 0, 0, 0], [ + size, + array2.shape[1], + array2.shape[2], + array2.shape[3], + array2.shape[4] + ]); + case 6: + return slice(array2, [start, 0, 0, 0, 0, 0], [ + size, + array2.shape[1], + array2.shape[2], + array2.shape[3], + array2.shape[4], + array2.shape[5] + ]); + default: + throw new ValueError(`sliceAlongFirstAxis() received an unsupported tensor rank: ${array2.rank}`); + } + }); + } + function sliceAlongLastAxis(array2, start, size) { + return tidy(() => { + switch (array2.rank) { + case 1: + return slice1d(array2, start, size); + case 2: + return slice2d(array2, [0, start], [array2.shape[0], size]); + case 3: + return slice3d(array2, [0, 0, start], [array2.shape[0], array2.shape[1], size]); + case 4: + return slice4d(array2, [0, 0, 0, start], [array2.shape[0], array2.shape[1], array2.shape[2], size]); + default: + throw new ValueError(`sliceAlongLastAxis() received an unsupported tensor rank: ${array2.rank}`); + } + }); + } + function sliceAlongAxis(array2, start, size, axis) { + return tidy(() => { + switch (array2.rank) { + case 1: + return slice1d(array2, start, size); + case 2: + switch (axis) { + case 1: + return sliceAlongFirstAxis(array2, start, size); + case 2: + return sliceAlongLastAxis(array2, start, size); + default: + throw new ValueError(`The axis is not within the rank of the tensor ${axis}`); + } + case 3: + switch (axis) { + case 1: + return sliceAlongFirstAxis(array2, start, size); + case 2: + return slice3d(array2, [0, start, 0], [array2.shape[0], size, array2.shape[2]]); + case 3: + return sliceAlongLastAxis(array2, start, size); + default: + throw new ValueError(`The axis is not within the rank of the tensor ${axis}`); + } + case 4: + switch (axis) { + case 1: + return sliceAlongFirstAxis(array2, start, size); + case 2: + return slice4d(array2, [0, start, 0, 0], [array2.shape[0], size, array2.shape[2], array2.shape[3]]); + case 3: + return slice4d(array2, [0, 0, start, 0], [array2.shape[0], array2.shape[1], size, array2.shape[3]]); + case 4: + return sliceAlongLastAxis(array2, start, size); + default: + throw new ValueError(`The axis is not within the rank of the tensor ${axis}`); + } + default: + throw new ValueError(`sliceAlongLastAxis() received an unsupported tensor rank: ${array2.rank}`); + } + }); + } + function concatenate(tensors, axis = -1) { + let rank; + if (axis < 0) { + rank = tensors[0].rank; + if (rank !== 0) { + axis = rank; + } else { + axis = 0; + } + } + if (axis === tensors[0].rank) { + axis = -1; + } + return concat(tensors, axis); + } + function concatAlongFirstAxis(a, b) { + switch (a.rank) { + case 1: + return concat1d([a, b]); + case 2: + return concat2d([a, b], 0); + case 3: + return concat3d([a, b], 0); + case 4: + return concat4d([a, b], 0); + default: + throw new ValueError(`concatAlongFirstAxis() received an unsupported tensor rank: ${a.rank}`); + } + } + function tile6(x, n) { + if (!Array.isArray(n)) { + n = [n]; + } + if (x.rank !== n.length) { + throw new ValueError(`The length of input n (${n.length}) does not match the number of dimensions in input x (${x.rank})`); + } + return tile(x, n); + } + function randomNormal2(shape, mean5 = 0, stddev = 1, dtype, seed) { + return randomNormal(shape, mean5, stddev, dtype, seed); + } + function dot3(a, b, activation2, bias) { + if (a.rank < 2 || b.rank < 2) { + throw new NotImplementedError(`dot requires both inputs to be rank >= 2 but got x shape = ${a.shape} and y shape = ${b.shape}`); + } + if (b.rank >= 3) { + const xLastDim = a.shape.slice(-1)[0]; + const ySecondLastDim = b.shape.slice(-2)[0]; + if (xLastDim !== ySecondLastDim) { + throw new NotImplementedError(`If rank y >= 3, then the second last dim of y must equal the last dim of x but got x shape = ${a.shape} and y shape = ${b.shape}`); + } + } + if (a.rank === 2 && b.rank === 2) { + const transposeA = false; + const transposeB = false; + return fused_ops_exports.matMul({ + a, + b, + transposeA, + transposeB, + bias: bias ? reshapeBias(a.rank, bias, imageDataFormat()) : null, + activation: activation2 + }); + } else { + const aFirstDims = a.shape.slice(); + const aLastDim = aFirstDims.pop(); + a = a.reshape([-1, aLastDim]); + const bShape = b.shape.slice(); + const bLastDim = bShape.pop(); + const ySecondLastDim = bShape.pop(); + const yOtherDims = [...bShape, bLastDim]; + const perm = Array.from({length: b.rank}, (_, i) => { + if (i === 0) { + return b.rank - 2; + } else if (i <= b.rank - 2) { + return i - 1; + } + return i; + }); + b = b.transpose(perm).reshape([ySecondLastDim, -1]); + const outputShape = [...aFirstDims, ...yOtherDims]; + const transposeA = false; + const transposeB = false; + return fused_ops_exports.matMul({ + a, + b, + transposeA, + transposeB, + bias: bias ? reshapeBias(a.rank, bias, imageDataFormat()) : null, + activation: activation2 + }).reshape(outputShape); + } + } + function gather5(reference, indices, axis) { + return tidy(() => { + if (Array.isArray(indices)) { + indices = tensor1d(indices, "int32"); + } else { + indices = indices.toInt(); + } + return gather(reference, indices, axis); + }); + } + function square23(x) { + return mul(x, x); + } + function reshapeBias(xRank, bias, dataFormat) { + const biasShape = bias.shape; + if (bias.rank !== 1 && bias.rank !== xRank) { + throw new ValueError(`Unexpected bias dimensions: ${bias.rank}; expected it to be 1 or ${xRank}`); + } + if (xRank === 5) { + if (dataFormat === "channelsFirst") { + if (biasShape.length === 1) { + return bias.reshape([1, biasShape[0], 1, 1, 1]); + } else { + return bias.reshape([1, biasShape[3], biasShape[0], biasShape[1], biasShape[2]]); + } + } else if (dataFormat === "channelsLast") { + if (biasShape.length === 1) { + return bias.reshape([1, 1, 1, 1, biasShape[0]]); + } else { + return bias.reshape([1].concat(biasShape)); + } + } + } else if (xRank === 4) { + if (dataFormat === "channelsFirst") { + if (biasShape.length === 1) { + return bias.reshape([1, biasShape[0], 1, 1]); + } else { + return bias.reshape([1, biasShape[2], biasShape[0], biasShape[1]]); + } + } else if (dataFormat === "channelsLast") { + if (biasShape.length === 1) { + return bias.reshape([1, 1, 1, biasShape[0]]); + } else { + return bias.reshape([1].concat(biasShape)); + } + } + } else if (xRank === 3) { + if (dataFormat === "channelsFirst") { + if (biasShape.length === 1) { + return bias.reshape([1, biasShape[0], 1]); + } else { + return bias.reshape([1, biasShape[1], biasShape[0]]); + } + } else if (dataFormat === "channelsLast") { + if (biasShape.length === 1) { + return bias.reshape([1, 1, biasShape[0]]); + } else { + return bias.reshape([1].concat(biasShape)); + } + } + } else if (xRank < 3) { + return bias; + } + throw new ValueError(`Unsupported input rank by biasAdd: ${bias.rank}`); + } + function biasAdd(x, bias, dataFormat) { + return tidy(() => { + if (dataFormat == null) { + dataFormat = imageDataFormat(); + } + checkDataFormat(dataFormat); + return x.add(reshapeBias(x.rank, bias, dataFormat)); + }); + } + function elu4(x, alpha = 1) { + if (alpha !== 1) { + throw new NotImplementedError(`Support for alpha values other than 1 (${alpha}) is not implemented yet.`); + } + return elu(x); + } + function softsign(x) { + return tidy(() => div(x, abs(x).add(1))); + } + function dropout2(x, level, noiseShape, seed) { + return tidy(() => dropout(x, level, noiseShape, seed)); + } + function hardSigmoid(x) { + return tidy(() => { + const y = add2(0.5, mul(0.2, x)); + return clipByValue(y, 0, 1); + }); + } + function inTrainPhase(x, alt, training5 = false) { + return training5 ? x() : alt(); + } + + // node_modules/@tensorflow/tfjs-layers/dist/keras_format/initializer_config.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + const VALID_FAN_MODE_VALUES = ["fanIn", "fanOut", "fanAvg"]; + const VALID_DISTRIBUTION_VALUES = ["normal", "uniform", "truncatedNormal"]; + + // node_modules/@tensorflow/tfjs-layers/dist/initializers.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + function checkFanMode(value) { + checkStringTypeUnionValue(VALID_FAN_MODE_VALUES, "FanMode", value); + } + function checkDistribution(value) { + checkStringTypeUnionValue(VALID_DISTRIBUTION_VALUES, "Distribution", value); + } + class Initializer extends serialization_exports.Serializable { + fromConfigUsesCustomObjects() { + return false; + } + getConfig() { + return {}; + } + } + class Zeros extends Initializer { + apply(shape, dtype) { + return zeros(shape, dtype); + } + } + Zeros.className = "Zeros"; + serialization_exports.registerClass(Zeros); + class Ones extends Initializer { + apply(shape, dtype) { + return ones2(shape, dtype); + } + } + Ones.className = "Ones"; + serialization_exports.registerClass(Ones); + class Constant extends Initializer { + constructor(args) { + super(); + if (typeof args !== "object") { + throw new ValueError(`Expected argument of type ConstantConfig but got ${args}`); + } + if (args.value === void 0) { + throw new ValueError(`config must have value set but got ${args}`); + } + this.value = args.value; + } + apply(shape, dtype) { + return tidy(() => mul(scalar(this.value), ones2(shape, dtype))); + } + getConfig() { + return { + value: this.value + }; + } + } + Constant.className = "Constant"; + serialization_exports.registerClass(Constant); + class RandomUniform extends Initializer { + constructor(args) { + super(); + this.DEFAULT_MINVAL = -0.05; + this.DEFAULT_MAXVAL = 0.05; + this.minval = args.minval || this.DEFAULT_MINVAL; + this.maxval = args.maxval || this.DEFAULT_MAXVAL; + this.seed = args.seed; + } + apply(shape, dtype) { + return randomUniform(shape, this.minval, this.maxval, dtype); + } + getConfig() { + return {minval: this.minval, maxval: this.maxval, seed: this.seed}; + } + } + RandomUniform.className = "RandomUniform"; + serialization_exports.registerClass(RandomUniform); + class RandomNormal extends Initializer { + constructor(args) { + super(); + this.DEFAULT_MEAN = 0; + this.DEFAULT_STDDEV = 0.05; + this.mean = args.mean || this.DEFAULT_MEAN; + this.stddev = args.stddev || this.DEFAULT_STDDEV; + this.seed = args.seed; + } + apply(shape, dtype) { + dtype = dtype || "float32"; + if (dtype !== "float32" && dtype !== "int32") { + throw new NotImplementedError(`randomNormal does not support dType ${dtype}.`); + } + return randomNormal2(shape, this.mean, this.stddev, dtype, this.seed); + } + getConfig() { + return {mean: this.mean, stddev: this.stddev, seed: this.seed}; + } + } + RandomNormal.className = "RandomNormal"; + serialization_exports.registerClass(RandomNormal); + class TruncatedNormal extends Initializer { + constructor(args) { + super(); + this.DEFAULT_MEAN = 0; + this.DEFAULT_STDDEV = 0.05; + this.mean = args.mean || this.DEFAULT_MEAN; + this.stddev = args.stddev || this.DEFAULT_STDDEV; + this.seed = args.seed; + } + apply(shape, dtype) { + dtype = dtype || "float32"; + if (dtype !== "float32" && dtype !== "int32") { + throw new NotImplementedError(`truncatedNormal does not support dType ${dtype}.`); + } + return truncatedNormal(shape, this.mean, this.stddev, dtype, this.seed); + } + getConfig() { + return {mean: this.mean, stddev: this.stddev, seed: this.seed}; + } + } + TruncatedNormal.className = "TruncatedNormal"; + serialization_exports.registerClass(TruncatedNormal); + class Identity2 extends Initializer { + constructor(args) { + super(); + this.gain = args.gain != null ? args.gain : 1; + } + apply(shape, dtype) { + return tidy(() => { + if (shape.length !== 2 || shape[0] !== shape[1]) { + throw new ValueError("Identity matrix initializer can only be used for 2D square matrices."); + } else { + return mul(this.gain, eye(shape[0])); + } + }); + } + getConfig() { + return {gain: this.gain}; + } + } + Identity2.className = "Identity"; + serialization_exports.registerClass(Identity2); + function computeFans(shape, dataFormat = "channelsLast") { + let fanIn; + let fanOut; + checkDataFormat(dataFormat); + if (shape.length === 2) { + fanIn = shape[0]; + fanOut = shape[1]; + } else if ([3, 4, 5].indexOf(shape.length) !== -1) { + if (dataFormat === "channelsFirst") { + const receptiveFieldSize = arrayProd(shape, 2); + fanIn = shape[1] * receptiveFieldSize; + fanOut = shape[0] * receptiveFieldSize; + } else if (dataFormat === "channelsLast") { + const receptiveFieldSize = arrayProd(shape, 0, shape.length - 2); + fanIn = shape[shape.length - 2] * receptiveFieldSize; + fanOut = shape[shape.length - 1] * receptiveFieldSize; + } + } else { + const shapeProd = arrayProd(shape); + fanIn = Math.sqrt(shapeProd); + fanOut = Math.sqrt(shapeProd); + } + return [fanIn, fanOut]; + } + class VarianceScaling extends Initializer { + constructor(args) { + super(); + if (args.scale < 0) { + throw new ValueError(`scale must be a positive float. Got: ${args.scale}`); + } + this.scale = args.scale == null ? 1 : args.scale; + this.mode = args.mode == null ? "fanIn" : args.mode; + checkFanMode(this.mode); + this.distribution = args.distribution == null ? "normal" : args.distribution; + checkDistribution(this.distribution); + this.seed = args.seed; + } + apply(shape, dtype) { + const fans = computeFans(shape); + const fanIn = fans[0]; + const fanOut = fans[1]; + let scale2 = this.scale; + if (this.mode === "fanIn") { + scale2 /= Math.max(1, fanIn); + } else if (this.mode === "fanOut") { + scale2 /= Math.max(1, fanOut); + } else { + scale2 /= Math.max(1, (fanIn + fanOut) / 2); + } + if (this.distribution === "normal") { + const stddev = Math.sqrt(scale2); + dtype = dtype || "float32"; + if (dtype !== "float32" && dtype !== "int32") { + throw new NotImplementedError(`${this.getClassName()} does not support dType ${dtype}.`); + } + return truncatedNormal(shape, 0, stddev, dtype, this.seed); + } else { + const limit = Math.sqrt(3 * scale2); + return randomUniform(shape, -limit, limit, dtype); + } + } + getConfig() { + return { + scale: this.scale, + mode: this.mode, + distribution: this.distribution, + seed: this.seed + }; + } + } + VarianceScaling.className = "VarianceScaling"; + serialization_exports.registerClass(VarianceScaling); + class GlorotUniform extends VarianceScaling { + constructor(args) { + super({ + scale: 1, + mode: "fanAvg", + distribution: "uniform", + seed: args == null ? null : args.seed + }); + } + getClassName() { + return VarianceScaling.className; + } + } + GlorotUniform.className = "GlorotUniform"; + serialization_exports.registerClass(GlorotUniform); + class GlorotNormal extends VarianceScaling { + constructor(args) { + super({ + scale: 1, + mode: "fanAvg", + distribution: "normal", + seed: args == null ? null : args.seed + }); + } + getClassName() { + return VarianceScaling.className; + } + } + GlorotNormal.className = "GlorotNormal"; + serialization_exports.registerClass(GlorotNormal); + class HeNormal extends VarianceScaling { + constructor(args) { + super({ + scale: 2, + mode: "fanIn", + distribution: "normal", + seed: args == null ? null : args.seed + }); + } + getClassName() { + return VarianceScaling.className; + } + } + HeNormal.className = "HeNormal"; + serialization_exports.registerClass(HeNormal); + class HeUniform extends VarianceScaling { + constructor(args) { + super({ + scale: 2, + mode: "fanIn", + distribution: "uniform", + seed: args == null ? null : args.seed + }); + } + getClassName() { + return VarianceScaling.className; + } + } + HeUniform.className = "HeUniform"; + serialization_exports.registerClass(HeUniform); + class LeCunNormal extends VarianceScaling { + constructor(args) { + super({ + scale: 1, + mode: "fanIn", + distribution: "normal", + seed: args == null ? null : args.seed + }); + } + getClassName() { + return VarianceScaling.className; + } + } + LeCunNormal.className = "LeCunNormal"; + serialization_exports.registerClass(LeCunNormal); + class LeCunUniform extends VarianceScaling { + constructor(args) { + super({ + scale: 1, + mode: "fanIn", + distribution: "uniform", + seed: args == null ? null : args.seed + }); + } + getClassName() { + return VarianceScaling.className; + } + } + LeCunUniform.className = "LeCunNormal"; + serialization_exports.registerClass(LeCunUniform); + class Orthogonal extends Initializer { + constructor(args) { + super(); + this.DEFAULT_GAIN = 1; + this.gain = args.gain == null ? this.DEFAULT_GAIN : args.gain; + this.seed = args.seed; + if (this.seed != null) { + throw new NotImplementedError("Random seed is not implemented for Orthogonal Initializer yet."); + } + } + apply(shape, dtype) { + return tidy(() => { + if (shape.length !== 2) { + throw new NotImplementedError("The Orthogonal Initializer does not support non-2D shapes yet."); + } + if (shape[0] * shape[1] > 2e3) { + console.warn(`Orthogonal initializer is being called on a matrix with more than 2000 (${shape[0] * shape[1]}) elements: Slowness may result.`); + } + const normalizedShape = shape[0] > shape[1] ? [shape[1], shape[0]] : shape; + const a = randomNormal2(normalizedShape, 0, 1, "float32"); + let q = linalg.gramSchmidt(a); + if (shape[0] > shape[1]) { + q = q.transpose(); + } + return mul(this.gain, q); + }); + } + getConfig() { + return { + gain: this.gain, + seed: this.seed + }; + } + } + Orthogonal.className = "Orthogonal"; + serialization_exports.registerClass(Orthogonal); + const INITIALIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP = { + constant: "Constant", + glorotNormal: "GlorotNormal", + glorotUniform: "GlorotUniform", + heNormal: "HeNormal", + heUniform: "HeUniform", + identity: "Identity", + leCunNormal: "LeCunNormal", + leCunUniform: "LeCunUniform", + ones: "Ones", + orthogonal: "Orthogonal", + randomNormal: "RandomNormal", + randomUniform: "RandomUniform", + truncatedNormal: "TruncatedNormal", + varianceScaling: "VarianceScaling", + zeros: "Zeros" + }; + function deserializeInitializer(config2, customObjects = {}) { + return deserializeKerasObject(config2, serialization_exports.SerializationMap.getMap().classNameMap, customObjects, "initializer"); + } + function serializeInitializer(initializer) { + return serializeKerasObject(initializer); + } + function getInitializer(identifier) { + if (typeof identifier === "string") { + const className = identifier in INITIALIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP ? INITIALIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP[identifier] : identifier; + if (className === "GlorotNormal") { + return new GlorotNormal(); + } else if (className === "GlorotUniform") { + return new GlorotUniform(); + } else if (className === "HeNormal") { + return new HeNormal(); + } else if (className === "HeUniform") { + return new HeUniform(); + } else if (className === "LeCunNormal") { + return new LeCunNormal(); + } else if (className === "LeCunUniform") { + return new LeCunUniform(); + } else { + const config2 = {}; + config2["className"] = className; + config2["config"] = {}; + return deserializeInitializer(config2); + } + } else if (identifier instanceof Initializer) { + return identifier; + } else { + return deserializeInitializer(identifier); + } + } + + // node_modules/@tensorflow/tfjs-layers/dist/exports_initializers.js + const exports_initializers_exports = {}; + __export(exports_initializers_exports, { + constant: () => constant, + glorotNormal: () => glorotNormal, + glorotUniform: () => glorotUniform, + heNormal: () => heNormal, + heUniform: () => heUniform, + identity: () => identity, + leCunNormal: () => leCunNormal, + leCunUniform: () => leCunUniform, + ones: () => ones8, + orthogonal: () => orthogonal, + randomNormal: () => randomNormal3, + randomUniform: () => randomUniform2, + truncatedNormal: () => truncatedNormal2, + varianceScaling: () => varianceScaling, + zeros: () => zeros9 + }); + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + function zeros9() { + return new Zeros(); + } + function ones8() { + return new Ones(); + } + function constant(args) { + return new Constant(args); + } + function randomUniform2(args) { + return new RandomUniform(args); + } + function randomNormal3(args) { + return new RandomNormal(args); + } + function truncatedNormal2(args) { + return new TruncatedNormal(args); + } + function identity(args) { + return new Identity2(args); + } + function varianceScaling(config2) { + return new VarianceScaling(config2); + } + function glorotUniform(args) { + return new GlorotUniform(args); + } + function glorotNormal(args) { + return new GlorotNormal(args); + } + function heNormal(args) { + return new HeNormal(args); + } + function heUniform(args) { + return new HeUniform(args); + } + function leCunNormal(args) { + return new LeCunNormal(args); + } + function leCunUniform(args) { + return new LeCunUniform(args); + } + function orthogonal(args) { + return new Orthogonal(args); + } + + // node_modules/@tensorflow/tfjs-layers/dist/backend/state.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + let _nextUniqueTensorId = 0; + function getNextUniqueTensorId() { + return _nextUniqueTensorId++; + } + const _uidPrefixes = {}; + function getUid(prefix = "") { + if (!(prefix in _uidPrefixes)) { + _uidPrefixes[prefix] = 0; + } + _uidPrefixes[prefix] += 1; + return prefix + _uidPrefixes[prefix].toString(); + } + + // node_modules/@tensorflow/tfjs-layers/dist/utils/types_utils.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + function isArrayOfShapes(x) { + return Array.isArray(x) && Array.isArray(x[0]); + } + function normalizeShapeList(x) { + if (x.length === 0) { + return []; + } + if (!Array.isArray(x[0])) { + return [x]; + } + return x; + } + function getExactlyOneTensor(xs) { + let x; + if (Array.isArray(xs)) { + if (xs.length !== 1) { + throw new ValueError(`Expected Tensor length to be 1; got ${xs.length}`); + } + x = xs[0]; + } else { + x = xs; + } + return x; + } + function getExactlyOneShape(shapes) { + if (Array.isArray(shapes) && Array.isArray(shapes[0])) { + if (shapes.length === 1) { + shapes = shapes; + return shapes[0]; + } else { + throw new ValueError(`Expected exactly 1 Shape; got ${shapes.length}`); + } + } else { + return shapes; + } + } + + // node_modules/@tensorflow/tfjs-layers/dist/utils/variable_utils.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + function countParamsInWeights(weights) { + let count2 = 0; + for (const weight of weights) { + if (weight.shape.length === 0) { + count2 += 1; + } else { + count2 += weight.shape.reduce((a, b) => a * b); + } + } + return count2; + } + + // node_modules/@tensorflow/tfjs-layers/dist/variables.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + const DEFAULT_VARIABLE_NAME_PREFIX = "Variable"; + class LayerVariable { + constructor(val, dtype = "float32", name = DEFAULT_VARIABLE_NAME_PREFIX, trainable = true, constraint = null) { + this.dtype = dtype == null ? "float32" : dtype; + this.shape = val.shape; + this.id = getNextUniqueTensorId(); + name = name == null ? DEFAULT_VARIABLE_NAME_PREFIX : name; + this.originalName = getScopedTensorName(name); + this.name = getUniqueTensorName(this.originalName); + this.trainable_ = trainable; + this.constraint = constraint; + this.val = variable(val, this.trainable_, this.name, this.dtype); + } + read() { + this.assertNotDisposed(); + return this.val; + } + write(newVal) { + this.assertNotDisposed(); + checkShapesMatch(this.val, newVal); + if (this.val.id !== newVal.id) { + this.val.assign(newVal); + if (this.constraint != null) { + this.val.assign(this.constraint.apply(this.val)); + } + } + return this; + } + dispose() { + this.assertNotDisposed(); + this.val.dispose(); + } + assertNotDisposed() { + if (this.val.isDisposed) { + throw new Error(`LayersVariable ${this.name} is already disposed.`); + } + } + get trainable() { + return this.trainable_; + } + set trainable(trainable) { + this.trainable_ = trainable; + this.val.trainable = trainable; + } + } + function checkShapesMatch(x, y) { + if (x.shape.toString() !== y.shape.toString()) { + throw new Error("Shape mismatch: " + JSON.stringify(x.shape) + " vs. " + JSON.stringify(y.shape)); + } + } + function batchGetValue(xs) { + return xs.map((x) => x.read()); + } + function batchSetValue(variablesAndValues) { + variablesAndValues.forEach((variableAndValue) => { + const variable3 = variableAndValue[0]; + variable3.write(variableAndValue[1]); + }); + } + + // node_modules/@tensorflow/tfjs-layers/dist/engine/topology.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + class InputSpec { + constructor(args) { + this.dtype = args.dtype; + this.shape = args.shape; + if (args.shape != null) { + this.ndim = args.shape.length; + } else { + this.ndim = args.ndim; + } + this.maxNDim = args.maxNDim; + this.minNDim = args.minNDim; + this.axes = args.axes || {}; + } + } + class SymbolicTensor { + constructor(dtype, shape, sourceLayer, inputs, callArgs, name, outputTensorIndex) { + this.dtype = dtype; + this.shape = shape; + this.sourceLayer = sourceLayer; + this.inputs = inputs; + this.callArgs = callArgs; + this.outputTensorIndex = outputTensorIndex; + this.id = getNextUniqueTensorId(); + if (name != null) { + this.originalName = getScopedTensorName(name); + this.name = getUniqueTensorName(this.originalName); + } + this.rank = shape.length; + } + } + let _nextNodeID = 0; + class Node { + constructor(args, callArgs) { + this.callArgs = callArgs; + this.id = _nextNodeID++; + this.outboundLayer = args.outboundLayer; + this.inboundLayers = args.inboundLayers; + this.nodeIndices = args.nodeIndices; + this.tensorIndices = args.tensorIndices; + this.inputTensors = args.inputTensors; + this.outputTensors = args.outputTensors; + this.inputMasks = args.inputMasks; + this.outputMasks = args.outputMasks; + this.inputShapes = args.inputShapes; + this.outputShapes = args.outputShapes; + for (const layer of args.inboundLayers) { + if (layer != null) { + layer.outboundNodes.push(this); + } + } + args.outboundLayer.inboundNodes.push(this); + } + getConfig() { + const inboundNames = []; + for (const layer of this.inboundLayers) { + if (layer != null) { + inboundNames.push(layer.name); + } else { + inboundNames.push(null); + } + } + return { + outboundLayer: this.outboundLayer ? this.outboundLayer.name : null, + inboundLayers: inboundNames, + nodeIndices: this.nodeIndices, + tensorIndices: this.tensorIndices + }; + } + } + let _nextLayerID = 0; + class Layer extends serialization_exports.Serializable { + constructor(args = {}) { + super(); + this._callHook = null; + this._addedWeightNames = []; + this._stateful = false; + this.id = _nextLayerID++; + this.activityRegularizer = null; + this.inputSpec = null; + this.supportsMasking = false; + this._trainableWeights = []; + this._nonTrainableWeights = []; + this._losses = []; + this._updates = []; + this._built = false; + this.inboundNodes = []; + this.outboundNodes = []; + let name = args.name; + if (!name) { + const prefix = this.getClassName(); + name = toSnakeCase(prefix) + "_" + getUid(prefix); + } + this.name = name; + this.trainable_ = args.trainable == null ? true : args.trainable; + if (args.inputShape != null || args.batchInputShape != null) { + let batchInputShape; + if (args.batchInputShape != null) { + batchInputShape = args.batchInputShape; + } else if (args.inputShape != null) { + let batchSize = null; + if (args.batchSize != null) { + batchSize = args.batchSize; + } + batchInputShape = [batchSize].concat(args.inputShape); + } + this.batchInputShape = batchInputShape; + let dtype = args.dtype; + if (dtype == null) { + dtype = args.inputDType; + } + if (dtype == null) { + dtype = "float32"; + } + this.dtype = dtype; + } + if (args.weights != null) { + this.initialWeights = args.weights; + } else { + this.initialWeights = null; + } + this._refCount = null; + this.fastWeightInitDuringBuild = false; + } + static nodeKey(layer, nodeIndex) { + return layer.name + "_ib-" + nodeIndex.toString(); + } + getNodeAtIndex(nodeIndex, attrName) { + if (this.inboundNodes.length === 0) { + throw new RuntimeError(`The layer has never been called and thus has no defined ${attrName}.`); + } + if (this.inboundNodes.length <= nodeIndex) { + throw new ValueError(`Asked to get ${attrName} at node ${nodeIndex}, but the layer has only ${this.inboundNodes.length} inbound nodes.`); + } + return this.inboundNodes[nodeIndex]; + } + getInputAt(nodeIndex) { + return singletonOrArray(this.getNodeAtIndex(nodeIndex, "input").inputTensors); + } + getOutputAt(nodeIndex) { + return singletonOrArray(this.getNodeAtIndex(nodeIndex, "output").outputTensors); + } + get input() { + if (this.inboundNodes.length > 1) { + throw new AttributeError(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer input" is ill-defined. Use \`getInputAt(nodeIndex)\` instead.`); + } else if (this.inboundNodes.length === 0) { + throw new AttributeError(`Layer ${this.name} is not connected, no input to return.`); + } + return singletonOrArray(this.getNodeAtIndex(0, "input").inputTensors); + } + get output() { + if (this.inboundNodes.length === 0) { + throw new AttributeError(`Layer ${this.name} has no inbound nodes.`); + } + if (this.inboundNodes.length > 1) { + throw new AttributeError(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`); + } + return singletonOrArray(this.getNodeAtIndex(0, "output").outputTensors); + } + get losses() { + return this._losses; + } + calculateLosses() { + return this.losses.map((lossFn) => lossFn()); + } + get updates() { + return this._updates; + } + get built() { + return this._built; + } + set built(built) { + this._built = built; + } + get trainable() { + return this.trainable_; + } + set trainable(trainable) { + this._trainableWeights.forEach((w) => w.trainable = trainable); + this.trainable_ = trainable; + } + get trainableWeights() { + if (this.trainable_) { + return this._trainableWeights.filter((w) => w.trainable); + } else { + return []; + } + } + set trainableWeights(weights) { + this._trainableWeights = weights; + } + get nonTrainableWeights() { + if (this.trainable) { + return this._trainableWeights.filter((w) => !w.trainable).concat(this._nonTrainableWeights); + } else { + return this._trainableWeights.concat(this._nonTrainableWeights); + } + } + set nonTrainableWeights(weights) { + this._nonTrainableWeights = weights; + } + get weights() { + return this.trainableWeights.concat(this.nonTrainableWeights); + } + get stateful() { + return this._stateful; + } + resetStates() { + if (!this.stateful) { + throw new Error("Cannot call the resetStates() method of a non-stateful Layer object."); + } + } + assertInputCompatibility(inputs) { + inputs = toList(inputs); + if (this.inputSpec == null || this.inputSpec.length === 0) { + return; + } + const inputSpec = toList(this.inputSpec); + if (inputs.length !== inputSpec.length) { + throw new ValueError(`Layer ${this.name} expects ${inputSpec.length} inputs, but it received ${inputs.length} input tensors. Input received: ${inputs}`); + } + for (let inputIndex = 0; inputIndex < inputs.length; inputIndex++) { + const x = inputs[inputIndex]; + const spec = inputSpec[inputIndex]; + if (spec == null) { + continue; + } + const ndim = x.rank; + if (spec.ndim != null) { + if (ndim !== spec.ndim) { + throw new ValueError(`Input ${inputIndex} is incompatible with layer ${this.name}: expected ndim=${spec.ndim}, found ndim=${ndim}`); + } + } + if (spec.maxNDim != null) { + if (ndim > spec.maxNDim) { + throw new ValueError(`Input ${inputIndex} is incompatible with layer ${this.name}: expected max_ndim=${spec.maxNDim}, found ndim=${ndim}`); + } + } + if (spec.minNDim != null) { + if (ndim < spec.minNDim) { + throw new ValueError(`Input ${inputIndex} is incompatible with layer ${this.name}: expected min_ndim=${spec.minNDim}, found ndim=${ndim}.`); + } + } + if (spec.dtype != null) { + if (x.dtype !== spec.dtype) { + throw new ValueError(`Input ${inputIndex} is incompatible with layer ${this.name} : expected dtype=${spec.dtype}, found dtype=${x.dtype}.`); + } + } + if (spec.axes) { + const xShape = x.shape; + for (const key in spec.axes) { + const axis = Number(key); + const value = spec.axes[key]; + const xShapeAtAxis = axis >= 0 ? xShape[axis] : xShape[xShape.length + axis]; + if (value != null && [value, null].indexOf(xShapeAtAxis) === -1) { + throw new ValueError(`Input ${inputIndex} is incompatible with layer ${this.name}: expected axis ${axis} of input shape to have value ${value} but got shape ${xShape}.`); + } + } + } + if (spec.shape != null) { + for (let i = 0; i < spec.shape.length; ++i) { + const specDim = spec.shape[i]; + const dim = x.shape[i]; + if (specDim != null && dim != null) { + if (specDim !== dim) { + throw new ValueError(`Input ${inputIndex} is incompatible with layer ${this.name}: expected shape=${spec.shape}, found shape=${x.shape}.`); + } + } + } + } + } + } + call(inputs, kwargs) { + return inputs; + } + invokeCallHook(inputs, kwargs) { + if (this._callHook != null) { + this._callHook(inputs, kwargs); + } + } + setCallHook(callHook) { + this._callHook = callHook; + } + clearCallHook() { + this._callHook = null; + } + apply(inputs, kwargs) { + kwargs = kwargs || {}; + this.assertNotDisposed(); + const inputsList = toList(inputs); + let allAreSymbolic = true; + for (const input2 of inputsList) { + if (!(input2 instanceof SymbolicTensor)) { + allAreSymbolic = false; + break; + } + } + let noneAreSymbolic = true; + for (const input2 of inputsList) { + if (input2 instanceof SymbolicTensor) { + noneAreSymbolic = false; + break; + } + } + if (allAreSymbolic === noneAreSymbolic) { + throw new ValueError("Arguments to apply() must be all SymbolicTensors or all Tensors"); + } + return nameScope(this.name, () => { + if (!this.built) { + this.assertInputCompatibility(inputs); + const inputShapes = []; + for (const xElem of toList(inputs)) { + inputShapes.push(xElem.shape); + } + this.build(singletonOrArray(inputShapes)); + this.built = true; + if (this.initialWeights) { + this.setWeights(this.initialWeights); + } + if (this._refCount === null && noneAreSymbolic) { + this._refCount = 1; + } + } + this.assertInputCompatibility(inputs); + if (noneAreSymbolic) { + let output = this.call(inputs, kwargs); + const outputList = toList(output); + const outputListCopy = []; + for (let x of outputList) { + if (inputsList.indexOf(x) !== -1) { + x = x.clone(); + } + outputListCopy.push(x); + } + output = singletonOrArray(outputListCopy); + if (this.activityRegularizer != null) { + throw new NotImplementedError("Layer invocation in the presence of activity regularizer(s) is not supported yet."); + } + return output; + } else { + const inputShape = collectInputShape(inputs); + const outputShape = this.computeOutputShape(inputShape); + let output; + const outputDType = guessOutputDType(inputs); + this.warnOnIncompatibleInputShape(Array.isArray(inputs) ? inputShape[0] : inputShape); + if (outputShape != null && outputShape.length > 0 && Array.isArray(outputShape[0])) { + output = outputShape.map((shape, index) => new SymbolicTensor(outputDType, shape, this, toList(inputs), kwargs, this.name, index)); + } else { + output = new SymbolicTensor(outputDType, outputShape, this, toList(inputs), kwargs, this.name); + } + this.addInboundNode(inputs, output, null, null, inputShape, outputShape, kwargs); + this._refCount++; + if (this.activityRegularizer != null) { + throw new NotImplementedError("Layer invocation in the presence of activity regularizer(s) is not supported yet."); + } + return output; + } + }); + } + warnOnIncompatibleInputShape(inputShape) { + if (this.batchInputShape == null) { + return; + } else if (inputShape.length !== this.batchInputShape.length) { + console.warn(`The rank of the input tensor provided (shape: ${JSON.stringify(inputShape)}) does not match that of the batchInputShape (${JSON.stringify(this.batchInputShape)}) of the layer ${this.name}`); + } else { + let dimMismatch = false; + this.batchInputShape.forEach((dimension, i) => { + if (dimension != null && inputShape[i] != null && inputShape[i] !== dimension) { + dimMismatch = true; + } + }); + if (dimMismatch) { + console.warn(`The shape of the input tensor (${JSON.stringify(inputShape)}) does not match the expectation of layer ${this.name}: ${JSON.stringify(this.batchInputShape)}`); + } + } + } + get outputShape() { + if (this.inboundNodes == null || this.inboundNodes.length === 0) { + throw new AttributeError(`The layer ${this.name} has never been called and thus has no defined output shape.`); + } + const allOutputShapes = []; + for (const node of this.inboundNodes) { + const shapeString = JSON.stringify(node.outputShapes); + if (allOutputShapes.indexOf(shapeString) === -1) { + allOutputShapes.push(shapeString); + } + } + if (allOutputShapes.length === 1) { + const outputShapes = this.inboundNodes[0].outputShapes; + if (Array.isArray(outputShapes) && Array.isArray(outputShapes[0]) && outputShapes.length === 1) { + return outputShapes[0]; + } else { + return outputShapes; + } + } else { + throw new AttributeError(`The layer ${this.name} has multiple inbound nodes with different output shapes. Hence the notion of "output shape" is ill-defined for the layer.`); + } + } + countParams() { + if (!this.built) { + throw new RuntimeError(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`); + } + return countParamsInWeights(this.weights); + } + build(inputShape) { + this.built = true; + } + getWeights(trainableOnly = false) { + return batchGetValue(trainableOnly ? this.trainableWeights : this.weights); + } + setWeights(weights) { + tidy(() => { + const params = this.weights; + if (params.length !== weights.length) { + throw new ValueError(`You called setWeights(weights) on layer "${this.name}" with a weight list of length ${weights.length}, but the layer was expecting ${params.length} weights. Provided weights: ${weights}...`); + } + if (params.length === 0) { + return; + } + const weightValueTuples = []; + const paramValues = batchGetValue(params); + for (let i = 0; i < paramValues.length; ++i) { + const pv = paramValues[i]; + const p = params[i]; + const w = weights[i]; + if (!util_exports.arraysEqual(pv.shape, w.shape)) { + throw new ValueError(`Layer weight shape ${pv.shape} not compatible with provided weight shape ${w.shape}`); + } + weightValueTuples.push([p, w]); + } + batchSetValue(weightValueTuples); + }); + } + addWeight(name, shape, dtype, initializer, regularizer, trainable, constraint) { + if (this._addedWeightNames.indexOf(name) !== -1) { + throw new ValueError(`Duplicate weight name ${name} for layer ${this.name}`); + } + this._addedWeightNames.push(name); + if (dtype == null) { + dtype = "float32"; + } + if (this.fastWeightInitDuringBuild) { + initializer = getInitializer("zeros"); + } + const initValue = initializer.apply(shape, dtype); + const weight = new LayerVariable(initValue, dtype, name, trainable, constraint); + initValue.dispose(); + if (regularizer != null) { + this.addLoss(() => regularizer.apply(weight.read())); + } + if (trainable == null) { + trainable = true; + } + if (trainable) { + this._trainableWeights.push(weight); + } else { + this._nonTrainableWeights.push(weight); + } + return weight; + } + setFastWeightInitDuringBuild(value) { + this.fastWeightInitDuringBuild = value; + } + addLoss(losses8) { + if (losses8 == null || Array.isArray(losses8) && losses8.length === 0) { + return; + } + losses8 = toList(losses8); + if (this._losses !== void 0 && this._losses !== null) { + this.losses.push(...losses8); + } + } + computeOutputShape(inputShape) { + return inputShape; + } + computeMask(inputs, mask) { + if (!this.supportsMasking) { + if (mask != null) { + if (Array.isArray(mask)) { + mask.forEach((maskElement) => { + if (maskElement != null) { + throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`); + } + }); + } else { + throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`); + } + } + return null; + } + return mask; + } + addInboundNode(inputTensors, outputTensors, inputMasks, outputMasks, inputShapes, outputShapes, kwargs = null) { + const inputTensorList = toList(inputTensors); + outputTensors = toList(outputTensors); + inputMasks = toList(inputMasks); + outputMasks = toList(outputMasks); + inputShapes = normalizeShapeList(inputShapes); + outputShapes = normalizeShapeList(outputShapes); + const inboundLayers = []; + const nodeIndices = []; + const tensorIndices = []; + for (const x of inputTensorList) { + inboundLayers.push(x.sourceLayer); + nodeIndices.push(x.nodeIndex); + tensorIndices.push(x.tensorIndex); + } + new Node({ + outboundLayer: this, + inboundLayers, + nodeIndices, + tensorIndices, + inputTensors: inputTensorList, + outputTensors, + inputMasks, + outputMasks, + inputShapes, + outputShapes + }, kwargs); + for (let i = 0; i < outputTensors.length; i++) { + outputTensors[i].sourceLayer = this; + outputTensors[i].nodeIndex = this.inboundNodes.length - 1; + outputTensors[i].tensorIndex = i; + } + } + getConfig() { + const config2 = {name: this.name, trainable: this.trainable}; + if (this.batchInputShape != null) { + config2["batchInputShape"] = this.batchInputShape; + } + if (this.dtype != null) { + config2["dtype"] = this.dtype; + } + return config2; + } + disposeWeights() { + this.weights.forEach((weight) => weight.dispose()); + return this.weights.length; + } + assertNotDisposed() { + if (this._refCount === 0) { + throw new Error(`Layer '${this.name}' is already disposed.`); + } + } + dispose() { + if (!this.built) { + throw new Error(`Cannot dispose Layer ${this.name} because it has not been built yet.`); + } + if (this._refCount === null) { + throw new Error(`Cannot dispose Layer ${this.name} because it has not been used yet.`); + } + this.assertNotDisposed(); + let numDisposedVariables = 0; + if (--this._refCount === 0) { + numDisposedVariables = this.disposeWeights(); + } + return {refCountAfterDispose: this._refCount, numDisposedVariables}; + } + } + function collectInputShape(inputTensors) { + inputTensors = toList(inputTensors); + const shapes = []; + for (const x of inputTensors) { + shapes.push(x.shape); + } + return singletonOrArray(shapes); + } + function guessOutputDType(inputTensors) { + return "float32"; + } + function getSourceInputs(tensor17, layer, nodeIndex) { + if (layer == null || nodeIndex != null && nodeIndex > 0) { + layer = tensor17.sourceLayer; + nodeIndex = tensor17.nodeIndex; + } + if (layer.inboundNodes.length === 0) { + return [tensor17]; + } else { + const node = layer.inboundNodes[nodeIndex]; + if (node.inboundLayers.length === 0) { + return node.inputTensors; + } else { + const sourceTensors = []; + for (let i = 0; i < node.inboundLayers.length; i++) { + const x = node.inputTensors[i]; + const layer2 = node.inboundLayers[i]; + const nodeIndex2 = node.nodeIndices[i]; + const previousSources = getSourceInputs(x, layer2, nodeIndex2); + for (const x2 of previousSources) { + if (sourceTensors.indexOf(x2) === -1) { + sourceTensors.push(x2); + } + } + } + return sourceTensors; + } + } + } + + // node_modules/@tensorflow/tfjs-layers/dist/engine/input_layer.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + class InputLayer extends Layer { + constructor(args) { + super({ + dtype: args.dtype, + name: args.name != null ? args.name : getUid("input").toString() + }); + if (args.batchSize == null) { + args.batchSize = null; + } + if (args.sparse == null) { + args.sparse = false; + } + this.trainable = false; + this.built = true; + this.sparse = args.sparse; + if (args.inputShape != null && args.batchInputShape != null) { + throw new ValueError("Only provide the inputShape OR batchInputShape argument to inputLayer, not both at the same time."); + } + let batchInputShape = args.batchInputShape; + if (batchInputShape == null) { + if (args.inputShape == null) { + throw new ValueError("An InputLayer should be passed either a `batchInputShape` or an `inputShape`."); + } else { + batchInputShape = [args.batchSize].concat(args.inputShape); + } + } else { + if (args.batchSize != null) { + throw new ValueError("Cannot specify batchSize if batchInputShape is specified when creating an InputLayer."); + } + } + const dtype = args.dtype || "float32"; + this.batchInputShape = batchInputShape; + this.dtype = dtype; + this.inputSpec = [{shape: batchInputShape}]; + const inputTensor = new SymbolicTensor(this.dtype, this.batchInputShape, this, [], {}, this.name); + inputTensor.nodeIndex = 0; + inputTensor.tensorIndex = 0; + new Node({ + outboundLayer: this, + inboundLayers: [], + nodeIndices: [], + tensorIndices: [], + inputTensors: [inputTensor], + outputTensors: [inputTensor], + inputMasks: [null], + outputMasks: [null], + inputShapes: [batchInputShape], + outputShapes: [batchInputShape] + }); + } + apply(inputs, kwargs) { + throw new ValueError(`Cannot pass any input to an InputLayer's apply() method. InputLayer name: ${this.name}`); + } + dispose() { + return {refCountAfterDispose: this._refCount, numDisposedVariables: 0}; + } + getConfig() { + return { + batchInputShape: this.batchInputShape, + dtype: this.dtype, + sparse: this.sparse, + name: this.name + }; + } + } + InputLayer.className = "InputLayer"; + serialization_exports.registerClass(InputLayer); + function Input(config2) { + if (config2.batchShape == null && config2.shape == null) { + throw new Error("Please provide to Input either a `shape` or a `batchShape` argument. Note that `shape` does not include the batch dimension."); + } + if (config2.batchShape != null && config2.shape != null) { + throw new ValueError("Please provide either a `shape` or `batchShape` argument to Input, but not both."); + } + let batchShape = config2.batchShape; + if (config2.shape != null && batchShape == null) { + batchShape = [null].concat(config2.shape); + } + let dtype = config2.dtype; + if (dtype == null) { + dtype = "float32"; + } + const inputLayer2 = new InputLayer({ + batchInputShape: batchShape, + name: config2.name, + dtype, + sparse: config2.sparse + }); + const outputs = inputLayer2.inboundNodes[0].outputTensors; + return outputs[0]; + } + + // node_modules/@tensorflow/tfjs-layers/dist/logs.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + async function resolveScalarsInLogs(logs5) { + if (logs5 == null) { + return; + } + const promises = []; + const keys = []; + const scalarsToDispose = []; + for (const key in logs5) { + const value = logs5[key]; + if (typeof value !== "number") { + const valueScalar = value; + promises.push(valueScalar.data()); + keys.push(key); + scalarsToDispose.push(valueScalar); + } + } + if (promises.length > 0) { + const values = await Promise.all(promises); + for (let i = 0; i < values.length; ++i) { + logs5[keys[i]] = values[i][0]; + } + dispose(scalarsToDispose); + } + } + function disposeTensorsInLogs(logs5) { + if (logs5 == null) { + return; + } + for (const key in logs5) { + const value = logs5[key]; + if (typeof value !== "number") { + value.dispose(); + } + } + } + + // node_modules/@tensorflow/tfjs-layers/dist/base_callbacks.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + var ModelLoggingVerbosity; + (function(ModelLoggingVerbosity2) { + ModelLoggingVerbosity2[ModelLoggingVerbosity2["SILENT"] = 0] = "SILENT"; + ModelLoggingVerbosity2[ModelLoggingVerbosity2["VERBOSE"] = 1] = "VERBOSE"; + })(ModelLoggingVerbosity || (ModelLoggingVerbosity = {})); + const DEFAULT_YIELD_EVERY_MS = 125; + class BaseCallback { + constructor() { + this.validationData = null; + } + setParams(params) { + this.params = params; + } + async onEpochBegin(epoch, logs5) { + } + async onEpochEnd(epoch, logs5) { + } + async onBatchBegin(batch, logs5) { + } + async onBatchEnd(batch, logs5) { + } + async onTrainBegin(logs5) { + } + async onTrainEnd(logs5) { + } + setModel(model2) { + } + } + class CallbackList { + constructor(callbacks3, queueLength = 10) { + if (callbacks3 == null) { + callbacks3 = []; + } + this.callbacks = callbacks3; + this.queueLength = queueLength; + } + append(callback) { + this.callbacks.push(callback); + } + setParams(params) { + for (const callback of this.callbacks) { + callback.setParams(params); + } + } + setModel(model2) { + for (const callback of this.callbacks) { + callback.setModel(model2); + } + } + async onEpochBegin(epoch, logs5) { + if (logs5 == null) { + logs5 = {}; + } + for (const callback of this.callbacks) { + await callback.onEpochBegin(epoch, logs5); + } + } + async onEpochEnd(epoch, logs5) { + if (logs5 == null) { + logs5 = {}; + } + for (const callback of this.callbacks) { + await callback.onEpochEnd(epoch, logs5); + } + } + async onBatchBegin(batch, logs5) { + if (logs5 == null) { + logs5 = {}; + } + for (const callback of this.callbacks) { + await callback.onBatchBegin(batch, logs5); + } + } + async onBatchEnd(batch, logs5) { + if (logs5 == null) { + logs5 = {}; + } + for (const callback of this.callbacks) { + await callback.onBatchEnd(batch, logs5); + } + } + async onTrainBegin(logs5) { + if (logs5 == null) { + logs5 = {}; + } + for (const callback of this.callbacks) { + await callback.onTrainBegin(logs5); + } + } + async onTrainEnd(logs5) { + if (logs5 == null) { + logs5 = {}; + } + for (const callback of this.callbacks) { + await callback.onTrainEnd(logs5); + } + } + } + class BaseLogger extends BaseCallback { + constructor() { + super(); + } + async onEpochBegin(epoch) { + this.seen = 0; + this.totals = {}; + } + async onBatchEnd(batch, logs5) { + if (logs5 == null) { + logs5 = {}; + } + const batchSize = logs5["size"] == null ? 0 : logs5["size"]; + this.seen += batchSize; + for (const key in logs5) { + const value = logs5[key]; + if (typeof value === "number") { + if (!this.totals.hasOwnProperty(key)) { + this.totals[key] = 0; + } + this.totals[key] = this.totals[key] + value * batchSize; + } else { + let oldTotalsToDispose; + if (key in this.totals) { + oldTotalsToDispose = this.totals[key]; + } else { + this.totals[key] = 0; + } + const total = tidy(() => add2(this.totals[key], mul(value, batchSize))); + this.totals[key] = total; + if (oldTotalsToDispose != null) { + oldTotalsToDispose.dispose(); + } + } + } + } + async onEpochEnd(epoch, logs5) { + if (logs5 != null) { + for (const key of this.params["metrics"]) { + if (this.totals[key] == null) { + continue; + } + if (typeof this.totals[key] === "number") { + logs5[key] = this.totals[key] / this.seen; + } else { + tidy(() => { + const log8 = mul(div(1, this.seen), this.totals[key]); + logs5[key] = log8; + this.totals[key].dispose(); + keep(logs5[key]); + }); + } + } + } + } + } + class History extends BaseCallback { + async onTrainBegin(logs5) { + this.epoch = []; + this.history = {}; + } + async onEpochEnd(epoch, logs5) { + if (logs5 == null) { + logs5 = {}; + } + this.epoch.push(epoch); + for (const key in logs5) { + if (this.history[key] == null) { + this.history[key] = []; + } + this.history[key].push(logs5[key]); + } + } + async syncData() { + const promises = []; + const keys = []; + const indices = []; + for (const key in this.history) { + const valueArray = this.history[key]; + for (let i = 0; i < valueArray.length; ++i) { + if (typeof valueArray[i] !== "number") { + const valueScalar = valueArray[i]; + promises.push(valueScalar.data()); + keys.push(key); + indices.push(i); + } + } + } + const values = await Promise.all(promises); + for (let n = 0; n < values.length; ++n) { + const tensorToDispose = this.history[keys[n]][indices[n]]; + tensorToDispose.dispose(); + this.history[keys[n]][indices[n]] = values[n][0]; + } + } + } + class CustomCallback extends BaseCallback { + constructor(args, yieldEvery) { + super(); + this.currentEpoch = 0; + this.yieldEvery = yieldEvery || "auto"; + if (this.yieldEvery === "auto") { + this.yieldEvery = DEFAULT_YIELD_EVERY_MS; + } + if (this.yieldEvery === "never" && args.onYield != null) { + throw new Error("yieldEvery is `never` but you provided an `onYield` callback. Either change `yieldEvery` or remove the callback"); + } + if (util_exports.isNumber(this.yieldEvery)) { + this.maybeWait = debounce(this.maybeWait.bind(this), this.yieldEvery); + } + this.trainBegin = args.onTrainBegin; + this.trainEnd = args.onTrainEnd; + this.epochBegin = args.onEpochBegin; + this.epochEnd = args.onEpochEnd; + this.batchBegin = args.onBatchBegin; + this.batchEnd = args.onBatchEnd; + this.yield = args.onYield; + } + async maybeWait(epoch, batch, logs5) { + const ps = []; + if (this.yield != null) { + await resolveScalarsInLogs(logs5); + ps.push(this.yield(epoch, batch, logs5)); + } + ps.push(nextFrame()); + await Promise.all(ps); + } + async onEpochBegin(epoch, logs5) { + this.currentEpoch = epoch; + if (this.epochBegin != null) { + await resolveScalarsInLogs(logs5); + await this.epochBegin(epoch, logs5); + } + } + async onEpochEnd(epoch, logs5) { + const ps = []; + if (this.epochEnd != null) { + await resolveScalarsInLogs(logs5); + ps.push(this.epochEnd(epoch, logs5)); + } + if (this.yieldEvery === "epoch") { + ps.push(nextFrame()); + } + await Promise.all(ps); + } + async onBatchBegin(batch, logs5) { + if (this.batchBegin != null) { + await resolveScalarsInLogs(logs5); + await this.batchBegin(batch, logs5); + } + } + async onBatchEnd(batch, logs5) { + const ps = []; + if (this.batchEnd != null) { + await resolveScalarsInLogs(logs5); + ps.push(this.batchEnd(batch, logs5)); + } + if (this.yieldEvery === "batch") { + ps.push(nextFrame()); + } else if (util_exports.isNumber(this.yieldEvery)) { + ps.push(this.maybeWait(this.currentEpoch, batch, logs5)); + } + await Promise.all(ps); + } + async onTrainBegin(logs5) { + if (this.trainBegin != null) { + await resolveScalarsInLogs(logs5); + await this.trainBegin(logs5); + } + } + async onTrainEnd(logs5) { + if (this.trainEnd != null) { + await resolveScalarsInLogs(logs5); + await this.trainEnd(logs5); + } + } + } + function standardizeCallbacks(callbacks3, yieldEvery) { + if (callbacks3 == null) { + callbacks3 = {}; + } + if (callbacks3 instanceof BaseCallback) { + return [callbacks3]; + } + if (Array.isArray(callbacks3) && callbacks3[0] instanceof BaseCallback) { + return callbacks3; + } + const callbackConfigs = toList(callbacks3); + return callbackConfigs.map((callbackConfig) => new CustomCallback(callbackConfig, yieldEvery)); + } + class CallbackConstructorRegistry { + constructor() { + } + static registerCallbackConstructor(verbosityLevel, callbackConstructor) { + util_exports.assert(verbosityLevel >= 0 && Number.isInteger(verbosityLevel), () => `Verbosity level is expected to be an integer >= 0, but got ${verbosityLevel}`); + CallbackConstructorRegistry.checkForDuplicate(callbackConstructor); + if (CallbackConstructorRegistry.constructors[verbosityLevel] == null) { + CallbackConstructorRegistry.constructors[verbosityLevel] = []; + } + CallbackConstructorRegistry.constructors[verbosityLevel].push(callbackConstructor); + } + static checkForDuplicate(callbackConstructor) { + for (const levelName in CallbackConstructorRegistry.constructors) { + const constructors = CallbackConstructorRegistry.constructors[+levelName]; + constructors.forEach((ctor) => { + if (ctor === callbackConstructor) { + throw new ValueError("Duplicate callback constructor."); + } + }); + } + } + static clear() { + CallbackConstructorRegistry.constructors = {}; + } + static createCallbacks(verbosityLevel) { + const constructors = []; + for (const levelName in CallbackConstructorRegistry.constructors) { + const level = +levelName; + if (verbosityLevel >= level) { + constructors.push(...CallbackConstructorRegistry.constructors[level]); + } + } + return constructors.map((ctor) => new ctor()); + } + } + CallbackConstructorRegistry.constructors = {}; + function configureCallbacks(callbacks3, verbose, epochs, initialEpoch, numTrainSamples, stepsPerEpoch, batchSize, doValidation, callbackMetrics) { + const history = new History(); + const actualCallbacks = [ + new BaseLogger(), + ...CallbackConstructorRegistry.createCallbacks(verbose) + ]; + if (callbacks3 != null) { + actualCallbacks.push(...callbacks3); + } + actualCallbacks.push(history); + const callbackList = new CallbackList(actualCallbacks); + callbackList.setParams({ + epochs, + initialEpoch, + samples: numTrainSamples, + steps: stepsPerEpoch, + batchSize, + verbose, + doValidation, + metrics: callbackMetrics + }); + return {callbackList, history}; + } + + // node_modules/@tensorflow/tfjs-layers/dist/layers/serialization.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + function deserialize(config2, customObjects = {}, fastWeightInit = false) { + return deserializeKerasObject(config2, serialization_exports.SerializationMap.getMap().classNameMap, customObjects, "layer", fastWeightInit); + } + + // node_modules/@tensorflow/tfjs-layers/dist/losses.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + function l2Normalize(x, axis) { + return tidy(() => { + if (x.dtype !== "float32") { + x = x.asType("float32"); + } + const squareSum = sum2(square23(x), axis, true); + const epsilonTensor = fill(squareSum.shape, epsilon()); + const norm4 = sqrt(maximum(squareSum, epsilonTensor)); + return div(x, norm4); + }); + } + function meanSquaredError2(yTrue, yPred) { + return tidy(() => mean(square23(sub(yPred, yTrue)), -1)); + } + function meanAbsoluteError(yTrue, yPred) { + return tidy(() => mean(abs(sub(yPred, yTrue)), -1)); + } + function meanAbsolutePercentageError(yTrue, yPred) { + return tidy(() => { + const diff = sub(yTrue, yPred); + const clippedTrue = clipByValue(abs(yTrue), epsilon(), Number.MAX_VALUE); + const absResult = abs(div(diff, clippedTrue)); + return mul(100, mean(absResult, -1)); + }); + } + function meanSquaredLogarithmicError(yTrue, yPred) { + return tidy(() => { + const clippedPred = clipByValue(yPred, epsilon(), Number.MAX_VALUE); + const firstLog = log(add2(1, clippedPred)); + const clippedTrue = clipByValue(yTrue, epsilon(), Number.MAX_VALUE); + const secondLog = log(add2(1, clippedTrue)); + return mean(square23(sub(firstLog, secondLog)), -1); + }); + } + function squaredHinge(yTrue, yPred) { + return tidy(() => { + const maxResult = maximum(0, sub(1, mul(yTrue, yPred))); + return mean(square23(maxResult), -1); + }); + } + function hinge(yTrue, yPred) { + return tidy(() => { + const maxResult = maximum(0, sub(1, mul(yTrue, yPred))); + return mean(maxResult, -1); + }); + } + function categoricalHinge(yTrue, yPred) { + return tidy(() => { + const pos = sum2(mul(yTrue, yPred), -1); + const neg19 = max(mul(sub(1, yTrue), yPred), -1); + return maximum(0, add2(1, sub(neg19, pos))); + }); + } + function logcosh(yTrue, yPred) { + return tidy(() => { + const log22 = Math.log(2); + const predictionDiff = sub(yPred, yTrue); + const logcoshResult = sub(add2(predictionDiff, softplus(mul(-2, predictionDiff))), log22); + return mean(logcoshResult, -1); + }); + } + function categoricalCrossentropy(target, output, fromLogits = false) { + return tidy(() => { + if (fromLogits) { + output = softmax(output); + } else { + const outputSum = sum2(output, output.shape.length - 1, true); + output = div(output, outputSum); + } + output = clipByValue(output, epsilon(), 1 - epsilon()); + return neg(sum2(mul(target.toFloat(), log(output)), output.shape.length - 1)); + }); + } + function sparseCategoricalCrossentropy(target, output, fromLogits = false) { + return tidy(() => { + const flatTarget = floor(flatten2(target)).toInt(); + output = clipByValue(output, epsilon(), 1 - epsilon()); + const outputShape = output.shape; + const oneHotTarget = oneHot(flatTarget, outputShape[outputShape.length - 1]).reshape(outputShape); + return categoricalCrossentropy(oneHotTarget, output, fromLogits); + }); + } + function sigmoidCrossEntropyWithLogits(labels, logits) { + if (!util_exports.arraysEqual(labels.shape, logits.shape)) { + throw new ValueError(`logits and labels must have the same shape, but got shapes ${JSON.stringify(labels.shape)} and ${JSON.stringify(logits.shape)}`); + } + return tidy(() => { + const reluLogits = logits.relu(); + const negAbsLogits = logits.abs().neg(); + return reluLogits.sub(logits.mul(labels)).add(negAbsLogits.exp().log1p()); + }); + } + function binaryCrossentropy(yTrue, yPred) { + return tidy(() => { + let y; + y = clipByValue(yPred, epsilon(), 1 - epsilon()); + y = log(div(y, sub(1, y))); + return mean(sigmoidCrossEntropyWithLogits(yTrue, y), -1); + }); + } + function kullbackLeiblerDivergence(yTrue, yPred) { + return tidy(() => { + const clippedTrue = clipByValue(yTrue, epsilon(), 1); + const clippedPred = clipByValue(yPred, epsilon(), 1); + return sum2(mul(yTrue, log(div(clippedTrue, clippedPred))), -1); + }); + } + function poisson(yTrue, yPred) { + return tidy(() => { + const logPred = log(add2(epsilon(), yPred)); + return mean(sub(yPred, mul(yTrue, logPred)), -1); + }); + } + function cosineProximity(yTrue, yPred) { + return tidy(() => { + const trueNormalized = l2Normalize(yTrue, -1); + const predNormalized = l2Normalize(yPred, -1); + const trueXPred = mul(trueNormalized, predNormalized); + return neg(sum2(trueXPred, -1)); + }); + } + const lossesMap = { + meanSquaredError: meanSquaredError2, + meanAbsoluteError, + meanAbsolutePercentageError, + meanSquaredLogarithmicError, + squaredHinge, + hinge, + categoricalHinge, + logcosh, + categoricalCrossentropy, + sparseCategoricalCrossentropy, + binaryCrossentropy, + kullbackLeiblerDivergence, + poisson, + cosineProximity + }; + function get(identifierOrFn) { + if (typeof identifierOrFn === "string") { + if (identifierOrFn in lossesMap) { + return lossesMap[identifierOrFn]; + } + let errMsg = `Unknown loss ${identifierOrFn}`; + if (identifierOrFn.toLowerCase().includes("softmaxcrossentropy")) { + errMsg = `Unknown loss ${identifierOrFn}. Use "categoricalCrossentropy" as the string name for tf.losses.softmaxCrossEntropy`; + } + throw new ValueError(errMsg); + } else { + return identifierOrFn; + } + } + + // node_modules/@tensorflow/tfjs-layers/dist/metrics.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + function binaryAccuracy(yTrue, yPred) { + return tidy(() => { + const threshold = mul(0.5, onesLike(yPred)); + const yPredThresholded = cast46(greater(yPred, threshold), yTrue.dtype); + return mean(equal(yTrue, yPredThresholded), -1); + }); + } + function categoricalAccuracy(yTrue, yPred) { + return tidy(() => cast46(equal(argMax(yTrue, -1), argMax(yPred, -1)), "float32")); + } + function truePositives(yTrue, yPred) { + return tidy(() => { + return logicalAnd(yTrue.equal(1), yPred.equal(1)).sum().cast("float32"); + }); + } + function falseNegatives(yTrue, yPred) { + return tidy(() => { + return logicalAnd(yTrue.equal(1), yPred.equal(0)).sum().cast("float32"); + }); + } + function falsePositives(yTrue, yPred) { + return tidy(() => { + return logicalAnd(yTrue.equal(0), yPred.equal(1)).sum().cast("float32"); + }); + } + function precision(yTrue, yPred) { + return tidy(() => { + const tp = truePositives(yTrue, yPred); + const fp = falsePositives(yTrue, yPred); + const denominator = tp.add(fp); + return where(greater(denominator, 0), tp.div(denominator), 0).cast("float32"); + }); + } + function recall(yTrue, yPred) { + return tidy(() => { + const tp = truePositives(yTrue, yPred); + const fn = falseNegatives(yTrue, yPred); + const denominator = tp.add(fn); + return where(greater(denominator, 0), tp.div(denominator), 0).cast("float32"); + }); + } + function binaryCrossentropy2(yTrue, yPred) { + return binaryCrossentropy(yTrue, yPred); + } + function sparseCategoricalAccuracy(yTrue, yPred) { + if (yTrue.rank === yPred.rank) { + yTrue = yTrue.squeeze([yTrue.rank - 1]); + } + yPred = yPred.argMax(-1); + if (yPred.dtype !== yTrue.dtype) { + yPred = yPred.asType(yTrue.dtype); + } + return equal(yTrue, yPred).asType("float32"); + } + const mse = meanSquaredError2; + const MSE = meanSquaredError2; + const mae = meanAbsoluteError; + const MAE = meanAbsoluteError; + const mape = meanAbsolutePercentageError; + const MAPE = meanAbsolutePercentageError; + const categoricalCrossentropy2 = categoricalCrossentropy; + const cosine = cosineProximity; + const sparseCategoricalCrossentropy2 = sparseCategoricalCrossentropy; + const metricsMap = { + binaryAccuracy, + categoricalAccuracy, + precision, + categoricalCrossentropy: categoricalCrossentropy2, + sparseCategoricalCrossentropy: sparseCategoricalCrossentropy2, + mse, + MSE, + mae, + MAE, + mape, + MAPE, + cosine + }; + function get2(identifier) { + if (typeof identifier === "string" && identifier in metricsMap) { + return metricsMap[identifier]; + } else if (typeof identifier !== "string" && identifier != null) { + return identifier; + } else { + throw new ValueError(`Unknown metric ${identifier}`); + } + } + function getLossOrMetricName(fn) { + assert2(fn !== null, `Unknown LossOrMetricFn ${fn}`); + if (typeof fn === "string") { + return fn; + } else { + let fnName; + for (const key of Object.keys(lossesMap)) { + if (lossesMap[key] === fn) { + fnName = key; + break; + } + } + if (fnName !== void 0) { + return fnName; + } + for (const key of Object.keys(metricsMap)) { + if (metricsMap[key] === fn) { + fnName = key; + break; + } + } + if (fnName !== void 0) { + return fnName; + } + return fn.name; + } + } + + // node_modules/@tensorflow/tfjs-layers/dist/optimizers.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + function getOptimizer(identifier) { + const optimizerMap = { + Adagrad: () => train.adagrad(0.01), + Adadelta: () => train.adadelta(1, 0.95, epsilon()), + Adam: () => train.adam(1e-3, 0.9, 0.999, epsilon()), + Adamax: () => train.adamax(2e-3, 0.9, 0.999, epsilon(), 0), + RMSProp: () => train.rmsprop(1e-3, 0.9, 0, epsilon()), + SGD: () => train.sgd(0.01) + }; + optimizerMap["adagrad"] = optimizerMap["Adagrad"]; + optimizerMap["adadelta"] = optimizerMap["Adadelta"]; + optimizerMap["adam"] = optimizerMap["Adam"]; + optimizerMap["adamax"] = optimizerMap["Adamax"]; + optimizerMap["rmsprop"] = optimizerMap["RMSProp"]; + optimizerMap["sgd"] = optimizerMap["SGD"]; + if (identifier in optimizerMap) { + return optimizerMap[identifier](); + } + throw new ValueError(`Unknown Optimizer ${identifier}`); + } + + // node_modules/@tensorflow/tfjs-layers/dist/user_defined_metadata.js + /** + * @license + * Copyright 2019 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + const MAX_USER_DEFINED_METADATA_SERIALIZED_LENGTH = 1 * 1024 * 1024; + function checkUserDefinedMetadata(userDefinedMetadata, modelName, checkSize = false) { + if (userDefinedMetadata == null || typeof userDefinedMetadata !== "object" || Object.getPrototypeOf(userDefinedMetadata) !== Object.prototype || !plainObjectCheck(userDefinedMetadata)) { + throw new Error("User-defined metadata is expected to be a JSON object, but is not."); + } + if (checkSize) { + const out = JSON.stringify(userDefinedMetadata); + if (out.length > MAX_USER_DEFINED_METADATA_SERIALIZED_LENGTH) { + console.warn(`User-defined metadata of model "${modelName}" is too large in size (length=${out.length} when serialized). It is not recommended to store such large objects in user-defined metadata. Please make sure its serialized length is <= ${MAX_USER_DEFINED_METADATA_SERIALIZED_LENGTH}.`); + } + } + } + function plainObjectCheck(x) { + if (x === null) { + return true; + } else if (typeof x === "object") { + if (Object.getPrototypeOf(x) === Object.prototype) { + const keys = Object.keys(x); + for (const key of keys) { + if (typeof key !== "string") { + return false; + } + if (!plainObjectCheck(x[key])) { + return false; + } + } + return true; + } else { + if (Array.isArray(x)) { + for (const item of x) { + if (!plainObjectCheck(item)) { + return false; + } + } + return true; + } else { + return false; + } + } + } else { + const xType = typeof x; + return xType === "string" || xType === "number" || xType === "boolean"; + } + } + + // node_modules/@tensorflow/tfjs-layers/dist/utils/layer_utils.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + function printSummary(model2, lineLength, positions, printFn = console.log) { + const sequentialLike = isModelSequentialLike(model2); + const toDisplay = ["Layer (type)", "Output shape", "Param #"]; + if (sequentialLike) { + lineLength = lineLength || 65; + positions = positions || [0.45, 0.85, 1]; + } else { + lineLength = lineLength || 98; + positions = positions || [0.33, 0.55, 0.67, 1]; + } + if (positions[positions.length - 1] <= 1) { + positions = positions.map((p) => Math.floor(lineLength * p)); + } + let relevantNodes; + if (!sequentialLike) { + toDisplay.push("Receives inputs"); + relevantNodes = []; + for (const depth in model2.nodesByDepth) { + relevantNodes.push(...model2.nodesByDepth[depth]); + } + } + printFn("_".repeat(lineLength)); + printRow(toDisplay, positions, printFn); + printFn("=".repeat(lineLength)); + const layers = model2.layers; + for (let i = 0; i < layers.length; ++i) { + if (sequentialLike) { + printLayerSummary(layers[i], positions, printFn); + } else { + printLayerSummaryWithConnections(layers[i], positions, relevantNodes, printFn); + } + printFn((i === layers.length - 1 ? "=" : "_").repeat(lineLength)); + } + model2.checkTrainableWeightsConsistency(); + const trainableCount = countTrainableParams(model2); + const nonTrainableCount = countParamsInWeights(model2.nonTrainableWeights); + printFn(`Total params: ${trainableCount + nonTrainableCount}`); + printFn(`Trainable params: ${trainableCount}`); + printFn(`Non-trainable params: ${nonTrainableCount}`); + printFn("_".repeat(lineLength)); + } + function countTrainableParams(model2) { + let trainableCount; + if (model2.collectedTrainableWeights != null) { + trainableCount = countParamsInWeights(model2.collectedTrainableWeights); + } else { + trainableCount = countParamsInWeights(model2.trainableWeights); + } + return trainableCount; + } + function isModelSequentialLike(model2) { + let sequentialLike = true; + const nodesByDepth = []; + const nodes = []; + for (const depth in model2.nodesByDepth) { + nodesByDepth.push(model2.nodesByDepth[depth]); + } + for (const depthNodes of nodesByDepth) { + if (depthNodes.length > 1 || depthNodes.length === 1 && depthNodes[0].inboundLayers.length > 1) { + sequentialLike = false; + break; + } + nodes.push(...depthNodes); + } + if (sequentialLike) { + for (const layer of model2.layers) { + let flag = false; + for (const node of layer.inboundNodes) { + if (nodes.indexOf(node) !== -1) { + if (flag) { + sequentialLike = false; + break; + } else { + flag = true; + } + } + } + if (!sequentialLike) { + break; + } + } + } + return sequentialLike; + } + function printRow(fields, positions, printFn = console.log) { + let line = ""; + for (let i = 0; i < fields.length; ++i) { + if (i > 0) { + line = line.slice(0, line.length - 1) + " "; + } + line += fields[i]; + line = line.slice(0, positions[i]); + line += " ".repeat(positions[i] - line.length); + } + printFn(line); + } + function printLayerSummary(layer, positions, printFn) { + let outputShape; + try { + outputShape = JSON.stringify(layer.outputShape); + } catch (err) { + outputShape = "multiple"; + } + const name = layer.name; + const className = layer.getClassName(); + const fields = [`${name} (${className})`, outputShape, layer.countParams().toString()]; + printRow(fields, positions, printFn); + } + function printLayerSummaryWithConnections(layer, positions, relevantNodes, printFn) { + let outputShape; + try { + outputShape = JSON.stringify(layer.outputShape); + } catch (err) { + outputShape = "multiple"; + } + const connections = []; + for (const node of layer.inboundNodes) { + if (relevantNodes != null && relevantNodes.length > 0 && relevantNodes.indexOf(node) === -1) { + continue; + } + for (let i = 0; i < node.inboundLayers.length; ++i) { + const inboundLayer = node.inboundLayers[i].name; + const inboundLayerIndex = node.nodeIndices[i]; + const inboundTensorIndex = node.tensorIndices[i]; + connections.push(`${inboundLayer}[${inboundLayerIndex}][${inboundTensorIndex}]`); + } + } + const name = layer.name; + const className = layer.getClassName(); + const firstConnection = connections.length === 0 ? "" : connections[0]; + const fields = [ + `${name} (${className})`, + outputShape, + layer.countParams().toString(), + firstConnection + ]; + printRow(fields, positions, printFn); + for (let i = 1; i < connections.length; ++i) { + printRow(["", "", "", connections[i]], positions, printFn); + } + } + + // node_modules/@tensorflow/tfjs-layers/dist/utils/serialization_utils.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + function isArrayItemInputOrOutputName(key, index, value) { + return (key === "inboundNodes" || key === "outputLayers" || key === "inputLayers") && index === 0 && typeof value === "string"; + } + function convertPythonicToTs(pythonicConfig, key) { + if (pythonicConfig === null) { + return null; + } else if (typeof pythonicConfig === "string") { + return toCamelCase(pythonicConfig); + } else if (typeof pythonicConfig === "number" || typeof pythonicConfig === "boolean") { + return pythonicConfig; + } else if (pythonicConfig instanceof Array) { + const tsArray = []; + const arrayLength = pythonicConfig.length; + for (let i = 0; i < arrayLength; ++i) { + const item = pythonicConfig[i]; + if (isArrayItemInputOrOutputName(key, i, item)) { + tsArray.push(item); + } else { + tsArray.push(convertPythonicToTs(item, key)); + } + } + return tsArray; + } else { + const tsDict = {}; + for (const pythonicKey of Object.keys(pythonicConfig)) { + const pythonicValue = pythonicConfig[pythonicKey]; + if (pythonicKey === "name" && typeof pythonicValue === "string") { + tsDict[pythonicKey] = pythonicValue; + } else { + const tsKey = toCamelCase(pythonicKey); + tsDict[tsKey] = convertPythonicToTs(pythonicValue, tsKey); + } + } + return tsDict; + } + } + function convertTsToPythonic(tsConfig, key) { + if (tsConfig === null || tsConfig === void 0) { + return null; + } else if (typeof tsConfig === "string") { + return toSnakeCase(tsConfig); + } else if (typeof tsConfig === "number" || typeof tsConfig === "boolean") { + return tsConfig; + } else if (tsConfig instanceof Array) { + const pyArray = []; + const arrayLength = tsConfig.length; + for (let i = 0; i < arrayLength; ++i) { + const item = tsConfig[i]; + if (isArrayItemInputOrOutputName(key, i, item)) { + pyArray.push(item); + } else { + pyArray.push(convertTsToPythonic(item, key)); + } + } + return pyArray; + } else { + const pyDict = {}; + for (const tsKey of Object.keys(tsConfig)) { + const tsValue = tsConfig[tsKey]; + const pyKey = toSnakeCase(tsKey); + if ((tsKey === "name" || tsKey === "className") && typeof tsValue === "string") { + pyDict[pyKey] = tsValue; + } else { + pyDict[pyKey] = convertTsToPythonic(tsValue, tsKey); + } + } + return pyDict; + } + } + + // node_modules/@tensorflow/tfjs-layers/dist/version.js + /** @license See the LICENSE file. */ + const version2 = "2.3.0"; + + // node_modules/@tensorflow/tfjs-layers/dist/engine/executor.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + function assertFeedCompatibility(key, val) { + if (key.dtype == null || key.dtype === val.dtype) { + return val; + } + try { + return cast(val, key.dtype); + } catch (err) { + throw new ValueError(`The dtype of the feed (${val.dtype}) can not be cast to the dtype of the key '${key.name}' (${key.dtype}).`); + } + } + class FeedDict { + constructor(feeds) { + this.id2Value = {}; + this.id2Mask = {}; + this.name2Id = {}; + if (feeds instanceof FeedDict) { + for (const id in feeds.id2Value) { + this.id2Value[id] = feeds.id2Value[id]; + if (id in feeds.id2Mask) { + this.id2Mask[id] = feeds.id2Mask[id]; + } + } + } else { + if (feeds == null) { + return; + } + for (const feed of feeds) { + this.add(feed.key, feed.value); + } + } + } + add(key, value, mask) { + if (this.id2Value[key.id] == null) { + this.id2Value[key.id] = assertFeedCompatibility(key, value); + this.name2Id[key.name] = key.id; + if (mask != null) { + this.id2Mask[key.id] = mask; + } + } else { + throw new ValueError(`Duplicate key: name=${key.name}, id=${key.id}`); + } + return this; + } + addFeed(feed) { + this.add(feed.key, feed.value); + } + hasKey(key) { + return this.id2Value[key.id] != null; + } + names() { + return Object.keys(this.name2Id); + } + getValue(key) { + if (key instanceof SymbolicTensor) { + if (this.id2Value[key.id] == null) { + throw new ValueError(`Nonexistent key: ${key.name}`); + } else { + return this.id2Value[key.id]; + } + } else { + const id = this.name2Id[key]; + if (id == null) { + throw new ValueError(`Feed dict has no SymbolicTensor name: ${key}`); + } + return this.id2Value[id]; + } + } + getMask(key) { + if (key instanceof SymbolicTensor) { + if (this.id2Value[key.id] == null) { + throw new ValueError(`Nonexistent key: ${key.name}`); + } else { + return this.id2Mask[key.id]; + } + } else { + const id = this.name2Id[key]; + if (id == null) { + throw new ValueError(`Feed dict has no SymbolicTensor name: ${key}`); + } + return this.id2Mask[id]; + } + } + disposeMasks() { + if (this.id2Mask != null) { + dispose(this.id2Mask); + } + } + } + const cachedSorted = {}; + const cachedRecipientCounts = {}; + function execute(fetches, feedDict, kwargs, probe) { + const training5 = kwargs == null ? false : kwargs["training"]; + const arrayFetches = Array.isArray(fetches); + const fetchArray = arrayFetches ? fetches : [fetches]; + const outputNames = fetchArray.map((t) => t.name); + const finalOutputs = []; + const feedNames = feedDict.names(); + for (const outputName of outputNames) { + if (feedNames.indexOf(outputName) !== -1) { + finalOutputs.push(feedDict.getValue(outputName)); + } else { + finalOutputs.push(null); + } + } + if (probe != null) { + probe.maxNumTensors = -Infinity; + probe.minNumTensors = Infinity; + } + const fetchAndFeedKey = outputNames.join(",") + "|" + feedDict.names().join(","); + let sorted; + let recipientCounts; + if (cachedSorted[fetchAndFeedKey] == null) { + const out = getTopologicalSortAndRecipientCounts(fetchArray, feedDict); + sorted = out.sorted; + recipientCounts = out.recipientCounts; + cachedSorted[fetchAndFeedKey] = sorted; + cachedRecipientCounts[fetchAndFeedKey] = recipientCounts; + } + sorted = cachedSorted[fetchAndFeedKey]; + recipientCounts = {}; + if (!training5) { + Object.assign(recipientCounts, cachedRecipientCounts[fetchAndFeedKey]); + } + const internalFeedDict = new FeedDict(feedDict); + for (let i = 0; i < sorted.length; ++i) { + if (probe != null) { + const numTensors = memory().numTensors; + if (numTensors > probe.maxNumTensors) { + probe.maxNumTensors = numTensors; + } + if (numTensors < probe.minNumTensors) { + probe.minNumTensors = numTensors; + } + } + const symbolic = sorted[i]; + const srcLayer = symbolic.sourceLayer; + if (srcLayer instanceof InputLayer) { + continue; + } + const inputValues = []; + const inputMasks = []; + const tensorsToDispose = []; + let maskExists = false; + for (const input2 of symbolic.inputs) { + const value = internalFeedDict.getValue(input2); + const mask = internalFeedDict.getMask(input2); + inputValues.push(value); + inputMasks.push(mask); + if (mask != null) { + maskExists = true; + } + if (!training5) { + recipientCounts[input2.name]--; + if (recipientCounts[input2.name] === 0 && !feedDict.hasKey(input2) && outputNames.indexOf(input2.name) === -1 && !value.isDisposed && input2.sourceLayer.stateful !== true) { + tensorsToDispose.push(value); + } + } + } + if (maskExists) { + kwargs = kwargs || {}; + kwargs["mask"] = inputMasks[0]; + } + const outputTensors = toList(srcLayer.apply(inputValues, kwargs)); + let outputMask = null; + if (srcLayer.supportsMasking) { + outputMask = srcLayer.computeMask(inputValues, inputMasks); + } + const layerOutputs = getNodeOutputs(symbolic); + const outputSymbolicTensors = Array.isArray(layerOutputs) ? layerOutputs : [layerOutputs]; + for (let i2 = 0; i2 < outputSymbolicTensors.length; ++i2) { + if (!internalFeedDict.hasKey(outputSymbolicTensors[i2])) { + internalFeedDict.add(outputSymbolicTensors[i2], outputTensors[i2], Array.isArray(outputMask) ? outputMask[0] : outputMask); + } + const index = outputNames.indexOf(outputSymbolicTensors[i2].name); + if (index !== -1) { + finalOutputs[index] = outputTensors[i2]; + } + } + if (!training5) { + dispose(tensorsToDispose); + } + } + internalFeedDict.disposeMasks(); + return arrayFetches ? finalOutputs : finalOutputs[0]; + } + function getTopologicalSortAndRecipientCounts(fetches, feedDict) { + util_exports.assert(fetches != null && fetches.length > 0, () => `Expected at least one fetch, got none`); + let finalSorted = []; + let finalRecipientMap = {}; + if (fetches.length === 1) { + const out = getTopologicalSortAndRecipientCountsForOneFetch(fetches[0], feedDict); + finalSorted = out.sorted; + finalRecipientMap = out.recipientMap; + } else { + const visited = new Set(); + for (const fetch3 of fetches) { + const {sorted, recipientMap} = getTopologicalSortAndRecipientCountsForOneFetch(fetch3, feedDict); + for (const symbolicTensor of sorted) { + if (!visited.has(symbolicTensor.name)) { + finalSorted.push(symbolicTensor); + visited.add(symbolicTensor.name); + } + } + for (const name in recipientMap) { + if (finalRecipientMap[name] == null) { + finalRecipientMap[name] = new Set(); + } + recipientMap[name].forEach((recipient) => finalRecipientMap[name].add(recipient)); + } + } + } + return { + sorted: finalSorted, + recipientCounts: recipientMap2Counts(finalRecipientMap) + }; + } + function recipientMap2Counts(recipientMap) { + const recipientCounts = {}; + for (const name in recipientMap) { + recipientCounts[name] = recipientMap[name].size; + } + return recipientCounts; + } + function getTopologicalSortAndRecipientCountsForOneFetch(fetch3, feedDict) { + const visited = new Set(); + const sorted = []; + const recipientMap = {}; + for (const key of feedDict.names()) { + visited.add(key); + } + const stack7 = []; + const marks = []; + stack7.push(fetch3); + while (stack7.length > 0) { + const top = stack7[stack7.length - 1]; + if (visited.has(top.name)) { + stack7.pop(); + continue; + } + const topIsMarked = marks[marks.length - 1] === stack7.length - 1; + if (top.inputs.length === 0 || topIsMarked) { + stack7.pop(); + sorted.push(top); + visited.add(top.name); + if (topIsMarked) { + marks.pop(); + } + } else { + marks.push(stack7.length - 1); + for (const input2 of top.inputs) { + if (recipientMap[input2.name] == null) { + recipientMap[input2.name] = new Set(); + } + recipientMap[input2.name].add(top.name); + if (visited.has(input2.name)) { + continue; + } + stack7.push(input2); + } + } + } + return {sorted, recipientMap}; + } + function getNodeOutputs(fetch3) { + let layerOutputs; + if (fetch3.sourceLayer.inboundNodes.length === 1) { + layerOutputs = fetch3.sourceLayer.output; + } else { + let nodeIndex = null; + for (let i = 0; i < fetch3.sourceLayer.inboundNodes.length; ++i) { + for (const outputTensor of fetch3.sourceLayer.inboundNodes[i].outputTensors) { + if (outputTensor.id === fetch3.id) { + nodeIndex = i; + break; + } + } + } + layerOutputs = fetch3.sourceLayer.getOutputAt(nodeIndex); + } + return layerOutputs; + } + + // node_modules/@tensorflow/tfjs-layers/dist/engine/container.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + class Container extends Layer { + constructor(args) { + super({}); + this.containerNodes = new Set(); + this.name = args.name; + if (this.name == null) { + const prefix = this.getClassName().toLowerCase(); + this.name = getUid(prefix); + } + this.supportsMasking = false; + this.trainable_ = true; + if (Array.isArray(args.inputs)) { + this.inputs = args.inputs.slice(); + } else { + this.inputs = [args.inputs]; + } + if (Array.isArray(args.outputs)) { + this.outputs = args.outputs.slice(); + } else { + this.outputs = [args.outputs]; + } + if (unique(this.inputs).length !== this.inputs.length) { + throw new ValueError(`The list of inputs passed to the model is redundant. All inputs should only appear once. Found: ${this.inputs.map((x) => x.name)}`); + } + if (unique(this.outputs).length !== this.outputs.length) { + console.warn(`The list of outputs passed to the model is redundant. All outputs should only appear once. Found: ${this.outputs.map((x) => x.name)}`); + } + this.inputLayers = []; + this.inputLayersNodeIndices = []; + this.inputLayersTensorIndices = []; + this.outputLayers = []; + this.outputLayersNodeIndices = []; + this.outputLayersTensorIndices = []; + this.layers = []; + this.internalContainerRefs = []; + for (const x of this.outputs) { + const layer = x.sourceLayer; + const nodeIndex = x.nodeIndex; + const tensorIndex = x.tensorIndex; + this.outputLayers.push(layer); + this.outputLayersNodeIndices.push(nodeIndex); + this.outputLayersTensorIndices.push(tensorIndex); + } + for (const x of this.inputs) { + const layer = x.sourceLayer; + const nodeIndex = x.nodeIndex; + const tensorIndex = x.tensorIndex; + assert2(nodeIndex === 0, "input layer has >1 nodes"); + assert2(tensorIndex === 0, "input layer has >1 tensors"); + this.inputLayers.push(layer); + this.inputLayersNodeIndices.push(nodeIndex); + this.inputLayersTensorIndices.push(tensorIndex); + } + this.inputNames = []; + this.outputNames = []; + this.feedInputShapes = []; + this.feedInputNames = []; + this.feedOutputNames = []; + for (let i = 0; i < this.inputLayers.length; i++) { + const layer = this.inputLayers[i]; + if (!(layer instanceof InputLayer)) { + throw new TypeError(`Input layers to a LayersModel must be InputLayer objects. Received inputs: ${args.inputs}. Input ${i} (0-based) originates from layer type ${layer.getClassName()}.`); + } + this.inputNames.push(layer.name); + this.feedInputShapes.push(layer.batchInputShape); + this.feedInputNames.push(layer.name); + } + for (const layer of this.outputLayers) { + this.outputNames.push(layer.name); + } + this.internalInputShapes = this.inputs.map((x) => x.shape); + this.internalOutputShapes = this.outputs.map((x) => x.shape); + const nodesDepths = {}; + const nodeIDToNode = {}; + const layersDepths = {}; + const layerIDToLayer = {}; + const layerIndices = {}; + const nodesInDecreasingDepth = []; + const buildMapOfGraph = (tensor17, finishedNodes2, nodesInProgress2, layer, nodeIndex, tensorIndex) => { + if (layer == null || nodeIndex == null || tensorIndex == null) { + layer = tensor17.sourceLayer; + nodeIndex = tensor17.nodeIndex; + tensorIndex = tensor17.tensorIndex; + } + const node = layer.inboundNodes[nodeIndex]; + if (nodesInProgress2.indexOf(node) !== -1) { + throw new RuntimeError(`The tensor ${tensor17.name} at layer "${layer.name}" is part of a cycle.`); + } + if (finishedNodes2.indexOf(node) !== -1) { + return; + } + this.containerNodes.add(Container.nodeKey(layer, nodeIndex)); + if (!(layer.id in layerIndices)) { + layerIndices[layer.id] = Object.keys(layerIndices).length; + } + if (nodesInProgress2.indexOf(node) === -1) { + nodesInProgress2.push(node); + } + const numInboundLayers = node.inboundLayers.length; + for (let i = 0; i < numInboundLayers; i++) { + const x = node.inputTensors[i]; + const layer2 = node.inboundLayers[i]; + const nodeIndex2 = node.nodeIndices[i]; + const tensorIndex2 = node.tensorIndices[i]; + buildMapOfGraph(x, finishedNodes2, nodesInProgress2, layer2, nodeIndex2, tensorIndex2); + } + finishedNodes2.push(node); + while (nodesInProgress2.indexOf(node) >= 0) { + nodesInProgress2.splice(nodesInProgress2.indexOf(node), 1); + } + nodesInDecreasingDepth.push(node); + }; + const finishedNodes = []; + const nodesInProgress = []; + for (const x of this.outputs) { + buildMapOfGraph(x, finishedNodes, nodesInProgress); + } + const reversedNodesInDecreasingDepth = nodesInDecreasingDepth.slice().reverse(); + for (const node of reversedNodesInDecreasingDepth) { + nodeIDToNode[node.id] = node; + if (!(node.id in nodesDepths)) { + nodesDepths[node.id] = 0; + } + let depth = nodesDepths[node.id]; + const previousDepth = layersDepths[node.outboundLayer.id] == null ? 0 : layersDepths[node.outboundLayer.id]; + depth = Math.max(depth, previousDepth); + layersDepths[node.outboundLayer.id] = depth; + layerIDToLayer[node.outboundLayer.id] = node.outboundLayer; + nodesDepths[node.id] = depth; + for (let i = 0; i < node.inboundLayers.length; i++) { + const inboundLayer = node.inboundLayers[i]; + const nodeIndex = node.nodeIndices[i]; + const inboundNode = inboundLayer.inboundNodes[nodeIndex]; + const previousDepth2 = nodesDepths[inboundNode.id] == null ? 0 : nodesDepths[inboundNode.id]; + nodesDepths[inboundNode.id] = Math.max(depth + 1, previousDepth2); + nodeIDToNode[inboundNode.id] = inboundNode; + } + } + const nodesByDepth = {}; + for (const nodeID in nodesDepths) { + const depth = nodesDepths[nodeID]; + if (!(depth in nodesByDepth)) { + nodesByDepth[depth] = []; + } + nodesByDepth[depth].push(nodeIDToNode[nodeID]); + } + const layersByDepth = {}; + for (const layerID in layersDepths) { + const depth = layersDepths[layerID]; + if (!(depth in layersByDepth)) { + layersByDepth[depth] = []; + } + layersByDepth[depth].push(layerIDToLayer[layerID]); + } + let depthKeys = Object.keys(layersByDepth).map((x) => parseInt(x, 10)).sort(reverseNumberCompare); + this.layers = []; + for (const depth of depthKeys) { + const layersForDepth = layersByDepth[depth]; + layersForDepth.sort((a, b) => { + const aIndex = layerIndices[a.id]; + const bIndex = layerIndices[b.id]; + if (aIndex < bIndex) { + return -1; + } + if (aIndex > bIndex) { + return 1; + } + return 0; + }); + for (const layer of layersForDepth) { + if (layer instanceof Container) { + this.internalContainerRefs.push(layer); + } + this.layers.push(layer); + } + } + this.layersByDepth = layersByDepth; + depthKeys = Object.keys(nodesByDepth).map((x) => parseInt(x, 10)).sort(reverseNumberCompare); + const computableTensors = this.inputs.slice(); + const layersWithCompleteInput = []; + for (const depth of depthKeys) { + for (const node of nodesByDepth[depth]) { + const layer = node.outboundLayer; + if (layer != null) { + for (const x of node.inputTensors) { + if (computableTensors.indexOf(x) === -1) { + throw new RuntimeError(`Graph disconnected: cannot obtain value for tensor ${x} at layer "${layer.name}". The following previous layers were accessed without issue: ${layersWithCompleteInput}`); + } + } + for (const x of node.outputTensors) { + computableTensors.push(x); + } + layersWithCompleteInput.push(layer.name); + } + } + } + this.nodesByDepth = nodesByDepth; + const allNames = this.layers.map((x) => x.name); + for (const name of allNames) { + const numOccurrences = allNames.filter((x) => x === name).length; + if (numOccurrences !== 1) { + throw new RuntimeError(`The name "${name}" is used ${numOccurrences} times in the model. All layer names should be unique. Layer names: ` + JSON.stringify(allNames)); + } + } + this.outboundNodes = []; + this.inboundNodes = []; + new Node({ + outboundLayer: this, + inboundLayers: [], + nodeIndices: [], + tensorIndices: [], + inputTensors: this.inputs, + outputTensors: this.outputs, + inputMasks: this.inputs.map((x) => null), + outputMasks: this.outputs.map((x) => null), + inputShapes: this.inputs.map((x) => x.shape), + outputShapes: this.outputs.map((x) => x.shape) + }); + this.built = true; + this._refCount = 1; + } + assertNotDisposed() { + if (this._refCount === 0) { + throw new Error(`Container '${this.name}' is already disposed.`); + } + } + dispose() { + this.assertNotDisposed(); + const result = {refCountAfterDispose: null, numDisposedVariables: 0}; + if (--this._refCount === 0) { + for (const layer of this.layers) { + result.numDisposedVariables += layer.dispose().numDisposedVariables; + } + for (const container2 of this.internalContainerRefs) { + result.numDisposedVariables += container2.dispose().numDisposedVariables; + } + } + result.refCountAfterDispose = this._refCount; + return result; + } + get trainable() { + return this.trainable_; + } + set trainable(trainable) { + this.layers.forEach((layer) => { + layer._trainableWeights.forEach((w) => w.trainable = trainable); + }); + this.trainable_ = trainable; + } + get trainableWeights() { + if (this._trainableWeights.length > 0) { + throw new ValueError("Container instance unexpectedly contains _trainableWeights.The trainable weights of a Container are a union of the trainable weights of its consituent Layers. Its own _trainableWeights must remain an empty Array."); + } + if (!this.trainable) { + return []; + } + let weights = []; + for (const layer of this.layers) { + weights = weights.concat(layer.trainableWeights); + } + return weights; + } + get nonTrainableWeights() { + const weights = []; + for (const layer of this.layers) { + weights.push(...layer.nonTrainableWeights); + } + if (!this.trainable) { + const trainableWeights = []; + for (const layer of this.layers) { + trainableWeights.push(...layer.trainableWeights); + } + return trainableWeights.concat(weights); + } + return weights; + } + get weights() { + return this.trainableWeights.concat(this.nonTrainableWeights); + } + loadWeights(weights, strict = true) { + const nameToWeight = {}; + let totalWeightsCount = 0; + for (const layer of this.layers) { + for (const weight of layer.weights) { + if (nameToWeight[weight.originalName] != null) { + throw new ValueError(`Duplicate weight name: ${weight.originalName}`); + } + nameToWeight[weight.originalName] = weight; + totalWeightsCount++; + } + } + const weightValueTuples = []; + for (const name in weights) { + let validatedName = name; + if (nameToWeight[name] == null) { + const tokens = name.split("/"); + const shortenNameArray = tokens.slice(0, -2).concat([tokens[tokens.length - 1]]); + validatedName = shortenNameArray.join("/"); + } + if (nameToWeight[validatedName] != null) { + weightValueTuples.push([nameToWeight[validatedName], weights[name]]); + } else if (strict) { + throw new ValueError(`Provided weight data has no target variable: ${name}`); + } + delete nameToWeight[validatedName]; + } + if (strict) { + const unsetNames = []; + for (const name in nameToWeight) { + unsetNames.push(name); + } + if (unsetNames.length > 0) { + throw new ValueError(`${unsetNames.length} of ${totalWeightsCount} weights are not set: ${unsetNames}`); + } + } + batchSetValue(weightValueTuples); + } + updatedConfig() { + const theConfig = this.getConfig(); + const modelConfig = {}; + modelConfig["className"] = this.getClassName(); + modelConfig["config"] = theConfig; + modelConfig["kerasVersion"] = `tfjs-layers ${version2}`; + modelConfig["backend"] = "TensorFlow.js"; + return modelConfig; + } + toJSON(unused, returnString = true) { + const modelConfig = convertTsToPythonic(this.updatedConfig()); + return returnString ? JSON.stringify(modelConfig) : modelConfig; + } + call(inputs, kwargs) { + return tidy(() => { + inputs = toList(inputs); + const feedDict = new FeedDict(); + for (let i = 0; i < this.inputs.length; ++i) { + feedDict.add(this.inputs[i], inputs[i]); + } + return execute(this.outputs, feedDict, kwargs); + }); + } + computeMask(inputs, mask) { + return tidy(() => { + inputs = toList(inputs); + let masks; + if (mask == null) { + masks = pyListRepeat(null, inputs.length); + } else { + masks = toList(mask); + } + return this.runInternalGraph(inputs, masks)[1]; + }); + } + computeOutputShape(inputShape) { + const inputShapes = normalizeShapeList(inputShape); + if (inputShapes.length !== this.inputLayers.length) { + throw new ValueError(`Invalid inputShape argument ${inputShape}: model has ${this.inputLayers.length} tensor inputs.`); + } + const layersToOutputShapes = {}; + for (let i = 0; i < inputShapes.length; i++) { + const layer = this.inputLayers[i]; + const inputShape2 = inputShapes[i]; + const shapeKey = layer.name + "_0_0"; + layersToOutputShapes[shapeKey] = inputShape2; + } + const depthKeys = Object.keys(this.nodesByDepth).map((x) => parseInt(x, 10)).sort(reverseNumberCompare); + if (depthKeys.length > 1) { + for (const depth of depthKeys) { + const nodes = this.nodesByDepth[depth]; + for (const node of nodes) { + const layer = node.outboundLayer; + if (this.inputLayers.map((x) => x.id).indexOf(layer.id) !== -1) { + continue; + } + const inputShapes2 = []; + for (let j = 0; j < node.inboundLayers.length; j++) { + const inboundLayer = node.inboundLayers[j]; + const nodeIndex2 = node.nodeIndices[j]; + const tensorIndex = node.tensorIndices[j]; + const shapeKey = `${inboundLayer.name}_${nodeIndex2}_${tensorIndex}`; + const inputShape2 = layersToOutputShapes[shapeKey]; + inputShapes2.push(inputShape2); + } + const outputShape = layer.computeOutputShape(singletonOrArray(inputShapes2)); + const outputShapes2 = normalizeShapeList(outputShape); + const nodeIndex = layer.inboundNodes.indexOf(node); + for (let j = 0; j < outputShapes2.length; j++) { + const shapeKey = `${layer.name}_${nodeIndex}_${j}`; + layersToOutputShapes[shapeKey] = outputShapes2[j]; + } + } + } + } + const outputShapes = []; + const outputShapeKeys = []; + for (let i = 0; i < this.outputLayers.length; i++) { + const layer = this.outputLayers[i]; + const nodeIndex = this.outputLayersNodeIndices[i]; + const tensorIndex = this.outputLayersTensorIndices[i]; + const shapeKey = `${layer.name}_${nodeIndex}_${tensorIndex}`; + outputShapeKeys.push(shapeKey); + } + for (let i = 0; i < outputShapeKeys.length; i++) { + const key = outputShapeKeys[i]; + assert2(key in layersToOutputShapes); + outputShapes.push(layersToOutputShapes[key]); + } + return singletonOrArray(outputShapes); + } + runInternalGraph(inputs, masks) { + if (masks == null) { + masks = pyListRepeat(null, inputs.length); + } + const tensorMap = {}; + for (let i = 0; i < this.inputs.length; ++i) { + const x = this.inputs[i]; + const y = inputs[i]; + const mask = masks[i]; + tensorMap[x.id] = [y, mask]; + } + const depthKeys = Object.keys(this.nodesByDepth).map((x) => parseInt(x, 10)).sort(reverseNumberCompare); + for (const depth of depthKeys) { + const nodes = this.nodesByDepth[depth]; + for (const node of nodes) { + const layer = node.outboundLayer; + const referenceInputTensors = node.inputTensors; + const referenceOutputTensors = node.outputTensors; + const computedData = new Array(); + for (const x of referenceInputTensors) { + if (x.id in tensorMap) { + computedData.push(tensorMap[x.id]); + } + } + if (computedData.length === referenceInputTensors.length) { + let kwargs = {}; + let computedTensors; + let computedMasks; + let outputTensors2; + let outputMasks2; + if (node.callArgs != null) { + kwargs = node.callArgs; + } + if (computedData.length === 1) { + const [computedTensor, computedMask] = computedData[0]; + if (kwargs["mask"] == null) { + kwargs["mask"] = computedMask; + } + outputTensors2 = toList(layer.call(computedTensor, kwargs)); + outputMasks2 = toList(layer.computeMask(computedTensor, computedMask)); + computedTensors = [computedTensor]; + computedMasks = [computedMask]; + } else { + computedTensors = computedData.map((x) => x[0]); + computedMasks = computedData.map((x) => x[1]); + if (kwargs["mask"] == null) { + kwargs["mask"] = computedMasks; + } + outputTensors2 = toList(layer.call(computedTensors, kwargs)); + outputMasks2 = toList(layer.computeMask(computedTensors, computedMasks)); + } + if (layer.activityRegularizer) { + throw new NotImplementedError("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet."); + } + for (let i = 0; i < referenceOutputTensors.length; ++i) { + const x = referenceOutputTensors[i]; + const y = outputTensors2[i]; + const mask = outputMasks2[i]; + tensorMap[x.id] = [y, mask]; + } + } + } + } + const outputTensors = []; + const outputMasks = []; + const outputShapes = []; + for (const x of this.outputs) { + assert2(x.id in tensorMap, `Could not compute output ${x.name} : ${x.id}`); + const [tensor17, mask] = tensorMap[x.id]; + outputShapes.push(tensor17.shape); + outputTensors.push(tensor17); + outputMasks.push(mask); + } + return [outputTensors, outputMasks, outputShapes]; + } + buildNodeConversionMap(layers) { + const nodeConversionMap = {}; + let keptNodes; + for (const layer of this.layers) { + keptNodes = layer instanceof Container ? 1 : 0; + for (let originalNodeIndex = 0; originalNodeIndex < layer.inboundNodes.length; originalNodeIndex++) { + const nodeKey = Container.nodeKey(layer, originalNodeIndex); + if (this.containerNodes.has(nodeKey)) { + nodeConversionMap[nodeKey] = keptNodes; + keptNodes += 1; + } + } + } + return nodeConversionMap; + } + getLayer(name, index) { + if (index != null) { + if (this.layers.length <= index) { + throw new ValueError(`Was asked to retrieve layer at index ${index}, but model only has ${this.layers.length} layer(s).`); + } else { + return this.layers[index]; + } + } else { + if (name == null) { + throw new ValueError("Provide either a layer name or layer index"); + } + } + for (const layer of this.layers) { + if (layer.name === name) { + return layer; + } + } + throw new ValueError(`No such layer: ${name}`); + } + calculateLosses() { + return tidy(() => { + const losses8 = []; + for (const layer of this.layers) { + for (let nodeIndex = 0; nodeIndex < layer.inboundNodes.length; ++nodeIndex) { + const nodeKey = Container.nodeKey(layer, nodeIndex); + if (this.containerNodes.has(nodeKey)) { + losses8.push(...layer.calculateLosses()); + } + } + } + return losses8; + }); + } + getConfig() { + const config2 = {name: this.name}; + const nodeConversionMap = this.buildNodeConversionMap(this.layers); + const layerConfigs = []; + for (const layer of this.layers) { + const layerClassName = layer.getClassName(); + const layerConfig = layer.getConfig(); + const filteredInboundNodes = []; + for (let originalNodeIndex = 0; originalNodeIndex < layer.inboundNodes.length; originalNodeIndex++) { + const node = layer.inboundNodes[originalNodeIndex]; + const nodeKey = Container.nodeKey(layer, originalNodeIndex); + let kwargs = {}; + if (this.containerNodes.has(nodeKey)) { + if (node.callArgs) { + try { + JSON.stringify(node.callArgs); + kwargs = node.callArgs; + } catch (err) { + console.warn(`Layer ${layer.name} was passed non-serializable keyword arguments: ${node.callArgs}. They will not be included in the serialized model (and thus will be missing at deserialization time).`); + kwargs = {}; + } + } + if (node.inboundLayers.length > 0) { + const nodeData = []; + for (let i = 0; i < node.inboundLayers.length; i++) { + const inboundLayer = node.inboundLayers[i]; + const nodeIndex = node.nodeIndices[i]; + const tensorIndex = node.tensorIndices[i]; + const nodeKey2 = Container.nodeKey(inboundLayer, nodeIndex); + let newNodeIndex = nodeConversionMap[nodeKey2]; + if (newNodeIndex == null) { + newNodeIndex = 0; + } + nodeData.push([inboundLayer.name, newNodeIndex, tensorIndex, kwargs]); + } + filteredInboundNodes.push(nodeData); + } + } + } + const dict = {}; + dict["name"] = layer.name; + dict["className"] = layerClassName; + dict["config"] = layerConfig; + dict["inboundNodes"] = filteredInboundNodes; + layerConfigs.push(dict); + } + config2["layers"] = layerConfigs; + const modelInputs = []; + for (let i = 0; i < this.inputLayers.length; i++) { + const layer = this.inputLayers[i]; + const nodeIndex = this.inputLayersNodeIndices[i]; + const nodeKey = Container.nodeKey(layer, nodeIndex); + if (!this.containerNodes.has(nodeKey)) { + continue; + } + let newNodeIndex = nodeConversionMap[nodeKey]; + if (newNodeIndex === null || newNodeIndex === void 0) { + newNodeIndex = 0; + } + const tensorIndex = this.inputLayersTensorIndices[i]; + modelInputs.push([layer.name, newNodeIndex, tensorIndex]); + } + config2["inputLayers"] = modelInputs; + const modelOutputs = []; + for (let i = 0; i < this.outputLayers.length; i++) { + const layer = this.outputLayers[i]; + const nodeIndex = this.outputLayersNodeIndices[i]; + const nodeKey = Container.nodeKey(layer, nodeIndex); + if (!this.containerNodes.has(nodeKey)) { + continue; + } + let newNodeIndex = nodeConversionMap[nodeKey]; + if (newNodeIndex === null || newNodeIndex === void 0) { + newNodeIndex = 0; + } + const tensorIndex = this.outputLayersTensorIndices[i]; + modelOutputs.push([layer.name, newNodeIndex, tensorIndex]); + } + config2["outputLayers"] = modelOutputs; + return config2; + } + static fromConfig(cls, config2, customObjects = {}, fastWeightInit = false) { + const createdLayers = {}; + const unprocessedNodes = {}; + function addUnprocessedNode(layer, nodeData) { + if (!(layer.name in unprocessedNodes)) { + unprocessedNodes[layer.name] = [nodeData]; + } else { + unprocessedNodes[layer.name].push(nodeData); + } + } + function processNode(layer, nodeData) { + const inputTensors2 = []; + let kwargs; + for (const inputData of nodeData) { + const inboundLayerName = inputData[0]; + const inboundNodeIndex = inputData[1]; + const inboundTensorIndex = inputData[2]; + kwargs = inputData[3] == null ? {} : inputData[3]; + if (!(inboundLayerName in createdLayers)) { + addUnprocessedNode(layer, nodeData); + return; + } + const inboundLayer = createdLayers[inboundLayerName]; + if (inboundLayer.inboundNodes.length <= inboundNodeIndex) { + addUnprocessedNode(layer, nodeData); + return; + } + const inboundNode = inboundLayer.inboundNodes[inboundNodeIndex]; + inputTensors2.push(inboundNode.outputTensors[inboundTensorIndex]); + } + if (inputTensors2.length > 0) { + layer.apply(singletonOrArray(inputTensors2), kwargs); + } + } + function processLayer(layerData) { + const layerName = layerData["name"]; + const layer = deserialize(layerData, config2["customObjects"] != null ? config2["customObjects"] : {}); + layer.setFastWeightInitDuringBuild(fastWeightInit); + createdLayers[layerName] = layer; + const inboundNodesData = layerData["inboundNodes"]; + inboundNodesData.forEach((nodeData) => { + if (!(nodeData instanceof Array)) { + throw new ValueError(`Corrupted configuration, expected array for nodeData: ${nodeData}`); + } + addUnprocessedNode(layer, nodeData); + }); + } + const name = config2["name"]; + const layersFromConfig = config2["layers"]; + for (const layerData of layersFromConfig) { + processLayer(layerData); + } + while (!isObjectEmpty(unprocessedNodes)) { + for (const layerData of layersFromConfig) { + const layer = createdLayers[layerData["name"]]; + if (layer.name in unprocessedNodes) { + const currentUnprocessedNodesForLayer = unprocessedNodes[layer.name]; + delete unprocessedNodes[layer.name]; + for (const nodeData of currentUnprocessedNodesForLayer) { + processNode(layer, nodeData); + } + } + } + } + const inputTensors = []; + const outputTensors = []; + const inputLayersFromConfig = config2["inputLayers"]; + for (const layerData of inputLayersFromConfig) { + const layerName = layerData[0]; + const nodeIndex = layerData[1]; + const tensorIndex = layerData[2]; + assert2(layerName in createdLayers); + const layer = createdLayers[layerName]; + const layerOutputTensors = layer.inboundNodes[nodeIndex].outputTensors; + inputTensors.push(layerOutputTensors[tensorIndex]); + } + const outputLayersFromConfig = config2["outputLayers"]; + for (const layerData of outputLayersFromConfig) { + const layerName = layerData[0]; + const nodeIndex = layerData[1]; + const tensorIndex = layerData[2]; + assert2(layerName in createdLayers); + const layer = createdLayers[layerName]; + const layerOutputTensors = layer.inboundNodes[nodeIndex].outputTensors; + outputTensors.push(layerOutputTensors[tensorIndex]); + } + return new cls({inputs: inputTensors, outputs: outputTensors, name}); + } + get stateful() { + if (this._stateful) { + throw new ValueError("Container instance unexpectedly has _stateful = true. The statefulness of a Container is determined by the Layers it contains. Its _stateful property must remain the default false."); + } + for (const layer of this.layers) { + if (layer.stateful) { + return true; + } + } + return false; + } + resetStates() { + tidy(() => { + this.layers.forEach((layer) => { + if (layer.stateful) { + layer.resetStates(); + } + }); + }); + } + } + + // node_modules/@tensorflow/tfjs-layers/dist/engine/training_utils.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + function standardizeSampleOrClassWeights(xWeight, outputNames, weightType) { + const numOutputs = outputNames.length; + if (xWeight == null || Array.isArray(xWeight) && xWeight.length === 0) { + return outputNames.map((name) => null); + } + if (numOutputs === 1) { + if (Array.isArray(xWeight) && xWeight.length === 1) { + return xWeight; + } else if (typeof xWeight === "object" && outputNames[0] in xWeight) { + return [xWeight[outputNames[0]]]; + } else { + return [xWeight]; + } + } + if (Array.isArray(xWeight)) { + if (xWeight.length !== numOutputs) { + throw new Error(`Provided ${weightType} is an array of ${xWeight.length} element(s), but the model has ${numOutputs} outputs. Make sure a set of weights is provided for each model output.`); + } + return xWeight; + } else if (typeof xWeight === "object" && Object.keys(xWeight).length > 0 && typeof xWeight[Object.keys(xWeight)[0]] === "object") { + const output = []; + outputNames.forEach((outputName) => { + if (outputName in xWeight) { + output.push(xWeight[outputName]); + } else { + output.push(null); + } + }); + return output; + } else { + throw new Error(`The model has multiple (${numOutputs}) outputs, so ${weightType} must be either an array with ${numOutputs} elements or an object with ${outputNames} keys. Provided ${weightType} not understood: ${JSON.stringify(xWeight)}`); + } + } + function standardizeClassWeights(classWeight, outputNames) { + return standardizeSampleOrClassWeights(classWeight, outputNames, "classWeight"); + } + async function standardizeWeights(y, sampleWeight, classWeight, sampleWeightMode) { + if (sampleWeight != null || sampleWeightMode != null) { + throw new Error("Support sampleWeight is not implemented yet"); + } + if (classWeight != null) { + const yClasses = tidy(() => { + if (y.shape.length === 1) { + return y.clone(); + } else if (y.shape.length === 2) { + if (y.shape[1] > 1) { + const axis = 1; + return y.argMax(axis); + } else if (y.shape[1] === 1) { + return y.reshape([y.shape[0]]); + } else { + throw new Error(`Encountered unexpected last-dimension size (${y.shape[1]}) during handling of class weights. The size is expected to be >= 1.`); + } + } else { + throw new Error(`Unexpected rank of target (y) tensor (${y.rank}) during handling of class weights. The rank is expected to be 1 or 2.`); + } + }); + const yClassIndices = Array.from(await yClasses.data()); + dispose(yClasses); + const classSampleWeight = []; + yClassIndices.forEach((classIndex) => { + if (classWeight[classIndex] == null) { + throw new Error(`classWeight must contain all classes in the training data. The class ${classIndex} exists in the data but not in classWeight`); + } else { + classSampleWeight.push(classWeight[classIndex]); + } + }); + return tensor1d(classSampleWeight, "float32"); + } else { + return null; + } + } + function computeWeightedLoss2(losses8, sampleWeights) { + return mul(losses8, sampleWeights); + } + + // node_modules/@tensorflow/tfjs-layers/dist/engine/training_dataset.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + const DEFAULT_VALIDATION_BATCH_SIZE = 32; + function standardizeDataIteratorOutput(model2, iteratorOut) { + let xs; + let ys; + const iteratorOutObj = iteratorOut; + xs = iteratorOutObj["xs"]; + ys = iteratorOutObj["ys"]; + util_exports.assert(xs != null && ys != null, () => `A Dataset iterator for fitDataset() is expected to generate objects of the form \`{xs: xVal, ys: yVal}\`, where the two values may be \`tf.Tensor\`, an array of Tensors, or a map of string to Tensor. The provided Dataset instead generates ${iteratorOut}`); + const flattenedXs = flattenTensorOrArrayOrMap("input", model2.inputNames, xs); + const flattenedYs = flattenTensorOrArrayOrMap("output", model2.outputNames, ys); + const batchSize = flattenedXs[0].shape[0]; + util_exports.assert(flattenedXs.length === model2.inputs.length, () => `LayersModel has ${model2.inputs.length} inputs, but the dataset provides ${flattenedXs.length} inputs. (Expected input keys: ${JSON.stringify(model2.inputNames)})`); + util_exports.assert(flattenedYs.length === model2.outputs.length, () => `LayersModel has ${model2.outputs.length} outputs, but the dataset provides ${flattenedYs.length} outputs. (Expected output keys: ${JSON.stringify(model2.outputNames)})`); + for (let xIndex = 0; xIndex < flattenedXs.length; xIndex++) { + util_exports.assert(flattenedXs[xIndex].shape[0] === batchSize, () => `Batch size mismatch: input ${model2.inputNames[xIndex]} has ${flattenedXs[xIndex].shape[0]}; expected ${batchSize} based on input ${model2.inputNames[0]}.`); + } + for (let yIndex = 0; yIndex < flattenedYs.length; yIndex++) { + util_exports.assert(flattenedYs[yIndex].shape[0] === batchSize, () => `Batch size mismatch: output ${model2.outputNames[yIndex]} has ${flattenedYs[yIndex].shape[0]}; expected ${batchSize} based on input ${model2.inputNames[0]}.`); + } + return {xs: flattenedXs, ys: flattenedYs}; + } + function flattenTensorOrArrayOrMap(inputOrOutput, names, values) { + if (values instanceof Tensor) { + return [values]; + } else if (Array.isArray(values)) { + util_exports.assert(values.length === names.length, () => `Received an array of ${values.length} Tensors, but expected ${names.length} to match the ${inputOrOutput} keys ${names}.`); + return values; + } else { + const result = []; + for (const name of names) { + if (values[name] == null) { + throw new ValueError(`The feature data generated by the dataset lacks the required ${inputOrOutput} key '${name}'.`); + } + result.push(values[name]); + } + return result; + } + } + function standardizeTensorValidationData(data) { + if (data.length === 3) { + throw new NotImplementedError("Validation with sample weights is not implemented yet."); + } + return {xs: data[0], ys: data[1]}; + } + async function fitDataset(model2, dataset5, args) { + const hasBatchesPerEpoch = args.batchesPerEpoch != null; + util_exports.assert(model2.optimizer != null, () => "You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig)."); + util_exports.assert(args != null, () => `For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call.`); + util_exports.assert(args.epochs != null && args.epochs > 0 && Number.isInteger(args.epochs), () => `For fitDataset(), config.epochs is expected to be a positive integer, but got ${args.epochs}`); + util_exports.assert(!hasBatchesPerEpoch || args.batchesPerEpoch > 0 && Number.isInteger(args.batchesPerEpoch), () => `For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${args.batchesPerEpoch}`); + util_exports.assert(args["validationSplit"] == null, () => "`validationSplit` is not supported by `fitDataset()`. Use validationData instead."); + if (model2.isTraining) { + throw new Error("Cannot start training because another fit() call is ongoing."); + } + model2.isTraining = true; + try { + const doValidation = args.validationData != null; + let valXs; + let valYs; + if (doValidation) { + if (isDatasetObject(args.validationData)) { + util_exports.assert(args.validationBatches == null || args.validationBatches > 0 && Number.isInteger(args.validationBatches), () => `For fitDataset() with dataset-based validation, config.validationBatches is expected not to be provided, or to be a positive integer, but got ${args.validationBatches}`); + } else { + const validationData = standardizeTensorValidationData(args.validationData); + valXs = validationData.xs; + valYs = validationData.ys; + } + } + const trainFunction = model2.makeTrainFunction(); + const outLabels = model2.getDedupedMetricsNames(); + let callbackMetrics; + if (doValidation) { + callbackMetrics = outLabels.slice().concat(outLabels.map((n) => "val_" + n)); + } else { + callbackMetrics = outLabels.slice(); + } + const callbacks3 = standardizeCallbacks(args.callbacks, args.yieldEvery); + const verbose = args.verbose == null ? 1 : args.verbose; + const {callbackList, history} = configureCallbacks(callbacks3, verbose, args.epochs, null, null, getStepsPerEpoch(dataset5, args), null, doValidation, callbackMetrics); + callbackList.setModel(model2); + model2.history = history; + await callbackList.onTrainBegin(); + model2.stopTraining_ = false; + let epoch = args.initialEpoch == null ? 0 : args.initialEpoch; + let dataIterator = await dataset5.iterator(); + while (epoch < args.epochs) { + const epochLogs = {}; + await callbackList.onEpochBegin(epoch); + let stepsDone = 0; + let batchIndex = 0; + if (!hasBatchesPerEpoch) { + dataIterator = await dataset5.iterator(); + } + while (hasBatchesPerEpoch ? stepsDone < args.batchesPerEpoch : true) { + const iteratorOut = await dataIterator.next(); + if (hasBatchesPerEpoch && iteratorOut.done) { + console.warn(`You provided \`batchesPerEpoch\` as ${args.batchesPerEpoch}, but your dataset iterator ran out of data after ${stepsDone} batches; interrupting training. Make sure that your dataset can generate at least \`batchesPerEpoch * epochs\` batches (in this case, ${args.batchesPerEpoch * args.epochs} batches). You may need to use the repeat() function when building your dataset.`); + break; + } + if (iteratorOut.value != null) { + const {xs, ys} = standardizeDataIteratorOutput(model2, iteratorOut.value); + const batchLogs = {}; + batchLogs["batch"] = batchIndex; + batchLogs["size"] = xs[0].shape[0]; + await callbackList.onBatchBegin(batchIndex, batchLogs); + const sampleWeights = []; + if (args.classWeight != null) { + const standardClassWeights = standardizeClassWeights(args.classWeight, model2.outputNames); + for (let i = 0; i < standardClassWeights.length; ++i) { + sampleWeights.push(await standardizeWeights(ys[i], null, standardClassWeights[i])); + } + } + const ins = xs.concat(ys).concat(sampleWeights); + const outs = trainFunction(ins); + dispose(ins); + for (let i = 0; i < outLabels.length; ++i) { + const label = outLabels[i]; + const out = outs[i]; + batchLogs[label] = out; + keep(out); + } + await callbackList.onBatchEnd(batchIndex, batchLogs); + disposeTensorsInLogs(batchLogs); + batchIndex++; + stepsDone++; + } + if (hasBatchesPerEpoch ? stepsDone >= args.batchesPerEpoch : iteratorOut.done) { + if (doValidation) { + let valOuts; + if (isDatasetObject(args.validationData)) { + valOuts = toList(await model2.evaluateDataset(args.validationData, {batches: args.validationBatches})); + } else { + valOuts = toList(model2.evaluate(valXs, valYs, { + batchSize: args.validationBatchSize == null ? DEFAULT_VALIDATION_BATCH_SIZE : args.validationBatchSize, + verbose: 0 + })); + } + for (let i = 0; i < model2.metricsNames.length; ++i) { + epochLogs[`val_${model2.metricsNames[i]}`] = valOuts[i]; + } + } + break; + } + if (model2.stopTraining_) { + break; + } + } + await callbackList.onEpochEnd(epoch, epochLogs); + epoch++; + if (model2.stopTraining_) { + break; + } + } + await callbackList.onTrainEnd(); + await model2.history.syncData(); + return model2.history; + } finally { + model2.isTraining = false; + } + } + function getStepsPerEpoch(dataset5, args) { + let stepsPerEpoch = null; + if (args.batchesPerEpoch != null) { + stepsPerEpoch = args.batchesPerEpoch; + } else if (Number.isFinite(dataset5.size)) { + stepsPerEpoch = dataset5.size; + } + return stepsPerEpoch; + } + function isDatasetObject(dataset5) { + return typeof dataset5.iterator === "function"; + } + function isLazyIteratorObject(iterator) { + return typeof iterator.next === "function"; + } + async function evaluateDataset(model2, dataset5, args) { + args = args || {}; + const hasBatches = args.batches != null; + const f = model2.testFunction; + let outs = []; + if (args.verbose > 0) { + throw new NotImplementedError("Verbose mode is not implemented yet."); + } + util_exports.assert(!hasBatches || args.batches > 0 && Number.isInteger(args.batches), () => `Test loop expects \`batches\` to be a positive integer, but received ${JSON.stringify(args.batches)}`); + const dataIterator = isLazyIteratorObject(dataset5) ? dataset5 : await dataset5.iterator(); + let numExamples = 0; + let batch = 0; + while (hasBatches ? batch < args.batches : true) { + const iteratorOut = await dataIterator.next(); + outs = tidy(() => { + if (iteratorOut.value) { + const {xs, ys} = standardizeDataIteratorOutput(model2, iteratorOut.value); + const xsAndYs = xs.concat(ys); + const batchOuts = tidy(() => f(xsAndYs)); + dispose(xsAndYs); + if (batch === 0) { + for (let i = 0; i < batchOuts.length; ++i) { + outs.push(scalar(0)); + } + } + const batchSize = xsAndYs[0].shape[0]; + for (let i = 0; i < batchOuts.length; ++i) { + const batchOut = batchOuts[i]; + const oldScalar = outs[i]; + outs[i] = tidy(() => add2(outs[i], mul(batchSize, batchOut))); + if (batch > 0) { + dispose(oldScalar); + } + } + dispose(batchOuts); + numExamples += batchSize; + ++batch; + } + return outs; + }); + if (iteratorOut.done) { + if (hasBatches) { + console.warn(`Your dataset iterator ran out of data during evaluateDataset(). Interrupting evalution. Make sure that your dataset can generate at least \`batches\` batches (in this case, ${args.batches} batches). You may need to use the repeat() function when building your dataset.`); + } + break; + } + } + for (let i = 0; i < outs.length; ++i) { + const oldScalar = outs[i]; + outs[i] = div(outs[i], numExamples); + dispose(oldScalar); + } + return singletonOrArray(outs); + } + + // node_modules/@tensorflow/tfjs-layers/dist/engine/training_tensors.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + function checkBatchSize(batchSize) { + util_exports.assert(batchSize > 0 && Number.isInteger(batchSize), () => `batchSize is required to be a positive integer, but got ${batchSize}`); + } + function sliceArrays(arrays, start, stop) { + if (arrays == null) { + return [null]; + } else if (Array.isArray(arrays)) { + return arrays.map((array2) => sliceAlongFirstAxis(array2, start, stop - start)); + } else { + return sliceAlongFirstAxis(arrays, start, stop - start); + } + } + function sliceArraysByIndices(arrays, indices) { + return tidy(() => { + if (arrays == null) { + return null; + } else if (Array.isArray(arrays)) { + return arrays.map((array2) => sliceArraysByIndices(array2, indices)); + } else { + return gather5(arrays, indices.dtype === "int32" ? indices : indices.toInt()); + } + }); + } + function makeBatches(size, batchSize) { + const output = []; + let batchStart = 0; + let batchEnd = null; + while (batchStart < size) { + batchEnd = batchStart + batchSize; + if (batchEnd >= size) { + batchEnd = size; + } + output.push([batchStart, batchEnd]); + batchStart = batchEnd; + } + return output; + } + async function fitLoop(model2, f, ins, outLabels, batchSize, epochs, verbose, callbacks3, valF, valIns, shuffle2, callbackMetrics, initialEpoch, stepsPerEpoch, validationSteps) { + if (batchSize == null) { + batchSize = 32; + } + if (epochs == null) { + epochs = 1; + } + if (shuffle2 == null) { + shuffle2 = true; + } + if (initialEpoch == null) { + initialEpoch = 0; + } + let doValidation = false; + if (valF != null && valIns != null) { + doValidation = true; + } + if (validationSteps != null) { + doValidation = true; + if (stepsPerEpoch == null) { + throw new ValueError("Can only use `validationSteps` when doing step-wise training, i.e., `stepsPerEpoch` must be set."); + } + } + const numTrainSamples = model2.checkNumSamples(ins, batchSize, stepsPerEpoch, "steps_per_epoch"); + let indexArray; + if (numTrainSamples != null) { + indexArray = range4(0, numTrainSamples); + } + if (verbose == null) { + verbose = 1; + } + const {callbackList, history} = configureCallbacks(callbacks3, verbose, epochs, initialEpoch, numTrainSamples, stepsPerEpoch, batchSize, doValidation, callbackMetrics); + callbackList.setModel(model2); + model2.history = history; + await callbackList.onTrainBegin(); + model2.stopTraining_ = false; + for (let epoch = initialEpoch; epoch < epochs; ++epoch) { + await callbackList.onEpochBegin(epoch); + const epochLogs = {}; + if (stepsPerEpoch != null) { + throw new NotImplementedError("stepsPerEpoch mode is not implemented yet."); + } else { + if (shuffle2 === "batch") { + throw new NotImplementedError("batch shuffling is not implemneted yet"); + } else if (shuffle2) { + util_exports.shuffle(indexArray); + } + const epochIndexArray1D = tensor1d(indexArray); + const batches = makeBatches(numTrainSamples, batchSize); + for (let batchIndex = 0; batchIndex < batches.length; ++batchIndex) { + const batchLogs = {}; + await callbackList.onBatchBegin(batchIndex, batchLogs); + tidy(() => { + const batchStart = batches[batchIndex][0]; + const batchEnd = batches[batchIndex][1]; + const batchIds = sliceAlongFirstAxis(epochIndexArray1D, batchStart, batchEnd - batchStart); + batchLogs["batch"] = batchIndex; + batchLogs["size"] = batchEnd - batchStart; + const insBatch = sliceArraysByIndices(ins, batchIds); + const outs = f(insBatch); + for (let i = 0; i < outLabels.length; ++i) { + const label = outLabels[i]; + const out = outs[i]; + batchLogs[label] = out; + keep(out); + } + if (batchIndex === batches.length - 1) { + if (doValidation) { + const valOuts = model2.testLoop(valF, valIns, batchSize); + for (let i = 0; i < outLabels.length; ++i) { + const label = outLabels[i]; + const out = valOuts[i]; + keep(out); + epochLogs["val_" + label] = out; + } + } + } + }); + await callbackList.onBatchEnd(batchIndex, batchLogs); + disposeTensorsInLogs(batchLogs); + if (model2.stopTraining_) { + break; + } + } + epochIndexArray1D.dispose(); + } + await callbackList.onEpochEnd(epoch, epochLogs); + if (model2.stopTraining_) { + break; + } + } + await callbackList.onTrainEnd(); + await model2.history.syncData(); + return model2.history; + } + async function fitTensors(model2, x, y, args = {}) { + if (model2.isTraining) { + throw new Error("Cannot start training because another fit() call is ongoing."); + } + model2.isTraining = true; + let inputs; + let targets; + let inputValX; + let inputValY; + let valX; + let valY; + let sampleWeights; + try { + const batchSize = args.batchSize == null ? 32 : args.batchSize; + checkBatchSize(batchSize); + const checkBatchAxis = false; + const standardizedOuts = await model2.standardizeUserData(x, y, args.sampleWeight, args.classWeight, checkBatchAxis, batchSize); + inputs = standardizedOuts[0]; + targets = standardizedOuts[1]; + sampleWeights = standardizedOuts[2]; + let doValidation = false; + let valIns; + if (args.validationData != null && args.validationData.length > 0) { + doValidation = true; + if (args.validationData.length === 2) { + inputValX = args.validationData[0]; + inputValY = args.validationData[1]; + } else if (args.validationData.length === 3) { + throw new NotImplementedError("validationData including sample weights is not supported yet."); + } else { + throw new ValueError(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${args.validationData} is invalid.`); + } + const checkBatchAxis2 = true; + const valStandardized = await model2.standardizeUserData(inputValX, inputValY, null, null, checkBatchAxis2, batchSize); + valX = valStandardized[0]; + valY = valStandardized[1]; + valIns = valX.concat(valY); + } else if (args.validationSplit != null && args.validationSplit > 0 && args.validationSplit < 1) { + doValidation = true; + const splitAt = Math.floor(inputs[0].shape[0] * (1 - args.validationSplit)); + const originalBatchSize = inputs[0].shape[0]; + valX = sliceArrays(inputs, splitAt, originalBatchSize); + inputs = sliceArrays(inputs, 0, splitAt); + valY = sliceArrays(targets, splitAt, originalBatchSize); + targets = sliceArrays(targets, 0, splitAt); + valIns = valX.concat(valY); + } else if (args.validationSteps != null) { + doValidation = true; + } + const ins = inputs.concat(targets).concat(sampleWeights); + model2.checkTrainableWeightsConsistency(); + const trainFunction = model2.makeTrainFunction(); + const outLabels = model2.getDedupedMetricsNames(); + let valFunction; + let callbackMetrics; + if (doValidation) { + model2.makeTestFunction(); + valFunction = model2.testFunction; + callbackMetrics = outLabels.slice().concat(outLabels.map((n) => "val_" + n)); + } else { + valFunction = null; + valIns = []; + callbackMetrics = outLabels.slice(); + } + const callbacks3 = standardizeCallbacks(args.callbacks, args.yieldEvery); + const out = await fitLoop(model2, trainFunction, ins, outLabels, batchSize, args.epochs, args.verbose, callbacks3, valFunction, valIns, args.shuffle, callbackMetrics, args.initialEpoch, null, null); + return out; + } finally { + model2.isTraining = false; + disposeNewTensors(inputs, x); + disposeNewTensors(targets, y); + disposeNewTensors(valX, inputValX); + disposeNewTensors(valY, inputValY); + if (sampleWeights != null) { + dispose(sampleWeights); + } + } + } + function ensureTensorsRank2OrHigher(tensors) { + const outs = []; + if (tensors instanceof Tensor) { + tensors = [tensors]; + } + for (let i = 0; i < tensors.length; ++i) { + const tensor17 = tensors[i]; + if (tensor17.rank === 1) { + outs.push(expandDims2(tensor17, 1)); + } else if (tensor17.rank === 0) { + throw new Error("Expected tensor to be at least 1D, but received a 0D tensor (scalar)."); + } else { + outs.push(tensor17); + } + } + return outs; + } + function disposeNewTensors(tensors, refTensors) { + if (tensors == null) { + return; + } + const oldTensorIds = []; + if (refTensors instanceof Tensor) { + oldTensorIds.push(refTensors.id); + } else if (Array.isArray(refTensors)) { + refTensors.forEach((t) => oldTensorIds.push(t.id)); + } else if (refTensors != null) { + for (const name in refTensors) { + const oldTensor = refTensors[name]; + oldTensorIds.push(oldTensor.id); + } + } + const tensorsToDispose = []; + if (tensors instanceof Tensor) { + if (oldTensorIds.indexOf(tensors.id) === -1) { + tensorsToDispose.push(tensors); + } + } else if (Array.isArray(tensors)) { + tensors.forEach((t) => { + if (oldTensorIds.indexOf(t.id) === -1) { + tensorsToDispose.push(t); + } + }); + } else if (tensors != null) { + for (const name in tensors) { + const tensor17 = tensors[name]; + if (oldTensorIds.indexOf(tensor17.id) === -1) { + tensorsToDispose.push(tensor17); + } + } + } + tensorsToDispose.forEach((t) => { + if (!t.isDisposed) { + t.dispose(); + } + }); + } + + // node_modules/@tensorflow/tfjs-layers/dist/engine/training.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + function isDataTensor(x) { + return x instanceof Tensor; + } + function isDataArray(x) { + return Array.isArray(x); + } + function isDataDict(x) { + return !isDataTensor(x) && !isDataArray(x); + } + function standardizeInputData(data, names, shapes, checkBatchAxis = true, exceptionPrefix = "") { + if (names == null || names.length === 0) { + if (data != null) { + let gotUnexpectedData = false; + if (isDataArray(data) && data.length > 0) { + gotUnexpectedData = true; + } else if (isDataDict(data)) { + for (const key in data) { + if (data.hasOwnProperty(key)) { + gotUnexpectedData = true; + break; + } + } + } else { + gotUnexpectedData = true; + } + if (gotUnexpectedData) { + throw new ValueError(`Error when checking model ${exceptionPrefix} expected no data, but got ${data}`); + } + } + return []; + } + if (data == null) { + return names.map((name) => null); + } + let arrays; + if (isDataDict(data)) { + data = data; + arrays = []; + for (const name of names) { + if (data[name] == null) { + throw new ValueError(`No data provided for "${name}". Need data for each key in: ${names}`); + } + arrays.push(data[name]); + } + } else if (isDataArray(data)) { + data = data; + if (data.length !== names.length) { + throw new ValueError(`Error when checking model ${exceptionPrefix}: the Array of Tensors that you are passing to your model is not the size the model expected. Expected to see ${names.length} Tensor(s), but instead got the following list of Tensor(s): ${data}`); + } + arrays = data; + } else { + data = data; + if (names.length > 1) { + throw new ValueError(`The model ${exceptionPrefix} expects ${names.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${data.shape}`); + } + arrays = [data]; + } + arrays = ensureTensorsRank2OrHigher(arrays); + if (shapes != null) { + for (let i = 0; i < names.length; ++i) { + if (shapes[i] == null) { + continue; + } + const array2 = arrays[i]; + if (array2.shape.length !== shapes[i].length) { + throw new ValueError(`Error when checking ${exceptionPrefix}: expected ${names[i]} to have ${shapes[i].length} dimension(s). but got array with shape ${array2.shape}`); + } + for (let j = 0; j < shapes[i].length; ++j) { + if (j === 0 && !checkBatchAxis) { + continue; + } + const dim = array2.shape[j]; + const refDim = shapes[i][j]; + if (refDim != null && refDim >= 0 && dim !== refDim) { + throw new ValueError(`Error when checking ${exceptionPrefix}: expected ${names[i]} to have shape [${shapes[i]}], but got array with shape [${array2.shape}].`); + } + } + } + } + return arrays; + } + function checkArrayLengths(inputs, targets, weights) { + const setX = unique(inputs.map((input2) => input2.shape[0])); + setX.sort(); + const setY = unique(targets.map((target) => target.shape[0])); + setY.sort(); + if (setX.length > 1) { + throw new ValueError(`All input Tensors (x) should have the same number of samples. Got array shapes: ${JSON.stringify(inputs.map((input2) => input2.shape))}`); + } + if (setY.length > 1) { + throw new ValueError(`All target Tensors (y) should have the same number of samples. Got array shapes: ${JSON.stringify(targets.map((target) => target.shape))}`); + } + if (setX.length > 0 && setY.length > 0 && !util_exports.arraysEqual(setX, setY)) { + throw new ValueError(`Input Tensors should have the same number of samples as target Tensors. Found ${setX[0]} input sample(s) and ${setY[0]} target sample(s).`); + } + } + function checkLossAndTargetCompatibility(targets, lossFns, outputShapes) { + const keyLosses = [ + meanSquaredError2, + binaryCrossentropy, + categoricalCrossentropy + ]; + for (let i = 0; i < targets.length; ++i) { + const y = targets[i]; + const loss = lossFns[i]; + const shape = outputShapes[i]; + if (loss == null) { + continue; + } + if (loss === categoricalCrossentropy) { + if (y.shape[y.shape.length - 1] === 1) { + throw new ValueError(`You are passing a target array of shape ${y.shape} while using a loss 'categorical_crossentropy'. 'categorical_crossentropy'expects targets to be binary matrices (1s and 0s) of shape [samples, classes].`); + } + } + if (keyLosses.indexOf(loss) !== -1) { + const slicedYShape = y.shape.slice(1); + const slicedShape = shape.slice(1); + for (let j = 0; j < slicedYShape.length; ++j) { + const targetDim = slicedYShape[j]; + const outDim = slicedShape[j]; + if (outDim != null && targetDim !== outDim) { + throw new ValueError(`A target Tensor with shape ${y.shape} was passed for an output of shape ${shape}, while using a loss function that expects targets to have the same shape as the output.`); + } + } + } + } + } + function checkInputData(data, names, shapes, checkBatchAxis = true, exceptionPrefix = "") { + let arrays; + if (Array.isArray(data)) { + if (data.length !== names.length) { + throw new ValueError(`Error when checking model ${exceptionPrefix}: the Array of Tensors that you are passing to your model is not the size the the model expected. Expected to see ${names.length} Tensor(s), but instead got ${data.length} Tensors(s).`); + } + arrays = data; + } else { + if (names.length > 1) { + throw new ValueError(`The model expects ${names.length} ${exceptionPrefix} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(data.shape)}.`); + } + arrays = [data]; + } + if (shapes != null) { + for (let i = 0; i < names.length; ++i) { + if (shapes[i] == null) { + continue; + } + const array2 = arrays[i]; + if (array2.shape.length !== shapes[i].length) { + throw new ValueError(`Error when checking ${exceptionPrefix}: expected ${names[i]} to have ${shapes[i].length} dimension(s), but got array with shape ${JSON.stringify(array2.shape)}`); + } + for (let j = 0; j < shapes[i].length; ++j) { + if (j === 0 && !checkBatchAxis) { + continue; + } + const dim = array2.shape[j]; + const refDim = shapes[i][j]; + if (refDim != null) { + if (refDim !== dim) { + throw new ValueError(`Error when checking ${exceptionPrefix}: expected ${names[i]} to have shape ${JSON.stringify(shapes[i])} but got array with shape ${JSON.stringify(array2.shape)}.`); + } + } + } + } + } + } + function collectMetrics(metrics2, outputNames) { + if (metrics2 == null || Array.isArray(metrics2) && metrics2.length === 0) { + return outputNames.map((name) => []); + } + let wrappedMetrics; + if (typeof metrics2 === "string" || typeof metrics2 === "function") { + wrappedMetrics = [metrics2]; + } else if (Array.isArray(metrics2) || typeof metrics2 === "object") { + wrappedMetrics = metrics2; + } else { + throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${metrics2}`); + } + if (Array.isArray(wrappedMetrics)) { + return outputNames.map((name) => wrappedMetrics); + } else { + const nestedMetrics = []; + for (const name of outputNames) { + let outputMetrics = wrappedMetrics.hasOwnProperty(name) ? wrappedMetrics[name] : []; + if (!Array.isArray(outputMetrics)) { + outputMetrics = [outputMetrics]; + } + nestedMetrics.push(outputMetrics); + } + return nestedMetrics; + } + } + const LAYERS_MODEL_FORMAT_NAME = "layers-model"; + class LayersModel extends Container { + constructor(args) { + super(args); + this.isTraining = false; + } + summary(lineLength, positions, printFn = console.log) { + if (!this.built) { + throw new ValueError(`This model has never been called, thus its weights have not been created yet. So no summary can be displayed. Build the model first (e.g., by calling it on some test data).`); + } + printSummary(this, lineLength, positions, printFn); + } + compile(args) { + if (args.loss == null) { + args.loss = []; + } + this.loss = args.loss; + if (typeof args.optimizer === "string") { + this.optimizer_ = getOptimizer(args.optimizer); + this.isOptimizerOwned = true; + } else { + if (!(args.optimizer instanceof Optimizer)) { + throw new ValueError(`User-defined optimizer must be an instance of tf.Optimizer.`); + } + this.optimizer_ = args.optimizer; + this.isOptimizerOwned = false; + } + let lossFunctions = []; + if (!Array.isArray(args.loss) && typeof args.loss !== "string" && typeof args.loss !== "function") { + args.loss = args.loss; + for (const name in args.loss) { + if (this.outputNames.indexOf(name) === -1) { + throw new ValueError(`Unknown entry in loss dictionary: "${name}". Only expected the following keys: ${this.outputNames}`); + } + } + for (const name of this.outputNames) { + if (args.loss[name] == null) { + console.warn(`Output "${name}" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to ${name} during training`); + } + lossFunctions.push(get(args.loss[name])); + } + } else if (Array.isArray(args.loss)) { + if (args.loss.length !== this.outputs.length) { + throw new ValueError(`When passing an Array as loss, it should have one entry per model output. The model has ${this.outputs.length} output(s), but you passed loss=${args.loss}.`); + } + const theLosses = args.loss; + lossFunctions = theLosses.map((l) => get(l)); + } else { + const lossFunction = get(args.loss); + this.outputs.forEach((_) => { + lossFunctions.push(lossFunction); + }); + } + this.lossFunctions = lossFunctions; + this.feedOutputNames = []; + this.feedOutputShapes = []; + this.feedLossFns = []; + for (let i = 0; i < this.outputs.length; ++i) { + const shape = this.internalOutputShapes[i]; + const name = this.outputNames[i]; + this.feedOutputNames.push(name); + this.feedOutputShapes.push(shape); + this.feedLossFns.push(this.lossFunctions[i]); + } + const skipTargetIndices = []; + this.metrics = args.metrics; + this.metricsNames = ["loss"]; + this.metricsTensors = []; + nameScope("loss", () => { + for (let i = 0; i < this.outputs.length; ++i) { + if (skipTargetIndices.indexOf(i) !== -1) { + continue; + } + const weightedLoss = this.lossFunctions[i]; + if (this.outputs.length > 1) { + this.metricsTensors.push([weightedLoss, i]); + this.metricsNames.push(this.outputNames[i] + "_loss"); + } + } + }); + const nestedMetrics = collectMetrics(args.metrics, this.outputNames); + const appendMetric = (outputIndex, metricName, metricTensor) => { + if (this.outputNames.length > 1) { + metricName = this.outputNames[outputIndex] + "_" + metricName; + } + this.metricsNames.push(metricName); + this.metricsTensors.push([metricTensor, outputIndex]); + }; + nameScope("metric", () => { + for (let i = 0; i < this.outputs.length; ++i) { + if (skipTargetIndices.indexOf(i) !== -1) { + continue; + } + const outputMetrics = nestedMetrics[i]; + const handleMetrics = (metrics2) => { + const metricNamePrefix = ""; + let metricName; + let accFn; + let weightedMetricFn; + for (const metric of metrics2) { + if (typeof metric === "string" && ["accuracy", "acc", "crossentropy", "ce"].indexOf(metric) !== -1) { + const outputShape = this.internalOutputShapes[i]; + if (outputShape[outputShape.length - 1] === 1 || this.lossFunctions[i] === binaryCrossentropy) { + if (["accuracy", "acc"].indexOf(metric) !== -1) { + accFn = binaryAccuracy; + } else if (["crossentropy", "ce"].indexOf(metric) !== -1) { + accFn = binaryCrossentropy2; + } + } else if (this.lossFunctions[i] === sparseCategoricalCrossentropy) { + if (["accuracy", "acc"].indexOf(metric) !== -1) { + accFn = sparseCategoricalAccuracy; + } else if (["crossentropy", "ce"].indexOf(metric) !== -1) { + accFn = sparseCategoricalCrossentropy2; + } + } else { + if (["accuracy", "acc"].indexOf(metric) !== -1) { + accFn = categoricalAccuracy; + } else if (["crossentropy", "ce"].indexOf(metric) !== -1) { + accFn = categoricalCrossentropy2; + } + } + let suffix; + if (["accuracy", "acc"].indexOf(metric) !== -1) { + suffix = "acc"; + } else if (["crossentropy", "ce"].indexOf(metric) !== -1) { + suffix = "ce"; + } + weightedMetricFn = accFn; + metricName = metricNamePrefix + suffix; + } else { + const metricFn = get2(metric); + weightedMetricFn = metricFn; + metricName = metricNamePrefix + getLossOrMetricName(metric); + } + let metricResult; + nameScope(metricName, () => { + metricResult = weightedMetricFn; + }); + appendMetric(i, metricName, metricResult); + } + }; + handleMetrics(outputMetrics); + } + }); + this.collectedTrainableWeights = this.trainableWeights; + } + checkTrainableWeightsConsistency() { + if (this.collectedTrainableWeights == null) { + return; + } + if (this.trainableWeights.length !== this.collectedTrainableWeights.length) { + console.warn("Discrepancy between trainableweights and collected trainable weights. Did you set `model.trainable` without calling `model.compile()` afterwards?"); + } + } + evaluate(x, y, args = {}) { + const batchSize = args.batchSize == null ? 32 : args.batchSize; + checkBatchSize(batchSize); + const checkBatchAxis = true; + const standardizedOuts = this.standardizeUserDataXY(x, y, checkBatchAxis, batchSize); + try { + const ins = standardizedOuts[0].concat(standardizedOuts[1]); + this.makeTestFunction(); + const f = this.testFunction; + const testOuts = this.testLoop(f, ins, batchSize, args.verbose, args.steps); + return singletonOrArray(testOuts); + } finally { + disposeNewTensors(standardizedOuts[0], x); + disposeNewTensors(standardizedOuts[1], y); + } + } + async evaluateDataset(dataset5, args) { + this.makeTestFunction(); + return evaluateDataset(this, dataset5, args); + } + checkNumSamples(ins, batchSize, steps, stepsName = "steps") { + let numSamples; + if (steps != null) { + numSamples = null; + if (batchSize != null) { + throw new ValueError(`If ${stepsName} is set, batchSize must be null or undefined.Got batchSize = ${batchSize}`); + } + } else if (ins != null) { + if (Array.isArray(ins)) { + numSamples = ins[0].shape[0]; + } else { + numSamples = ins.shape[0]; + } + } else { + throw new ValueError(`Either the input data should have a defined shape, or ${stepsName} shoud be specified.`); + } + return numSamples; + } + execute(inputs, outputs) { + if (Array.isArray(outputs) && outputs.length === 0) { + throw new ValueError("`outputs` is an empty Array, which is not allowed."); + } + const outputsIsArray = Array.isArray(outputs); + const outputNames = outputsIsArray ? outputs : [outputs]; + const outputSymbolicTensors = this.retrieveSymbolicTensors(outputNames); + const feedDict = new FeedDict(); + if (inputs instanceof Tensor) { + inputs = [inputs]; + } + if (Array.isArray(inputs)) { + if (inputs.length !== this.inputs.length) { + throw new ValueError(`The number of inputs provided (${inputs.length}) does not match the number of inputs of this model (${this.inputs.length}).`); + } + for (let i = 0; i < this.inputs.length; ++i) { + feedDict.add(this.inputs[i], inputs[i]); + } + } else { + for (const input2 of this.inputs) { + const tensorValue = inputs[input2.name]; + if (tensorValue == null) { + throw new ValueError(`No value is provided for the model's input ${input2.name}`); + } + feedDict.add(input2, tensorValue); + } + } + const executeOutputs = execute(outputSymbolicTensors, feedDict); + return outputsIsArray ? executeOutputs : executeOutputs[0]; + } + retrieveSymbolicTensors(symbolicTensorNames) { + const outputSymbolicTensors = pyListRepeat(null, symbolicTensorNames.length); + let outputsRemaining = symbolicTensorNames.length; + for (const layer of this.layers) { + const layerOutputs = Array.isArray(layer.output) ? layer.output : [layer.output]; + const layerOutputNames = layerOutputs.map((output) => output.name); + for (let i = 0; i < symbolicTensorNames.length; ++i) { + const index = layerOutputNames.indexOf(symbolicTensorNames[i]); + if (index !== -1) { + outputSymbolicTensors[i] = layerOutputs[index]; + outputsRemaining--; + } + if (outputsRemaining === 0) { + break; + } + } + if (outputsRemaining === 0) { + break; + } + } + if (outputsRemaining > 0) { + const remainingNames = []; + outputSymbolicTensors.forEach((tensor17, i) => { + if (tensor17 == null) { + remainingNames.push(symbolicTensorNames[i]); + } + }); + throw new ValueError(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(remainingNames)}`); + } + return outputSymbolicTensors; + } + predictLoop(ins, batchSize = 32, verbose = false) { + return tidy(() => { + const numSamples = this.checkNumSamples(ins); + if (verbose) { + throw new NotImplementedError("Verbose predictLoop() is not implemented yet."); + } + const batches = makeBatches(numSamples, batchSize); + const outsBatches = this.outputs.map((output) => []); + for (let batchIndex = 0; batchIndex < batches.length; ++batchIndex) { + const batchOuts = tidy(() => { + const batchStart = batches[batchIndex][0]; + const batchEnd = batches[batchIndex][1]; + const insBatch = sliceArrays(ins, batchStart, batchEnd); + const feeds = []; + if (Array.isArray(insBatch)) { + for (let i = 0; i < insBatch.length; ++i) { + feeds.push({key: this.inputs[i], value: insBatch[i]}); + } + } else { + feeds.push({key: this.inputs[0], value: insBatch}); + } + const feedDict = new FeedDict(feeds); + return execute(this.outputs, feedDict); + }); + batchOuts.forEach((batchOut, i) => outsBatches[i].push(batchOut)); + } + return singletonOrArray(outsBatches.map((batches2) => concat(batches2, 0))); + }); + } + predict(x, args = {}) { + const xsRank2OrHigher = ensureTensorsRank2OrHigher(x); + checkInputData(xsRank2OrHigher, this.inputNames, this.feedInputShapes, false); + try { + const batchSize = args.batchSize == null ? 32 : args.batchSize; + checkBatchSize(batchSize); + return this.predictLoop(xsRank2OrHigher, batchSize); + } finally { + disposeNewTensors(xsRank2OrHigher, x); + } + } + predictOnBatch(x) { + checkInputData(x, this.inputNames, this.feedInputShapes, true); + const batchSize = (Array.isArray(x) ? x[0] : x).shape[0]; + return this.predictLoop(x, batchSize); + } + standardizeUserDataXY(x, y, checkBatchAxis = true, batchSize) { + if (this.optimizer_ == null) { + throw new RuntimeError("You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs)."); + } + const outputShapes = []; + for (let i = 0; i < this.feedOutputShapes.length; ++i) { + const outputShape = this.feedOutputShapes[i]; + const lossFn = this.feedLossFns[i]; + if (lossFn === sparseCategoricalCrossentropy) { + outputShapes.push(outputShape.slice(0, outputShape.length - 1).concat([1])); + } else { + outputShapes.push(outputShape); + } + } + x = standardizeInputData(x, this.feedInputNames, this.feedInputShapes, false, "input"); + y = standardizeInputData(y, this.feedOutputNames, outputShapes, false, "target"); + checkArrayLengths(x, y, null); + checkLossAndTargetCompatibility(y, this.feedLossFns, this.feedOutputShapes); + if (this.stateful && batchSize != null && batchSize > 0) { + if (x[0].shape[0] % batchSize !== 0) { + throw new ValueError(`In a stateful network, you should only pass inputs with a number of samples that is divisible by the batch size ${batchSize}. Found: ${x[0].shape[0]} sample(s).`); + } + } + return [x, y]; + } + async standardizeUserData(x, y, sampleWeight, classWeight, checkBatchAxis = true, batchSize) { + const [standardXs, standardYs] = this.standardizeUserDataXY(x, y, checkBatchAxis, batchSize); + if (sampleWeight != null) { + throw new Error("sample weight is not supported yet."); + } + let standardSampleWeights = null; + if (classWeight != null) { + const classWeights = standardizeClassWeights(classWeight, this.outputNames); + standardSampleWeights = []; + for (let i = 0; i < classWeights.length; ++i) { + standardSampleWeights.push(await standardizeWeights(standardYs[i], null, classWeights[i])); + } + } + return [standardXs, standardYs, standardSampleWeights]; + } + testLoop(f, ins, batchSize, verbose = 0, steps) { + return tidy(() => { + const numSamples = this.checkNumSamples(ins, batchSize, steps, "steps"); + const outs = []; + if (verbose > 0) { + throw new NotImplementedError("Verbose mode is not implemented yet."); + } + if (steps != null) { + throw new NotImplementedError("steps mode in testLoop() is not implemented yet"); + } else { + const batches = makeBatches(numSamples, batchSize); + const indexArray = tensor1d(range4(0, numSamples)); + for (let batchIndex = 0; batchIndex < batches.length; ++batchIndex) { + const batchStart = batches[batchIndex][0]; + const batchEnd = batches[batchIndex][1]; + const batchIds = sliceAlongFirstAxis(indexArray, batchStart, batchEnd - batchStart); + const insBatch = sliceArraysByIndices(ins, batchIds); + const batchOuts = f(insBatch); + if (batchIndex === 0) { + for (let i = 0; i < batchOuts.length; ++i) { + outs.push(scalar(0)); + } + } + for (let i = 0; i < batchOuts.length; ++i) { + const batchOut = batchOuts[i]; + outs[i] = add2(outs[i], mul(batchEnd - batchStart, batchOut)); + } + } + for (let i = 0; i < outs.length; ++i) { + outs[i] = div(outs[i], numSamples); + } + } + return outs; + }); + } + getDedupedMetricsNames() { + const outLabels = this.metricsNames; + const dedupedOutLabels = []; + for (let i = 0; i < outLabels.length; ++i) { + const label = outLabels[i]; + let newLabel = label; + if (count(outLabels, label) > 1) { + const dupIndex = count(outLabels.slice(0, i), label); + newLabel += `_${dupIndex}`; + } + dedupedOutLabels.push(newLabel); + } + return dedupedOutLabels; + } + makeTrainFunction() { + return (data) => { + const lossValues = []; + const inputs = data.slice(0, this.inputs.length); + const targets = data.slice(this.inputs.length, this.inputs.length + this.outputs.length); + const sampleWeights = data.slice(this.inputs.length + this.outputs.length, this.inputs.length + this.outputs.length * 2); + const metricsValues = []; + const totalLossFunction = () => { + const feeds = []; + for (let i = 0; i < this.inputs.length; ++i) { + feeds.push({key: this.inputs[i], value: inputs[i]}); + } + const feedDict = new FeedDict(feeds); + const outputs = execute(this.outputs, feedDict, {training: true}); + let totalLoss; + for (let i = 0; i < this.lossFunctions.length; ++i) { + const lossFunction = this.lossFunctions[i]; + let loss = lossFunction(targets[i], outputs[i]); + if (sampleWeights[i] != null) { + loss = computeWeightedLoss2(loss, sampleWeights[i]); + } + const meanLoss = mean(loss); + lossValues.push(meanLoss); + if (i === 0) { + totalLoss = loss; + } else { + totalLoss = add2(totalLoss, loss); + } + } + for (let i = 0; i < this.metricsTensors.length; ++i) { + let weightedMetric; + if (this.outputs.length > 1 && i < this.outputs.length) { + weightedMetric = lossValues[i]; + } else { + const metric = this.metricsTensors[i][0]; + const outputIndex = this.metricsTensors[i][1]; + weightedMetric = mean(metric(targets[outputIndex], outputs[outputIndex])); + } + keep(weightedMetric); + metricsValues.push(weightedMetric); + } + totalLoss = mean(totalLoss); + this.calculateLosses().forEach((regularizerLoss) => { + totalLoss = add2(totalLoss, regularizerLoss); + }); + return totalLoss; + }; + const variables5 = this.collectedTrainableWeights.map((param) => param.read()); + const returnCost = true; + const totalLossValue = this.optimizer_.minimize(totalLossFunction, returnCost, variables5); + return [totalLossValue].concat(metricsValues); + }; + } + makeTestFunction() { + this.testFunction = (data) => { + return tidy(() => { + const valOutputs = []; + let totalLoss; + const inputs = data.slice(0, this.inputs.length); + const targets = data.slice(this.inputs.length, this.inputs.length + this.outputs.length); + const feeds = []; + for (let i = 0; i < this.inputs.length; ++i) { + feeds.push({key: this.inputs[i], value: inputs[i]}); + } + const feedDict = new FeedDict(feeds); + const outputs = execute(this.outputs, feedDict); + for (let i = 0; i < this.lossFunctions.length; ++i) { + const lossFunction = this.lossFunctions[i]; + const loss = mean(lossFunction(targets[i], outputs[i])); + if (i === 0) { + totalLoss = loss; + } else { + totalLoss = add2(totalLoss, loss); + } + valOutputs.push(totalLoss); + } + for (let i = 0; i < this.metricsTensors.length; ++i) { + const metric = this.metricsTensors[i][0]; + const outputIndex = this.metricsTensors[i][1]; + const meanMetric = mean(metric(targets[outputIndex], outputs[outputIndex])); + valOutputs.push(meanMetric); + } + return valOutputs; + }); + }; + } + async fit(x, y, args = {}) { + return fitTensors(this, x, y, args); + } + async fitDataset(dataset5, args) { + return fitDataset(this, dataset5, args); + } + async trainOnBatch(x, y) { + const standardizeOut = await this.standardizeUserData(x, y); + const inputs = standardizeOut[0]; + const targets = standardizeOut[1]; + const trainFunction = this.makeTrainFunction(); + const losses8 = trainFunction(inputs.concat(targets)); + const lossValues = []; + for (const loss of losses8) { + const v = await loss.data(); + lossValues.push(v[0]); + } + dispose(losses8); + return singletonOrArray(lossValues); + } + getNamedWeights(config2) { + const namedWeights = []; + const trainableOnly = config2 != null && config2.trainableOnly; + const weights = trainableOnly ? this.trainableWeights : this.weights; + const weightValues = this.getWeights(trainableOnly); + for (let i = 0; i < weights.length; ++i) { + if (trainableOnly && !weights[i].trainable) { + continue; + } + namedWeights.push({name: weights[i].originalName, tensor: weightValues[i]}); + } + return namedWeights; + } + set stopTraining(stop) { + this.stopTraining_ = stop; + } + get stopTraining() { + return this.stopTraining_; + } + get optimizer() { + return this.optimizer_; + } + set optimizer(optimizer7) { + if (this.optimizer_ !== optimizer7) { + this.optimizer_ = optimizer7; + this.isOptimizerOwned = false; + } + } + dispose() { + const result = super.dispose(); + if (result.refCountAfterDispose === 0 && this.optimizer != null && this.isOptimizerOwned) { + const numTensorsBeforeOptmizerDisposal = memory().numTensors; + this.optimizer_.dispose(); + result.numDisposedVariables += numTensorsBeforeOptmizerDisposal - memory().numTensors; + } + return result; + } + getLossIdentifiers() { + let lossNames; + if (typeof this.loss === "string") { + lossNames = toSnakeCase(this.loss); + } else if (Array.isArray(this.loss)) { + for (const loss of this.loss) { + if (typeof loss !== "string") { + throw new Error("Serialization of non-string loss is not supported."); + } + } + lossNames = this.loss.map((name) => toSnakeCase(name)); + } else { + const outputNames = Object.keys(this.loss); + lossNames = {}; + const losses8 = this.loss; + for (const outputName of outputNames) { + if (typeof losses8[outputName] === "string") { + lossNames[outputName] = toSnakeCase(losses8[outputName]); + } else { + throw new Error("Serialization of non-string loss is not supported."); + } + } + } + return lossNames; + } + getMetricIdentifiers() { + if (typeof this.metrics === "string" || typeof this.metrics === "function") { + return [toSnakeCase(getLossOrMetricName(this.metrics))]; + } else if (Array.isArray(this.metrics)) { + return this.metrics.map((metric) => toSnakeCase(getLossOrMetricName(metric))); + } else { + const metricsIdentifiers = {}; + for (const key in this.metrics) { + metricsIdentifiers[key] = toSnakeCase(getLossOrMetricName(this.metrics[key])); + } + return metricsIdentifiers; + } + } + getTrainingConfig() { + return { + loss: this.getLossIdentifiers(), + metrics: this.getMetricIdentifiers(), + optimizer_config: { + class_name: this.optimizer.getClassName(), + config: this.optimizer.getConfig() + } + }; + } + loadTrainingConfig(trainingConfig) { + if (trainingConfig.weighted_metrics != null) { + throw new Error("Loading weight_metrics is not supported yet."); + } + if (trainingConfig.loss_weights != null) { + throw new Error("Loading loss_weights is not supported yet."); + } + if (trainingConfig.sample_weight_mode != null) { + throw new Error("Loading sample_weight_mode is not supported yet."); + } + const tsConfig = convertPythonicToTs(trainingConfig.optimizer_config); + const optimizer7 = deserialize(tsConfig); + let loss; + if (typeof trainingConfig.loss === "string") { + loss = toCamelCase(trainingConfig.loss); + } else if (Array.isArray(trainingConfig.loss)) { + loss = trainingConfig.loss.map((lossEntry) => toCamelCase(lossEntry)); + } else if (trainingConfig.loss != null) { + loss = {}; + for (const key in trainingConfig.loss) { + loss[key] = toCamelCase(trainingConfig.loss[key]); + } + } + let metrics2; + if (Array.isArray(trainingConfig.metrics)) { + metrics2 = trainingConfig.metrics.map((metric) => toCamelCase(metric)); + } else if (trainingConfig.metrics != null) { + metrics2 = {}; + for (const key in trainingConfig.metrics) { + metrics2[key] = toCamelCase(trainingConfig.metrics[key]); + } + } + this.compile({loss, metrics: metrics2, optimizer: optimizer7}); + } + async save(handlerOrURL, config2) { + if (typeof handlerOrURL === "string") { + const handlers = io_exports.getSaveHandlers(handlerOrURL); + if (handlers.length === 0) { + throw new ValueError(`Cannot find any save handlers for URL '${handlerOrURL}'`); + } else if (handlers.length > 1) { + throw new ValueError(`Found more than one (${handlers.length}) save handlers for URL '${handlerOrURL}'`); + } + handlerOrURL = handlers[0]; + } + if (handlerOrURL.save == null) { + throw new ValueError("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined."); + } + const weightDataAndSpecs = await io_exports.encodeWeights(this.getNamedWeights(config2)); + const returnString = false; + const unusedArg = null; + const modelConfig = this.toJSON(unusedArg, returnString); + const modelArtifacts = { + modelTopology: modelConfig, + format: LAYERS_MODEL_FORMAT_NAME, + generatedBy: `TensorFlow.js tfjs-layers v${version2}`, + convertedBy: null + }; + const includeOptimizer = config2 == null ? false : config2.includeOptimizer; + if (includeOptimizer && this.optimizer != null) { + modelArtifacts.trainingConfig = this.getTrainingConfig(); + const weightType = "optimizer"; + const {data: optimizerWeightData, specs: optimizerWeightSpecs} = await io_exports.encodeWeights(await this.optimizer.getWeights(), weightType); + weightDataAndSpecs.specs.push(...optimizerWeightSpecs); + weightDataAndSpecs.data = io_exports.concatenateArrayBuffers([weightDataAndSpecs.data, optimizerWeightData]); + } + if (this.userDefinedMetadata != null) { + const checkSize = true; + checkUserDefinedMetadata(this.userDefinedMetadata, this.name, checkSize); + modelArtifacts.userDefinedMetadata = this.userDefinedMetadata; + } + modelArtifacts.weightData = weightDataAndSpecs.data; + modelArtifacts.weightSpecs = weightDataAndSpecs.specs; + return handlerOrURL.save(modelArtifacts); + } + setUserDefinedMetadata(userDefinedMetadata) { + checkUserDefinedMetadata(userDefinedMetadata, this.name); + this.userDefinedMetadata = userDefinedMetadata; + } + getUserDefinedMetadata() { + return this.userDefinedMetadata; + } + } + LayersModel.className = "Model"; + serialization_exports.registerClass(LayersModel); + + // node_modules/@tensorflow/tfjs-layers/dist/models.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + async function modelFromJSON(modelAndWeightsConfig, customObjects) { + if (!("modelTopology" in modelAndWeightsConfig)) { + modelAndWeightsConfig = {modelTopology: modelAndWeightsConfig}; + } + modelAndWeightsConfig = modelAndWeightsConfig; + let modelTopology = modelAndWeightsConfig.modelTopology; + if (modelTopology["model_config"] != null) { + modelTopology = modelTopology["model_config"]; + } + const tsConfig = convertPythonicToTs(modelTopology); + const model2 = deserialize(tsConfig, customObjects); + if (modelAndWeightsConfig.weightsManifest != null) { + const weightValues = await io_exports.loadWeights(modelAndWeightsConfig.weightsManifest, modelAndWeightsConfig.pathPrefix, model2.weights.map((weight) => weight.originalName)); + const uniqueWeightValues = {}; + for (const weight of model2.weights) { + uniqueWeightValues[weight.originalName] = weightValues[weight.originalName]; + } + model2.loadWeights(uniqueWeightValues); + dispose(weightValues); + } + return model2; + } + async function loadLayersModelInternal(pathOrIOHandler, options) { + if (options == null) { + options = {}; + } + if (typeof pathOrIOHandler === "string") { + const handlers = io_exports.getLoadHandlers(pathOrIOHandler, options); + if (handlers.length === 0) { + handlers.push(io_exports.browserHTTPRequest(pathOrIOHandler, options)); + } else if (handlers.length > 1) { + throw new ValueError(`Found more than one (${handlers.length}) load handlers for URL '${pathOrIOHandler}'`); + } + pathOrIOHandler = handlers[0]; + } + return loadLayersModelFromIOHandler(pathOrIOHandler, void 0, options); + } + async function loadLayersModelFromIOHandler(handler, customObjects, options) { + if (options == null) { + options = {}; + } + if (handler.load == null) { + throw new ValueError("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented."); + } + const artifacts = await handler.load(); + let modelTopology = artifacts.modelTopology; + if (modelTopology["model_config"] != null) { + modelTopology = modelTopology["model_config"]; + } + const strict = options.strict == null ? true : options.strict; + const fastWeightInit = artifacts.weightData != null && artifacts.weightSpecs != null && strict; + const model2 = deserialize(convertPythonicToTs(modelTopology), customObjects, fastWeightInit); + const trainingConfig = artifacts.trainingConfig; + if (trainingConfig != null) { + model2.loadTrainingConfig(trainingConfig); + } + if (artifacts.userDefinedMetadata != null) { + model2.setUserDefinedMetadata(artifacts.userDefinedMetadata); + } + if (artifacts.weightData != null) { + if (artifacts.weightSpecs == null) { + throw new ValueError("LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed."); + } + const {modelWeights, optimizerWeights} = decodeModelAndOptimizerWeights(artifacts.weightData, artifacts.weightSpecs); + model2.loadWeights(modelWeights, strict); + if (model2.optimizer != null && optimizerWeights.length > 0) { + await model2.optimizer.setWeights(optimizerWeights); + } + dispose(modelWeights); + dispose(optimizerWeights.map((w) => w.tensor)); + } + return model2; + } + function decodeModelAndOptimizerWeights(buffer10, specs) { + const name2Tensor = io_exports.decodeWeights(buffer10, specs); + const modelWeights = {}; + const optimizerWeights = []; + specs.forEach((spec) => { + if (spec.group === "optimizer") { + optimizerWeights.push({name: spec.name, tensor: name2Tensor[spec.name]}); + } else { + modelWeights[spec.name] = name2Tensor[spec.name]; + } + }); + return {modelWeights, optimizerWeights}; + } + class Sequential extends LayersModel { + constructor(args) { + super({inputs: [], outputs: []}); + args = args || {}; + this.trainable = true; + this.built = false; + this.name = args.name != null ? args.name : getUid("sequential_"); + if (args.layers != null) { + for (const layer of args.layers) { + this.add(layer); + } + } + } + checkShape(layer) { + const shape = layer.inboundNodes[0].outputTensors[0].shape; + if (shape.some((x) => x < 0)) { + throw new ValueError(`Negative dimension size caused by adding layer ${layer.name} with input shape [${layer.inboundNodes[0].inputTensors[0].shape}]`); + } + } + add(layer) { + const isLayerModelInstance = layer instanceof Sequential || layer instanceof LayersModel; + let modelLayer; + if (isLayerModelInstance) { + modelLayer = layer; + if (modelLayer.outputs.length !== 1) { + throw new ValueError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API."); + } + if (modelLayer.inputs.length !== 1) { + throw new ValueError("All layers in a Sequential model should have a single input tensor. For multi-input layers, use the functional API."); + } + } + if (this.outputs.length === 0) { + if (layer.inboundNodes.length === 0) { + if (layer.batchInputShape == null) { + throw new ValueError("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument."); + } + const x = Input({ + batchShape: layer.batchInputShape, + dtype: layer.dtype, + name: layer.name + "_input" + }); + layer.apply(x); + } + if (isLayerModelInstance) { + this.outputs = modelLayer.outputs; + this.inputs = modelLayer.inputs; + } else { + if (layer.inboundNodes.length !== 1) { + throw new ValueError(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${layer.name} which has ${layer.inboundNodes.length} pre-existing inbound connections.`); + } + if (layer.inboundNodes[0].outputTensors.length !== 1) { + throw new ValueError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API."); + } + this.checkShape(layer); + this.outputs = [layer.inboundNodes[0].outputTensors[0]]; + this.inputs = getSourceInputs(this.outputs[0]); + } + this.inboundNodes = []; + new Node({ + outboundLayer: this, + inboundLayers: [], + nodeIndices: [], + tensorIndices: [], + inputTensors: this.inputs, + outputTensors: this.outputs, + inputMasks: pyListRepeat(null, this.inputs.length), + outputMasks: [null], + inputShapes: this.inputs.map((x) => x.shape), + outputShapes: this.outputs[0].shape + }); + } else { + const outputTensor = layer.apply(this.outputs[0]); + if (Array.isArray(outputTensor)) { + throw new TypeError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API."); + } + this.checkShape(layer); + this.outputs = [outputTensor]; + this.inboundNodes[0].outputTensors = this.outputs; + this.inboundNodes[0].outputShapes = [this.outputs[0].shape]; + } + this.layers.push(layer); + this.built = false; + } + pop() { + if (this.layers.length === 0) { + throw new TypeError("There are no layers in the model."); + } + this.layers.pop(); + if (this.layers.length === 0) { + this.outputs = []; + this.inboundNodes = []; + this.outboundNodes = []; + } else { + const lastLayerIndex = this.layers.length - 1; + this.layers[lastLayerIndex].outboundNodes = []; + this.outputs = [this.layers[lastLayerIndex].output]; + this.inboundNodes[0].outputTensors = this.outputs; + this.inboundNodes[0].outputShapes = [this.outputs[0].shape]; + } + } + call(inputs, kwargs) { + if (this.model == null) { + this.build(); + } + return this.model.call(inputs, kwargs); + } + build(inputShape) { + getExactlyOneShape(inputShape); + if (this.inputs.length === 0 || this.outputs.length === 0) { + throw new TypeError("Sequential model cannot be built: model is empty. Add some layers first."); + } + this.model = new LayersModel({ + inputs: this.inputs, + outputs: this.outputs[0], + name: this.name + "_model" + }); + this.model.trainable = this.trainable; + this.supportsMasking = this.model.supportsMasking; + this.inputLayers = this.model.inputLayers; + this.inputLayersNodeIndices = this.model.inputLayersNodeIndices; + this.inputLayersTensorIndices = this.model.inputLayersTensorIndices; + this.outputLayers = this.model.outputLayers; + this.outputLayersNodeIndices = this.model.outputLayersNodeIndices; + this.outputLayersTensorIndices = this.model.outputLayersTensorIndices; + this.nodesByDepth = this.model.nodesByDepth; + this.containerNodes = this.model.containerNodes; + this.outputNames = this.model.outputNames; + this.inputNames = this.model.inputNames; + this.built = true; + } + countParams() { + if (!this.built) { + this.build(); + } + return super.countParams(); + } + summary(lineLength, positions, printFn = console.log) { + if (!this.built) { + this.build(); + } + super.summary(lineLength, positions, printFn); + } + setWeights(weights) { + if (this.model == null) { + this.build(); + } + this.model.setWeights(weights); + } + evaluate(x, y, args = {}) { + if (!this.built) { + throw new RuntimeError("The model needs to be compiled before being used."); + } + return this.model.evaluate(x, y, args); + } + async evaluateDataset(dataset5, args) { + if (!this.built) { + throw new RuntimeError("The model needs to be compiled before being used."); + } + return this.model.evaluateDataset(dataset5, args); + } + predict(x, args = {}) { + if (this.model == null) { + this.build(); + } + return this.model.predict(x, args); + } + predictOnBatch(x) { + if (this.model == null) { + this.build(); + } + return this.model.predictOnBatch(x); + } + compile(args) { + this.build(); + this.model.compile(args); + this.optimizer_ = this.model.optimizer; + this.isOptimizerOwned = this.model.isOptimizerOwned; + this.loss = this.model.loss; + this.metrics = this.model.metrics; + this.metricsTensors = this.model.metricsTensors; + this.metricsNames = this.model.metricsNames; + } + get optimizer() { + return this.model == null ? void 0 : this.model.optimizer; + } + set optimizer(optimizer7) { + this.model.optimizer = optimizer7; + } + async fit(x, y, args = {}) { + if (!this.built) { + throw new RuntimeError("The model needs to be compiled before being used."); + } + return this.model.fit(x, y, args); + } + async fitDataset(dataset5, args) { + if (!this.built) { + throw new RuntimeError("The model needs to be compiled before being used."); + } + return this.model.fitDataset(dataset5, args); + } + async trainOnBatch(x, y) { + return this.model.trainOnBatch(x, y); + } + static fromConfig(cls, config2, customObjects = {}, fastWeightInit = false) { + let configArray; + let extraModelConfig = {}; + if (config2 instanceof Array) { + if (!(config2[0].className != null) || config2[0]["className"] === "Merge") { + throw new ValueError("Legacy serialization format not supported yet."); + } + configArray = config2; + } else { + util_exports.assert(config2["layers"] != null, () => `When the config data for a Sequential model is not an Array, it must be an Object that contains the 'layers' field.`); + configArray = config2["layers"]; + delete config2["layers"]; + extraModelConfig = config2; + } + const model2 = new cls(extraModelConfig); + if (!(model2 instanceof Sequential)) { + throw new NotImplementedError(`Sequential.fromConfig called on non-Sequential input: ${model2}`); + } + for (const conf of configArray) { + const customObjects2 = void 0; + const layer = deserialize(conf, customObjects2, fastWeightInit); + if (fastWeightInit) { + layer.setFastWeightInitDuringBuild(true); + } + model2.add(layer); + } + return model2; + } + set stopTraining(stop) { + if (this.model == null) { + throw new ValueError("Cannot set the stopTraining property of a sequential model before it is compiled."); + } + this.model.stopTraining = stop; + } + get stopTraining() { + if (this.model == null) { + throw new ValueError("Cannot get the stopTraining property of a sequential model before it is compiled."); + } + return this.model.stopTraining; + } + getConfig() { + const layers = []; + for (const layer of this.layers) { + const dict = {}; + dict["className"] = layer.getClassName(); + dict["config"] = layer.getConfig(); + layers.push(dict); + } + return {name: this.name, layers}; + } + } + Sequential.className = "Sequential"; + serialization_exports.registerClass(Sequential); + + // node_modules/@tensorflow/tfjs-layers/dist/exports.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + function model(args) { + return new LayersModel(args); + } + function sequential(config2) { + return new Sequential(config2); + } + function loadLayersModel(pathOrIOHandler, options) { + if (options == null) { + options = {}; + } + return loadLayersModelInternal(pathOrIOHandler, options); + } + function input(config2) { + return Input(config2); + } + function registerCallbackConstructor(verbosityLevel, callbackConstructor) { + CallbackConstructorRegistry.registerCallbackConstructor(verbosityLevel, callbackConstructor); + } + + // node_modules/@tensorflow/tfjs-layers/dist/activations.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + class Activation extends serialization_exports.Serializable { + getConfig() { + return {}; + } + } + class Elu2 extends Activation { + apply(x, alpha = 1) { + return elu4(x, alpha); + } + } + Elu2.className = "elu"; + serialization_exports.registerClass(Elu2); + class Selu2 extends Activation { + apply(x) { + return selu(x); + } + } + Selu2.className = "selu"; + serialization_exports.registerClass(Selu2); + class Relu2 extends Activation { + apply(x) { + return relu(x); + } + } + Relu2.className = "relu"; + serialization_exports.registerClass(Relu2); + class Relu62 extends Activation { + apply(x) { + return tidy(() => minimum(6, relu(x))); + } + } + Relu62.className = "relu6"; + serialization_exports.registerClass(Relu62); + class Linear extends Activation { + apply(x) { + return x; + } + } + Linear.className = "linear"; + serialization_exports.registerClass(Linear); + class Sigmoid2 extends Activation { + apply(x) { + return sigmoid(x); + } + } + Sigmoid2.className = "sigmoid"; + serialization_exports.registerClass(Sigmoid2); + class HardSigmoid extends Activation { + apply(x) { + return hardSigmoid(x); + } + } + HardSigmoid.className = "hardSigmoid"; + serialization_exports.registerClass(HardSigmoid); + class Softplus2 extends Activation { + apply(x) { + return softplus(x); + } + } + Softplus2.className = "softplus"; + serialization_exports.registerClass(Softplus2); + class Softsign extends Activation { + apply(x) { + return softsign(x); + } + } + Softsign.className = "softsign"; + serialization_exports.registerClass(Softsign); + class Tanh2 extends Activation { + apply(x) { + return tanh2(x); + } + } + Tanh2.className = "tanh"; + serialization_exports.registerClass(Tanh2); + class Softmax2 extends Activation { + apply(x, axis = -1) { + return softmax(x, axis); + } + } + Softmax2.className = "softmax"; + serialization_exports.registerClass(Softmax2); + class LogSoftmax2 extends Activation { + apply(x, axis = -1) { + return logSoftmax(x, axis); + } + } + LogSoftmax2.className = "logSoftmax"; + serialization_exports.registerClass(LogSoftmax2); + function serializeActivation(activation2) { + return activation2.getClassName(); + } + function deserializeActivation(config2, customObjects = {}) { + return deserializeKerasObject(config2, serialization_exports.SerializationMap.getMap().classNameMap, customObjects, "activation"); + } + function getActivation(identifier) { + if (identifier == null) { + const config2 = {}; + config2["className"] = "linear"; + config2["config"] = {}; + return deserializeActivation(config2); + } + if (typeof identifier === "string") { + const config2 = {}; + config2["className"] = identifier; + config2["config"] = {}; + return deserializeActivation(config2); + } else if (identifier instanceof Activation) { + return identifier; + } else { + return deserializeActivation(identifier); + } + } + + // node_modules/@tensorflow/tfjs-layers/dist/regularizers.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + function assertObjectArgs(args) { + if (args != null && typeof args !== "object") { + throw new Error(`Argument to L1L2 regularizer's constructor is expected to be an object, but received: ${args}`); + } + } + class Regularizer extends serialization_exports.Serializable { + } + class L1L2 extends Regularizer { + constructor(args) { + super(); + assertObjectArgs(args); + this.l1 = args == null || args.l1 == null ? 0.01 : args.l1; + this.l2 = args == null || args.l2 == null ? 0.01 : args.l2; + this.hasL1 = this.l1 !== 0; + this.hasL2 = this.l2 !== 0; + } + apply(x) { + return tidy(() => { + let regularization = zeros([1]); + if (this.hasL1) { + regularization = add2(regularization, sum2(mul(this.l1, abs(x)))); + } + if (this.hasL2) { + regularization = add2(regularization, sum2(mul(this.l2, square23(x)))); + } + return regularization.asScalar(); + }); + } + getConfig() { + return {l1: this.l1, l2: this.l2}; + } + static fromConfig(cls, config2) { + return new cls({l1: config2["l1"], l2: config2["l2"]}); + } + } + L1L2.className = "L1L2"; + serialization_exports.registerClass(L1L2); + function l1(args) { + assertObjectArgs(args); + return new L1L2({l1: args != null ? args.l1 : null, l2: 0}); + } + function l2(args) { + assertObjectArgs(args); + return new L1L2({l2: args != null ? args.l2 : null, l1: 0}); + } + const REGULARIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP = { + l1l2: "L1L2" + }; + function serializeRegularizer(constraint) { + return serializeKerasObject(constraint); + } + function deserializeRegularizer(config2, customObjects = {}) { + return deserializeKerasObject(config2, serialization_exports.SerializationMap.getMap().classNameMap, customObjects, "regularizer"); + } + function getRegularizer(identifier) { + if (identifier == null) { + return null; + } + if (typeof identifier === "string") { + const className = identifier in REGULARIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP ? REGULARIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP[identifier] : identifier; + const config2 = {className, config: {}}; + return deserializeRegularizer(config2); + } else if (identifier instanceof Regularizer) { + return identifier; + } else { + return deserializeRegularizer(identifier); + } + } + + // node_modules/@tensorflow/tfjs-layers/dist/layers/advanced_activations.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + class ReLU extends Layer { + constructor(args) { + super(args == null ? {} : args); + this.supportsMasking = true; + if (args != null) { + this.maxValue = args.maxValue; + } + } + call(inputs, kwargs) { + inputs = getExactlyOneTensor(inputs); + let output = relu(inputs); + if (this.maxValue != null) { + output = clipByValue(output, 0, this.maxValue); + } + return output; + } + computeOutputShape(inputShape) { + return inputShape; + } + getConfig() { + const config2 = {maxValue: this.maxValue}; + const baseConfig = super.getConfig(); + Object.assign(config2, baseConfig); + return config2; + } + } + ReLU.className = "ReLU"; + serialization_exports.registerClass(ReLU); + class LeakyReLU extends Layer { + constructor(args) { + super(args == null ? {} : args); + this.DEFAULT_ALPHA = 0.3; + if (args == null) { + args = {}; + } + this.alpha = args.alpha == null ? this.DEFAULT_ALPHA : args.alpha; + } + call(inputs, kwargs) { + const x = getExactlyOneTensor(inputs); + return leakyRelu(x, this.alpha); + } + computeOutputShape(inputShape) { + return inputShape; + } + getConfig() { + const config2 = {alpha: this.alpha}; + const baseConfig = super.getConfig(); + Object.assign(config2, baseConfig); + return config2; + } + } + LeakyReLU.className = "LeakyReLU"; + serialization_exports.registerClass(LeakyReLU); + class PReLU extends Layer { + constructor(args) { + super(args == null ? {} : args); + this.DEFAULT_ALPHA_INITIALIZER = "zeros"; + if (args == null) { + args = {}; + } + this.supportsMasking = true; + this.alphaInitializer = getInitializer(args.alphaInitializer || this.DEFAULT_ALPHA_INITIALIZER); + this.alphaRegularizer = getRegularizer(args.alphaRegularizer); + this.alphaConstraint = getConstraint(args.alphaConstraint); + if (args.sharedAxes == null) { + this.sharedAxes = null; + } else if (Array.isArray(args.sharedAxes)) { + this.sharedAxes = args.sharedAxes; + } else if (typeof args.sharedAxes === "number") { + this.sharedAxes = [args.sharedAxes]; + } else { + throw new ValueError(`Expected sharedAxes to be a number or an array of numbers, but got ${args.sharedAxes}`); + } + } + build(inputShape) { + inputShape = getExactlyOneShape(inputShape); + const paramShape = inputShape.slice(1); + if (this.sharedAxes != null) { + for (const i of this.sharedAxes) { + paramShape[i - 1] = 1; + } + } + this.alpha = this.addWeight("alpha", paramShape, "float32", this.alphaInitializer, this.alphaRegularizer, true, this.alphaConstraint); + const axes = {}; + if (this.sharedAxes != null) { + for (let i = 1; i < inputShape.length; ++i) { + axes[i] = inputShape[i]; + } + } + this.inputSpec = [new InputSpec({ + ndim: inputShape.length, + axes + })]; + this.built = true; + } + call(inputs, kwargs) { + inputs = getExactlyOneTensor(inputs); + return prelu(inputs, this.alpha.read()); + } + getConfig() { + const config2 = { + alphaInitializer: serializeInitializer(this.alphaInitializer), + alphaRegularizer: serializeRegularizer(this.alphaRegularizer), + alphaConstraint: serializeConstraint(this.alphaConstraint), + sharedAxes: this.sharedAxes + }; + const baseConfig = super.getConfig(); + Object.assign(config2, baseConfig); + return config2; + } + } + PReLU.className = "PReLU"; + serialization_exports.registerClass(PReLU); + class ELU extends Layer { + constructor(args) { + super(args == null ? {} : args); + this.DEFAULT_ALPHA = 1; + if (args == null) { + args = {}; + } + if (args.alpha != null && args.alpha !== this.DEFAULT_ALPHA) { + throw new NotImplementedError(`Non-default alpha value (${args.alpha}) is not supported by the ELU layer yet.`); + } + this.alpha = args.alpha == null ? this.DEFAULT_ALPHA : args.alpha; + } + call(inputs, kwargs) { + const x = getExactlyOneTensor(inputs); + return elu(x); + } + computeOutputShape(inputShape) { + return inputShape; + } + getConfig() { + const config2 = {alpha: this.alpha}; + const baseConfig = super.getConfig(); + Object.assign(config2, baseConfig); + return config2; + } + } + ELU.className = "ELU"; + serialization_exports.registerClass(ELU); + class ThresholdedReLU extends Layer { + constructor(args) { + super(args == null ? {} : args); + this.DEFAULT_THETA = 1; + if (args == null) { + args = {}; + } + this.theta = args.theta == null ? this.DEFAULT_THETA : args.theta; + } + call(inputs, kwargs) { + const x = getExactlyOneTensor(inputs); + return x.mul(cast46(x.greater(this.theta), "float32")); + } + computeOutputShape(inputShape) { + return inputShape; + } + getConfig() { + const config2 = {theta: this.theta}; + const baseConfig = super.getConfig(); + Object.assign(config2, baseConfig); + return config2; + } + } + ThresholdedReLU.className = "ThresholdedReLU"; + serialization_exports.registerClass(ThresholdedReLU); + class Softmax3 extends Layer { + constructor(args) { + super(args == null ? {} : args); + this.DEFAULT_AXIS = 1; + if (args == null) { + args = {}; + } + this.softmax = new Softmax2().apply; + this.axis = args.axis == null ? this.DEFAULT_AXIS : args.axis; + } + call(inputs, kwargs) { + const x = getExactlyOneTensor(inputs); + return this.softmax(x, this.axis); + } + computeOutputShape(inputShape) { + return inputShape; + } + getConfig() { + const config2 = {axis: this.axis}; + const baseConfig = super.getConfig(); + Object.assign(config2, baseConfig); + return config2; + } + } + Softmax3.className = "Softmax"; + serialization_exports.registerClass(Softmax3); + + // node_modules/@tensorflow/tfjs-layers/dist/utils/conv_utils.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + function normalizeArray(value, n, name) { + if (typeof value === "number") { + return pyListRepeat(value, n); + } else { + if (value.length !== n) { + throw new ValueError(`The ${name} argument must be an integer or tuple of ${n} integers. Received: ${value.length} elements.`); + } + for (let i = 0; i < n; ++i) { + const singleValue = value[i]; + if (!isInteger(singleValue)) { + throw new ValueError(`The ${name} argument must be an integer or tuple of ${n} integers. Received: ${JSON.stringify(value)} including a non-integer number ${singleValue}`); + } + } + return value; + } + } + function convOutputLength(inputLength, filterSize, padding2, stride, dilation = 1) { + if (inputLength == null) { + return inputLength; + } + const dilatedFilterSize = filterSize + (filterSize - 1) * (dilation - 1); + let outputLength; + if (padding2 === "same") { + outputLength = inputLength; + } else { + outputLength = inputLength - dilatedFilterSize + 1; + } + return Math.floor((outputLength + stride - 1) / stride); + } + function deconvLength(dimSize, strideSize, kernelSize, padding2) { + if (dimSize == null) { + return null; + } + if (padding2 === "valid") { + dimSize = dimSize * strideSize + max7([kernelSize - strideSize, 0]); + } else if (padding2 === "same") { + dimSize = dimSize * strideSize; + } else { + throw new ValueError(`Unsupport padding mode: ${padding2}.`); + } + return dimSize; + } + + // node_modules/@tensorflow/tfjs-layers/dist/layers/convolutional.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + function preprocessConv2DInput(x, dataFormat) { + return tidy(() => { + checkDataFormat(dataFormat); + if (dataFormat === "channelsFirst") { + return transpose(x, [0, 2, 3, 1]); + } else { + return x; + } + }); + } + function preprocessConv3DInput(x, dataFormat) { + return tidy(() => { + checkDataFormat(dataFormat); + if (dataFormat === "channelsFirst") { + return transpose(x, [0, 2, 3, 4, 1]); + } else { + return x; + } + }); + } + function conv1dWithBias(x, kernel, bias, strides = 1, padding2 = "valid", dataFormat, dilationRate = 1) { + return tidy(() => { + if (dataFormat == null) { + dataFormat = imageDataFormat(); + } + checkDataFormat(dataFormat); + if (x.shape.length !== 3) { + throw new ValueError(`The input of a conv1dWithBias operation should be 3, but is ${x.shape.length} instead.`); + } + if (kernel.shape.length !== 3) { + throw new ValueError(`The kernel for a conv1dWithBias operation should be 3, but is ${kernel.shape.length} instead`); + } + if (bias != null && bias.shape.length !== 1) { + throw new ValueError(`The bias for a conv1dWithBias operation should be 1, but is ${kernel.shape.length} instead`); + } + if (dataFormat === "channelsFirst") { + x = transpose(x, [0, 2, 1]); + } + if (padding2 === "causal") { + throw new NotImplementedError("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet."); + } + let y = conv1d(x, kernel, strides, padding2 === "same" ? "same" : "valid", "NWC", dilationRate); + if (bias != null) { + y = biasAdd(y, bias); + } + return y; + }); + } + function conv2dWithBiasActivation(x, kernel, bias, strides = [1, 1], padding2 = "valid", dataFormat, dilationRate, activation2 = null) { + return tidy(() => { + if (dataFormat == null) { + dataFormat = imageDataFormat(); + } + checkDataFormat(dataFormat); + if (x.rank !== 3 && x.rank !== 4) { + throw new ValueError(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${x.rank}.`); + } + if (kernel.rank !== 3 && kernel.rank !== 4) { + throw new ValueError(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${x.rank}.`); + } + let y = preprocessConv2DInput(x, dataFormat); + if (padding2 === "causal") { + throw new NotImplementedError("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet."); + } + y = fused_ops_exports.conv2d({ + x: y, + filter: kernel, + strides, + pad: padding2 === "same" ? "same" : "valid", + dilations: dilationRate, + dataFormat: "NHWC", + bias, + activation: activation2 + }); + if (dataFormat === "channelsFirst") { + y = transpose(y, [0, 3, 1, 2]); + } + return y; + }); + } + function conv3dWithBias(x, kernel, bias, strides = [1, 1, 1], padding2 = "valid", dataFormat, dilationRate) { + return tidy(() => { + if (dataFormat == null) { + dataFormat = imageDataFormat(); + } + checkDataFormat(dataFormat); + if (x.rank !== 4 && x.rank !== 5) { + throw new ValueError(`conv3dWithBias expects input to be of rank 4 or 5, but received ${x.rank}.`); + } + if (kernel.rank !== 4 && kernel.rank !== 5) { + throw new ValueError(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${x.rank}.`); + } + let y = preprocessConv3DInput(x, dataFormat); + if (padding2 === "causal") { + throw new NotImplementedError("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet."); + } + y = conv3d(y, kernel, strides, padding2 === "same" ? "same" : "valid", "NDHWC", dilationRate); + if (bias != null) { + y = biasAdd(y, bias); + } + if (dataFormat === "channelsFirst") { + y = transpose(y, [0, 4, 1, 2, 3]); + } + return y; + }); + } + class BaseConv extends Layer { + constructor(rank, args) { + super(args); + this.bias = null; + this.DEFAULT_KERNEL_INITIALIZER = "glorotNormal"; + this.DEFAULT_BIAS_INITIALIZER = "zeros"; + BaseConv.verifyArgs(args); + this.rank = rank; + assertPositiveInteger(this.rank, "rank"); + if (this.rank !== 1 && this.rank !== 2 && this.rank !== 3) { + throw new NotImplementedError(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`); + } + this.kernelSize = normalizeArray(args.kernelSize, rank, "kernelSize"); + this.strides = normalizeArray(args.strides == null ? 1 : args.strides, rank, "strides"); + this.padding = args.padding == null ? "valid" : args.padding; + checkPaddingMode(this.padding); + this.dataFormat = args.dataFormat == null ? "channelsLast" : args.dataFormat; + checkDataFormat(this.dataFormat); + this.activation = getActivation(args.activation); + this.useBias = args.useBias == null ? true : args.useBias; + this.biasInitializer = getInitializer(args.biasInitializer || this.DEFAULT_BIAS_INITIALIZER); + this.biasConstraint = getConstraint(args.biasConstraint); + this.biasRegularizer = getRegularizer(args.biasRegularizer); + this.activityRegularizer = getRegularizer(args.activityRegularizer); + this.dilationRate = normalizeArray(args.dilationRate == null ? 1 : args.dilationRate, rank, "dilationRate"); + if (this.rank === 1 && (Array.isArray(this.dilationRate) && this.dilationRate.length !== 1)) { + throw new ValueError(`dilationRate must be a number or an array of a single number for 1D convolution, but received ${JSON.stringify(this.dilationRate)}`); + } else if (this.rank === 2) { + if (typeof this.dilationRate === "number") { + this.dilationRate = [this.dilationRate, this.dilationRate]; + } else if (this.dilationRate.length !== 2) { + throw new ValueError(`dilationRate must be a number or array of two numbers for 2D convolution, but received ${JSON.stringify(this.dilationRate)}`); + } + } else if (this.rank === 3) { + if (typeof this.dilationRate === "number") { + this.dilationRate = [this.dilationRate, this.dilationRate, this.dilationRate]; + } else if (this.dilationRate.length !== 3) { + throw new ValueError(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`); + } + } + } + static verifyArgs(args) { + assert2("kernelSize" in args, `required key 'kernelSize' not in config`); + if (typeof args.kernelSize !== "number" && !checkArrayTypeAndLength(args.kernelSize, "number", 1, 3)) { + throw new ValueError(`BaseConv expects config.kernelSize to be number or number[] with length 1, 2, or 3, but received ${JSON.stringify(args.kernelSize)}.`); + } + } + getConfig() { + const config2 = { + kernelSize: this.kernelSize, + strides: this.strides, + padding: this.padding, + dataFormat: this.dataFormat, + dilationRate: this.dilationRate, + activation: serializeActivation(this.activation), + useBias: this.useBias, + biasInitializer: serializeInitializer(this.biasInitializer), + biasRegularizer: serializeRegularizer(this.biasRegularizer), + activityRegularizer: serializeRegularizer(this.activityRegularizer), + biasConstraint: serializeConstraint(this.biasConstraint) + }; + const baseConfig = super.getConfig(); + Object.assign(config2, baseConfig); + return config2; + } + } + class Conv extends BaseConv { + constructor(rank, args) { + super(rank, args); + this.kernel = null; + Conv.verifyArgs(args); + this.filters = args.filters; + assertPositiveInteger(this.filters, "filters"); + this.kernelInitializer = getInitializer(args.kernelInitializer || this.DEFAULT_KERNEL_INITIALIZER); + this.kernelConstraint = getConstraint(args.kernelConstraint); + this.kernelRegularizer = getRegularizer(args.kernelRegularizer); + } + build(inputShape) { + inputShape = getExactlyOneShape(inputShape); + const channelAxis = this.dataFormat === "channelsFirst" ? 1 : inputShape.length - 1; + if (inputShape[channelAxis] == null) { + throw new ValueError(`The channel dimension of the input should be defined. Found ${inputShape[channelAxis]}`); + } + const inputDim = inputShape[channelAxis]; + const kernelShape = this.kernelSize.concat([inputDim, this.filters]); + this.kernel = this.addWeight("kernel", kernelShape, null, this.kernelInitializer, this.kernelRegularizer, true, this.kernelConstraint); + if (this.useBias) { + this.bias = this.addWeight("bias", [this.filters], null, this.biasInitializer, this.biasRegularizer, true, this.biasConstraint); + } + this.inputSpec = [{ndim: this.rank + 2, axes: {[channelAxis]: inputDim}}]; + this.built = true; + } + call(inputs, kwargs) { + return tidy(() => { + inputs = getExactlyOneTensor(inputs); + let outputs; + const biasValue = this.bias == null ? null : this.bias.read(); + const fusedActivationName = mapActivationToFusedKernel(this.activation.getClassName()); + if (fusedActivationName != null && this.rank === 2) { + outputs = conv2dWithBiasActivation(inputs, this.kernel.read(), biasValue, this.strides, this.padding, this.dataFormat, this.dilationRate, fusedActivationName); + } else { + if (this.rank === 1) { + outputs = conv1dWithBias(inputs, this.kernel.read(), biasValue, this.strides[0], this.padding, this.dataFormat, this.dilationRate[0]); + } else if (this.rank === 2) { + outputs = conv2dWithBiasActivation(inputs, this.kernel.read(), biasValue, this.strides, this.padding, this.dataFormat, this.dilationRate); + } else if (this.rank === 3) { + outputs = conv3dWithBias(inputs, this.kernel.read(), biasValue, this.strides, this.padding, this.dataFormat, this.dilationRate); + } else { + throw new NotImplementedError("convolutions greater than 3D are not implemented yet."); + } + if (this.activation != null) { + outputs = this.activation.apply(outputs); + } + } + return outputs; + }); + } + computeOutputShape(inputShape) { + inputShape = getExactlyOneShape(inputShape); + const newSpace = []; + const space = this.dataFormat === "channelsLast" ? inputShape.slice(1, inputShape.length - 1) : inputShape.slice(2); + for (let i = 0; i < space.length; ++i) { + const newDim = convOutputLength(space[i], this.kernelSize[i], this.padding, this.strides[i], typeof this.dilationRate === "number" ? this.dilationRate : this.dilationRate[i]); + newSpace.push(newDim); + } + let outputShape = [inputShape[0]]; + if (this.dataFormat === "channelsLast") { + outputShape = outputShape.concat(newSpace); + outputShape.push(this.filters); + } else { + outputShape.push(this.filters); + outputShape = outputShape.concat(newSpace); + } + return outputShape; + } + getConfig() { + const config2 = { + filters: this.filters, + kernelInitializer: serializeInitializer(this.kernelInitializer), + kernelRegularizer: serializeRegularizer(this.kernelRegularizer), + kernelConstraint: serializeConstraint(this.kernelConstraint) + }; + const baseConfig = super.getConfig(); + Object.assign(config2, baseConfig); + return config2; + } + static verifyArgs(args) { + if (!("filters" in args) || typeof args.filters !== "number" || args.filters < 1) { + throw new ValueError(`Convolution layer expected config.filters to be a 'number' > 0 but got ${JSON.stringify(args.filters)}`); + } + } + } + class Conv2D2 extends Conv { + constructor(args) { + super(2, args); + Conv2D2.verifyArgs(args); + } + getConfig() { + const config2 = super.getConfig(); + delete config2["rank"]; + return config2; + } + static verifyArgs(args) { + if (typeof args.kernelSize !== "number" && !checkArrayTypeAndLength(args.kernelSize, "number", 1, 2)) { + throw new ValueError(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(args.kernelSize)}.`); + } + } + } + Conv2D2.className = "Conv2D"; + serialization_exports.registerClass(Conv2D2); + class Conv3D2 extends Conv { + constructor(args) { + super(3, args); + Conv3D2.verifyArgs(args); + } + getConfig() { + const config2 = super.getConfig(); + delete config2["rank"]; + return config2; + } + static verifyArgs(args) { + if (typeof args.kernelSize !== "number") { + if (!(Array.isArray(args.kernelSize) && (args.kernelSize.length === 1 || args.kernelSize.length === 3))) { + throw new ValueError(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(args.kernelSize)}.`); + } + } + } + } + Conv3D2.className = "Conv3D"; + serialization_exports.registerClass(Conv3D2); + class Conv2DTranspose extends Conv2D2 { + constructor(args) { + super(args); + this.inputSpec = [new InputSpec({ndim: 4})]; + if (this.padding !== "same" && this.padding !== "valid") { + throw new ValueError(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`); + } + } + build(inputShape) { + inputShape = getExactlyOneShape(inputShape); + if (inputShape.length !== 4) { + throw new ValueError("Input should have rank 4; Received input shape: " + JSON.stringify(inputShape)); + } + const channelAxis = this.dataFormat === "channelsFirst" ? 1 : inputShape.length - 1; + if (inputShape[channelAxis] == null) { + throw new ValueError("The channel dimension of the inputs should be defined. Found `None`."); + } + const inputDim = inputShape[channelAxis]; + const kernelShape = this.kernelSize.concat([this.filters, inputDim]); + this.kernel = this.addWeight("kernel", kernelShape, "float32", this.kernelInitializer, this.kernelRegularizer, true, this.kernelConstraint); + if (this.useBias) { + this.bias = this.addWeight("bias", [this.filters], "float32", this.biasInitializer, this.biasRegularizer, true, this.biasConstraint); + } + this.inputSpec = [new InputSpec({ndim: 4, axes: {[channelAxis]: inputDim}})]; + this.built = true; + } + call(inputs, kwargs) { + return tidy(() => { + let input2 = getExactlyOneTensor(inputs); + if (input2.shape.length !== 4) { + throw new ValueError(`Conv2DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${input2.shape.length}`); + } + const inputShape = input2.shape; + const batchSize = inputShape[0]; + let hAxis; + let wAxis; + if (this.dataFormat === "channelsFirst") { + hAxis = 2; + wAxis = 3; + } else { + hAxis = 1; + wAxis = 2; + } + const height = inputShape[hAxis]; + const width = inputShape[wAxis]; + const kernelH = this.kernelSize[0]; + const kernelW = this.kernelSize[1]; + const strideH = this.strides[0]; + const strideW = this.strides[1]; + const outHeight = deconvLength(height, strideH, kernelH, this.padding); + const outWidth = deconvLength(width, strideW, kernelW, this.padding); + const outputShape = [batchSize, outHeight, outWidth, this.filters]; + if (this.dataFormat !== "channelsLast") { + input2 = transpose(input2, [0, 2, 3, 1]); + } + let outputs = conv2dTranspose(input2, this.kernel.read(), outputShape, this.strides, this.padding); + if (this.dataFormat !== "channelsLast") { + outputs = transpose(outputs, [0, 3, 1, 2]); + } + if (this.bias != null) { + outputs = biasAdd(outputs, this.bias.read(), this.dataFormat); + } + if (this.activation != null) { + outputs = this.activation.apply(outputs); + } + return outputs; + }); + } + computeOutputShape(inputShape) { + inputShape = getExactlyOneShape(inputShape); + const outputShape = inputShape.slice(); + let channelAxis; + let heightAxis; + let widthAxis; + if (this.dataFormat === "channelsFirst") { + channelAxis = 1; + heightAxis = 2; + widthAxis = 3; + } else { + channelAxis = 3; + heightAxis = 1; + widthAxis = 2; + } + const kernelH = this.kernelSize[0]; + const kernelW = this.kernelSize[1]; + const strideH = this.strides[0]; + const strideW = this.strides[1]; + outputShape[channelAxis] = this.filters; + outputShape[heightAxis] = deconvLength(outputShape[heightAxis], strideH, kernelH, this.padding); + outputShape[widthAxis] = deconvLength(outputShape[widthAxis], strideW, kernelW, this.padding); + return outputShape; + } + getConfig() { + const config2 = super.getConfig(); + delete config2["dilationRate"]; + return config2; + } + } + Conv2DTranspose.className = "Conv2DTranspose"; + serialization_exports.registerClass(Conv2DTranspose); + class SeparableConv extends Conv { + constructor(rank, config2) { + super(rank, config2); + this.DEFAULT_DEPTHWISE_INITIALIZER = "glorotUniform"; + this.DEFAULT_POINTWISE_INITIALIZER = "glorotUniform"; + this.depthwiseKernel = null; + this.pointwiseKernel = null; + if (config2.filters == null) { + throw new ValueError("The `filters` configuration field is required by SeparableConv, but is unspecified."); + } + if (config2.kernelInitializer != null || config2.kernelRegularizer != null || config2.kernelConstraint != null) { + throw new ValueError("Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead."); + } + if (config2.padding != null && config2.padding !== "same" && config2.padding !== "valid") { + throw new ValueError(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(config2.padding)}`); + } + this.depthMultiplier = config2.depthMultiplier == null ? 1 : config2.depthMultiplier; + this.depthwiseInitializer = getInitializer(config2.depthwiseInitializer || this.DEFAULT_DEPTHWISE_INITIALIZER); + this.depthwiseRegularizer = getRegularizer(config2.depthwiseRegularizer); + this.depthwiseConstraint = getConstraint(config2.depthwiseConstraint); + this.pointwiseInitializer = getInitializer(config2.depthwiseInitializer || this.DEFAULT_POINTWISE_INITIALIZER); + this.pointwiseRegularizer = getRegularizer(config2.pointwiseRegularizer); + this.pointwiseConstraint = getConstraint(config2.pointwiseConstraint); + } + build(inputShape) { + inputShape = getExactlyOneShape(inputShape); + if (inputShape.length < this.rank + 2) { + throw new ValueError(`Inputs to SeparableConv${this.rank}D should have rank ${this.rank + 2}, but received input shape: ${JSON.stringify(inputShape)}`); + } + const channelAxis = this.dataFormat === "channelsFirst" ? 1 : inputShape.length - 1; + if (inputShape[channelAxis] == null || inputShape[channelAxis] < 0) { + throw new ValueError(`The channel dimension of the inputs should be defined, but found ${JSON.stringify(inputShape[channelAxis])}`); + } + const inputDim = inputShape[channelAxis]; + const depthwiseKernelShape = this.kernelSize.concat([inputDim, this.depthMultiplier]); + const pointwiseKernelShape = []; + for (let i = 0; i < this.rank; ++i) { + pointwiseKernelShape.push(1); + } + pointwiseKernelShape.push(inputDim * this.depthMultiplier, this.filters); + const trainable = true; + this.depthwiseKernel = this.addWeight("depthwise_kernel", depthwiseKernelShape, "float32", this.depthwiseInitializer, this.depthwiseRegularizer, trainable, this.depthwiseConstraint); + this.pointwiseKernel = this.addWeight("pointwise_kernel", pointwiseKernelShape, "float32", this.pointwiseInitializer, this.pointwiseRegularizer, trainable, this.pointwiseConstraint); + if (this.useBias) { + this.bias = this.addWeight("bias", [this.filters], "float32", this.biasInitializer, this.biasRegularizer, trainable, this.biasConstraint); + } else { + this.bias = null; + } + this.inputSpec = [new InputSpec({ndim: this.rank + 2, axes: {[channelAxis]: inputDim}})]; + this.built = true; + } + call(inputs, kwargs) { + return tidy(() => { + inputs = getExactlyOneTensor(inputs); + let output; + if (this.rank === 1) { + throw new NotImplementedError("1D separable convolution is not implemented yet."); + } else if (this.rank === 2) { + if (this.dataFormat === "channelsFirst") { + inputs = transpose(inputs, [0, 2, 3, 1]); + } + output = separableConv2d(inputs, this.depthwiseKernel.read(), this.pointwiseKernel.read(), this.strides, this.padding, this.dilationRate, "NHWC"); + } + if (this.useBias) { + output = biasAdd(output, this.bias.read(), this.dataFormat); + } + if (this.activation != null) { + output = this.activation.apply(output); + } + if (this.dataFormat === "channelsFirst") { + output = transpose(output, [0, 3, 1, 2]); + } + return output; + }); + } + getConfig() { + const config2 = super.getConfig(); + delete config2["rank"]; + delete config2["kernelInitializer"]; + delete config2["kernelRegularizer"]; + delete config2["kernelConstraint"]; + config2["depthwiseInitializer"] = serializeInitializer(this.depthwiseInitializer); + config2["pointwiseInitializer"] = serializeInitializer(this.pointwiseInitializer); + config2["depthwiseRegularizer"] = serializeRegularizer(this.depthwiseRegularizer); + config2["pointwiseRegularizer"] = serializeRegularizer(this.pointwiseRegularizer); + config2["depthwiseConstraint"] = serializeConstraint(this.depthwiseConstraint); + config2["pointwiseConstraint"] = serializeConstraint(this.pointwiseConstraint); + return config2; + } + } + SeparableConv.className = "SeparableConv"; + class SeparableConv2D extends SeparableConv { + constructor(args) { + super(2, args); + } + } + SeparableConv2D.className = "SeparableConv2D"; + serialization_exports.registerClass(SeparableConv2D); + class Conv1D extends Conv { + constructor(args) { + super(1, args); + Conv1D.verifyArgs(args); + this.inputSpec = [{ndim: 3}]; + } + getConfig() { + const config2 = super.getConfig(); + delete config2["rank"]; + delete config2["dataFormat"]; + return config2; + } + static verifyArgs(args) { + if (typeof args.kernelSize !== "number" && !checkArrayTypeAndLength(args.kernelSize, "number", 1, 1)) { + throw new ValueError(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(args.kernelSize)}.`); + } + } + } + Conv1D.className = "Conv1D"; + serialization_exports.registerClass(Conv1D); + class Cropping2D extends Layer { + constructor(args) { + super(args); + if (typeof args.cropping === "number") { + this.cropping = [[args.cropping, args.cropping], [args.cropping, args.cropping]]; + } else if (typeof args.cropping[0] === "number") { + this.cropping = [ + [args.cropping[0], args.cropping[0]], + [args.cropping[1], args.cropping[1]] + ]; + } else { + this.cropping = args.cropping; + } + this.dataFormat = args.dataFormat === void 0 ? "channelsLast" : args.dataFormat; + this.inputSpec = [{ndim: 4}]; + } + computeOutputShape(inputShape) { + if (this.dataFormat === "channelsFirst") { + return [ + inputShape[0], + inputShape[1], + inputShape[2] - this.cropping[0][0] - this.cropping[0][1], + inputShape[3] - this.cropping[1][0] - this.cropping[1][1] + ]; + } else { + return [ + inputShape[0], + inputShape[1] - this.cropping[0][0] - this.cropping[0][1], + inputShape[2] - this.cropping[1][0] - this.cropping[1][1], + inputShape[3] + ]; + } + } + call(inputs, kwargs) { + return tidy(() => { + inputs = getExactlyOneTensor(inputs); + if (this.dataFormat === "channelsLast") { + const hSliced = sliceAlongAxis(inputs, this.cropping[0][0], inputs.shape[1] - this.cropping[0][0] - this.cropping[0][1], 2); + return sliceAlongAxis(hSliced, this.cropping[1][0], inputs.shape[2] - this.cropping[1][1] - this.cropping[1][0], 3); + } else { + const hSliced = sliceAlongAxis(inputs, this.cropping[0][0], inputs.shape[2] - this.cropping[0][0] - this.cropping[0][1], 3); + return sliceAlongAxis(hSliced, this.cropping[1][0], inputs.shape[3] - this.cropping[1][1] - this.cropping[1][0], 4); + } + }); + } + getConfig() { + const config2 = {cropping: this.cropping, dataFormat: this.dataFormat}; + const baseConfig = super.getConfig(); + Object.assign(config2, baseConfig); + return config2; + } + } + Cropping2D.className = "Cropping2D"; + serialization_exports.registerClass(Cropping2D); + class UpSampling2D extends Layer { + constructor(args) { + super(args); + this.DEFAULT_SIZE = [2, 2]; + this.inputSpec = [{ndim: 4}]; + this.size = args.size == null ? this.DEFAULT_SIZE : args.size; + this.dataFormat = args.dataFormat == null ? "channelsLast" : args.dataFormat; + } + computeOutputShape(inputShape) { + if (this.dataFormat === "channelsFirst") { + const height = inputShape[2] == null ? null : this.size[0] * inputShape[2]; + const width = inputShape[3] == null ? null : this.size[1] * inputShape[3]; + return [inputShape[0], inputShape[1], height, width]; + } else { + const height = inputShape[1] == null ? null : this.size[0] * inputShape[1]; + const width = inputShape[2] == null ? null : this.size[1] * inputShape[2]; + return [inputShape[0], height, width, inputShape[3]]; + } + } + call(inputs, kwargs) { + return tidy(() => { + let input2 = getExactlyOneTensor(inputs); + const inputShape = input2.shape; + if (this.dataFormat === "channelsFirst") { + input2 = transpose(input2, [0, 2, 3, 1]); + const height = this.size[0] * inputShape[2]; + const width = this.size[1] * inputShape[3]; + const resized = input2.resizeNearestNeighbor([height, width]); + return transpose(resized, [0, 3, 1, 2]); + } else { + const height = this.size[0] * inputShape[1]; + const width = this.size[1] * inputShape[2]; + return input2.resizeNearestNeighbor([height, width]); + } + }); + } + getConfig() { + const config2 = {size: this.size, dataFormat: this.dataFormat}; + const baseConfig = super.getConfig(); + Object.assign(config2, baseConfig); + return config2; + } + } + UpSampling2D.className = "UpSampling2D"; + serialization_exports.registerClass(UpSampling2D); + + // node_modules/@tensorflow/tfjs-layers/dist/layers/convolutional_depthwise.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + function depthwiseConv2d3(x, depthwiseKernel, strides = [1, 1], padding2 = "valid", dataFormat, dilationRate) { + return tidy(() => { + if (dataFormat == null) { + dataFormat = imageDataFormat(); + } + checkDataFormat(dataFormat); + let y = preprocessConv2DInput(x, dataFormat); + if (x.rank !== 4) { + throw new ValueError(`Input for depthwiseConv2d is required to be 4-D, but is instead ${x.rank}-D`); + } + if (depthwiseKernel.rank !== 4) { + throw new ValueError(`depthwiseKernel is required to be 4-D, but is instead ${depthwiseKernel.rank}-D`); + } + y = depthwiseConv2d(y, depthwiseKernel, strides, padding2 === "same" ? "same" : "valid", "NHWC", dilationRate); + if (dataFormat === "channelsFirst") { + y = transpose(y, [0, 3, 1, 2]); + } + return y; + }); + } + class DepthwiseConv2D extends BaseConv { + constructor(args) { + super(2, args); + this.depthwiseKernel = null; + this.depthMultiplier = args.depthMultiplier == null ? 1 : args.depthMultiplier; + this.depthwiseInitializer = getInitializer(args.depthwiseInitializer || this.DEFAULT_KERNEL_INITIALIZER); + this.depthwiseConstraint = getConstraint(args.depthwiseConstraint); + this.depthwiseRegularizer = getRegularizer(args.depthwiseRegularizer); + } + build(inputShape) { + inputShape = getExactlyOneShape(inputShape); + if (inputShape.length < 4) { + throw new ValueError(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(inputShape)}.`); + } + const channelAxis = this.dataFormat === "channelsFirst" ? 1 : 3; + if (inputShape[channelAxis] == null || inputShape[channelAxis] < 0) { + throw new ValueError(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${inputShape[channelAxis]}).`); + } + const inputDim = inputShape[channelAxis]; + const depthwiseKernelShape = [ + this.kernelSize[0], + this.kernelSize[1], + inputDim, + this.depthMultiplier + ]; + this.depthwiseKernel = this.addWeight("depthwise_kernel", depthwiseKernelShape, null, this.depthwiseInitializer, this.depthwiseRegularizer, true, this.depthwiseConstraint); + if (this.useBias) { + this.bias = this.addWeight("bias", [inputDim * this.depthMultiplier], null, this.biasInitializer, this.biasRegularizer, true, this.biasConstraint); + } else { + this.bias = null; + } + this.built = true; + } + call(inputs, kwargs) { + return tidy(() => { + inputs = getExactlyOneTensor(inputs); + let outputs = depthwiseConv2d3(inputs, this.depthwiseKernel.read(), this.strides, this.padding, this.dataFormat, null); + if (this.useBias) { + outputs = biasAdd(outputs, this.bias.read(), this.dataFormat); + } + if (this.activation != null) { + outputs = this.activation.apply(outputs); + } + return outputs; + }); + } + computeOutputShape(inputShape) { + inputShape = getExactlyOneShape(inputShape); + const rows = this.dataFormat === "channelsFirst" ? inputShape[2] : inputShape[1]; + const cols = this.dataFormat === "channelsFirst" ? inputShape[3] : inputShape[2]; + const outFilters = this.dataFormat === "channelsFirst" ? inputShape[1] * this.depthMultiplier : inputShape[3] * this.depthMultiplier; + const outRows = convOutputLength(rows, this.kernelSize[0], this.padding, this.strides[0]); + const outCols = convOutputLength(cols, this.kernelSize[1], this.padding, this.strides[1]); + if (this.dataFormat === "channelsFirst") { + return [inputShape[0], outFilters, outRows, outCols]; + } else { + return [inputShape[0], outRows, outCols, outFilters]; + } + } + getConfig() { + const config2 = super.getConfig(); + config2["depthMultiplier"] = this.depthMultiplier; + config2["depthwiseInitializer"] = serializeInitializer(this.depthwiseInitializer); + config2["depthwiseRegularizer"] = serializeRegularizer(this.depthwiseRegularizer); + config2["depthwiseConstraint"] = serializeConstraint(this.depthwiseRegularizer); + return config2; + } + } + DepthwiseConv2D.className = "DepthwiseConv2D"; + serialization_exports.registerClass(DepthwiseConv2D); + + // node_modules/@tensorflow/tfjs-layers/dist/layers/core.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + class Dropout extends Layer { + constructor(args) { + super(args); + this.rate = Math.max(Math.min(args.rate, 1), 0); + this.noiseShape = args.noiseShape; + this.seed = args.seed; + this.supportsMasking = true; + } + getNoiseShape(input2) { + if (this.noiseShape == null) { + return this.noiseShape; + } + const inputShape = input2.shape; + const noiseShape = []; + for (let i = 0; i < this.noiseShape.length; ++i) { + noiseShape.push(this.noiseShape[i] == null ? inputShape[i] : this.noiseShape[i]); + } + return noiseShape; + } + call(inputs, kwargs) { + return tidy(() => { + this.invokeCallHook(inputs, kwargs); + const input2 = getExactlyOneTensor(inputs); + if (0 < this.rate && this.rate < 1) { + const training5 = kwargs["training"] == null ? false : kwargs["training"]; + const noiseShape = this.getNoiseShape(input2); + const output = inTrainPhase(() => dropout2(input2, this.rate, noiseShape, this.seed), () => input2, training5); + return output; + } + return inputs; + }); + } + getConfig() { + const config2 = { + rate: this.rate, + noiseShape: this.noiseShape, + seed: this.seed + }; + const baseConfig = super.getConfig(); + Object.assign(config2, baseConfig); + return config2; + } + dispose() { + return super.dispose(); + } + } + Dropout.className = "Dropout"; + serialization_exports.registerClass(Dropout); + class SpatialDropout1D extends Dropout { + constructor(args) { + super(args); + this.inputSpec = [{ndim: 3}]; + } + getNoiseShape(input2) { + const inputShape = input2.shape; + return [inputShape[0], 1, inputShape[2]]; + } + } + SpatialDropout1D.className = "SpatialDropout1D"; + serialization_exports.registerClass(SpatialDropout1D); + class Dense extends Layer { + constructor(args) { + super(args); + this.activation = null; + this.useBias = true; + this.kernel = null; + this.bias = null; + this.DEFAULT_KERNEL_INITIALIZER = "glorotNormal"; + this.DEFAULT_BIAS_INITIALIZER = "zeros"; + if (args.batchInputShape == null && args.inputShape == null && args.inputDim != null) { + let batchSize = null; + if (args.batchSize != null) { + batchSize = args.batchSize; + } + this.batchInputShape = [batchSize, args.inputDim]; + } + this.units = args.units; + assertPositiveInteger(this.units, "units"); + this.activation = getActivation(args.activation); + if (args.useBias != null) { + this.useBias = args.useBias; + } + this.kernelInitializer = getInitializer(args.kernelInitializer || this.DEFAULT_KERNEL_INITIALIZER); + this.biasInitializer = getInitializer(args.biasInitializer || this.DEFAULT_BIAS_INITIALIZER); + this.kernelConstraint = getConstraint(args.kernelConstraint); + this.biasConstraint = getConstraint(args.biasConstraint); + this.kernelRegularizer = getRegularizer(args.kernelRegularizer); + this.biasRegularizer = getRegularizer(args.biasRegularizer); + this.activityRegularizer = getRegularizer(args.activityRegularizer); + this.supportsMasking = true; + this.inputSpec = [{minNDim: 2}]; + } + build(inputShape) { + inputShape = getExactlyOneShape(inputShape); + const inputLastDim = inputShape[inputShape.length - 1]; + if (this.kernel == null) { + this.kernel = this.addWeight("kernel", [inputLastDim, this.units], null, this.kernelInitializer, this.kernelRegularizer, true, this.kernelConstraint); + if (this.useBias) { + this.bias = this.addWeight("bias", [this.units], null, this.biasInitializer, this.biasRegularizer, true, this.biasConstraint); + } + } + this.inputSpec = [{minNDim: 2, axes: {[-1]: inputLastDim}}]; + this.built = true; + } + computeOutputShape(inputShape) { + inputShape = getExactlyOneShape(inputShape); + const outputShape = inputShape.slice(); + outputShape[outputShape.length - 1] = this.units; + return outputShape; + } + call(inputs, kwargs) { + return tidy(() => { + this.invokeCallHook(inputs, kwargs); + const input2 = getExactlyOneTensor(inputs); + const fusedActivationName = mapActivationToFusedKernel(this.activation.getClassName()); + let output; + if (fusedActivationName != null) { + output = dot3(input2, this.kernel.read(), fusedActivationName, this.bias ? this.bias.read() : null); + } else { + output = dot3(input2, this.kernel.read()); + if (this.bias != null) { + output = biasAdd(output, this.bias.read()); + } + if (this.activation != null) { + output = this.activation.apply(output); + } + } + return output; + }); + } + getConfig() { + const config2 = { + units: this.units, + activation: serializeActivation(this.activation), + useBias: this.useBias, + kernelInitializer: serializeInitializer(this.kernelInitializer), + biasInitializer: serializeInitializer(this.biasInitializer), + kernelRegularizer: serializeRegularizer(this.kernelRegularizer), + biasRegularizer: serializeRegularizer(this.biasRegularizer), + activityRegularizer: serializeRegularizer(this.activityRegularizer), + kernelConstraint: serializeConstraint(this.kernelConstraint), + biasConstraint: serializeConstraint(this.biasConstraint) + }; + const baseConfig = super.getConfig(); + Object.assign(config2, baseConfig); + return config2; + } + } + Dense.className = "Dense"; + serialization_exports.registerClass(Dense); + class Flatten extends Layer { + constructor(args) { + args = args || {}; + super(args); + this.inputSpec = [{minNDim: 3}]; + this.dataFormat = args.dataFormat; + } + computeOutputShape(inputShape) { + inputShape = getExactlyOneShape(inputShape); + for (const dim of inputShape.slice(1)) { + if (dim == null) { + throw new ValueError(`The shape of the input to "Flatten" is not fully defined (got ${inputShape.slice(1)}). Make sure to pass a complete "input_shape" or "batch_input_shape" argument to the first layer in your model.`); + } + } + return [inputShape[0], arrayProd(inputShape, 1)]; + } + call(inputs, kwargs) { + return tidy(() => { + this.invokeCallHook(inputs, kwargs); + let input2 = getExactlyOneTensor(inputs); + if (this.dataFormat === "channelsFirst" && input2.rank > 1) { + const permutation = [0]; + for (let i = 2; i < input2.rank; ++i) { + permutation.push(i); + } + permutation.push(1); + input2 = input2.transpose(permutation); + } + return batchFlatten(input2); + }); + } + getConfig() { + const config2 = {}; + if (this.dataFormat != null) { + config2["dataFormat"] = this.dataFormat; + } + const baseConfig = super.getConfig(); + Object.assign(config2, baseConfig); + return config2; + } + } + Flatten.className = "Flatten"; + serialization_exports.registerClass(Flatten); + class Activation2 extends Layer { + constructor(args) { + super(args); + this.supportsMasking = true; + this.activation = getActivation(args.activation); + } + call(inputs, kwargs) { + return tidy(() => { + this.invokeCallHook(inputs, kwargs); + const input2 = getExactlyOneTensor(inputs); + return this.activation.apply(input2); + }); + } + getConfig() { + const config2 = {activation: serializeActivation(this.activation)}; + const baseConfig = super.getConfig(); + Object.assign(config2, baseConfig); + return config2; + } + } + Activation2.className = "Activation"; + serialization_exports.registerClass(Activation2); + class RepeatVector extends Layer { + constructor(args) { + super(args); + this.n = args.n; + this.inputSpec = [{ndim: 2}]; + } + computeOutputShape(inputShape) { + return [inputShape[0], this.n, inputShape[1]]; + } + call(inputs, kwargs) { + return tidy(() => { + inputs = getExactlyOneTensor(inputs); + return repeat(inputs, this.n); + }); + } + getConfig() { + const config2 = { + n: this.n + }; + const baseConfig = super.getConfig(); + Object.assign(config2, baseConfig); + return config2; + } + } + RepeatVector.className = "RepeatVector"; + serialization_exports.registerClass(RepeatVector); + class Reshape2 extends Layer { + constructor(args) { + super(args); + this.targetShape = args.targetShape; + for (let i = 0; i < this.targetShape.length; ++i) { + if (this.isUnknown(this.targetShape[i])) { + this.targetShape[i] = null; + } + } + } + isUnknown(dim) { + return dim < 0 || dim == null; + } + fixUnknownDimension(inputShape, outputShape) { + const errorMsg = "Total size of new array must be unchanged."; + const finalShape = outputShape.slice(); + let known = 1; + let unknown = null; + for (let i = 0; i < finalShape.length; ++i) { + const dim = finalShape[i]; + if (this.isUnknown(dim)) { + if (unknown === null) { + unknown = i; + } else { + throw new ValueError("Can only specifiy one unknown dimension."); + } + } else { + known *= dim; + } + } + const originalSize = arrayProd(inputShape); + if (unknown !== null) { + if (known === 0 || originalSize % known !== 0) { + throw new ValueError(errorMsg); + } + finalShape[unknown] = originalSize / known; + } else if (originalSize !== known) { + throw new ValueError(errorMsg); + } + return finalShape; + } + computeOutputShape(inputShape) { + let anyUnknownDims = false; + for (let i = 0; i < inputShape.length; ++i) { + if (this.isUnknown(inputShape[i])) { + anyUnknownDims = true; + break; + } + } + if (anyUnknownDims) { + return inputShape.slice(0, 1).concat(this.targetShape); + } else { + return inputShape.slice(0, 1).concat(this.fixUnknownDimension(inputShape.slice(1), this.targetShape)); + } + } + call(inputs, kwargs) { + return tidy(() => { + this.invokeCallHook(inputs, kwargs); + const input2 = getExactlyOneTensor(inputs); + const inputShape = input2.shape; + const outputShape = inputShape.slice(0, 1).concat(this.fixUnknownDimension(inputShape.slice(1), this.targetShape)); + return input2.reshape(outputShape); + }); + } + getConfig() { + const config2 = { + targetShape: this.targetShape + }; + const baseConfig = super.getConfig(); + Object.assign(config2, baseConfig); + return config2; + } + } + Reshape2.className = "Reshape"; + serialization_exports.registerClass(Reshape2); + class Permute extends Layer { + constructor(args) { + super(args); + if (args.dims == null) { + throw new Error("Required configuration field `dims` is missing during Permute constructor call."); + } + if (!Array.isArray(args.dims)) { + throw new Error(`Permute constructor requires \`dims\` to be an Array, but received ${args.dims} instead.`); + } + const expectedSortedIndices = range4(1, args.dims.length + 1); + if (!util_exports.arraysEqual(args.dims.slice().sort(), expectedSortedIndices)) { + throw new Error("Invalid permutation `dims`: " + JSON.stringify(args.dims) + " `dims` must contain consecutive integers starting from 1."); + } + this.dims = args.dims; + this.dimsIncludingBatch = [0].concat(this.dims); + this.inputSpec = [new InputSpec({ndim: this.dims.length + 1})]; + } + computeOutputShape(inputShape) { + inputShape = getExactlyOneShape(inputShape); + const outputShape = inputShape.slice(); + this.dims.forEach((dim, i) => { + outputShape[i + 1] = inputShape[dim]; + }); + return outputShape; + } + call(inputs, kwargs) { + return transpose(getExactlyOneTensor(inputs), this.dimsIncludingBatch); + } + getConfig() { + const config2 = { + dims: this.dims + }; + const baseConfig = super.getConfig(); + Object.assign(config2, baseConfig); + return config2; + } + } + Permute.className = "Permute"; + serialization_exports.registerClass(Permute); + class Masking extends Layer { + constructor(args) { + super(args == null ? {} : args); + this.supportsMasking = true; + if (args != null) { + this.maskValue = args.maskValue == null ? 0 : args.maskValue; + } else { + this.maskValue = 0; + } + } + computeOutputShape(inputShape) { + return inputShape; + } + getConfig() { + const baseConfig = super.getConfig(); + const config2 = {maskValue: this.maskValue}; + Object.assign(config2, baseConfig); + return config2; + } + computeMask(inputs, mask) { + const input2 = getExactlyOneTensor(inputs); + const axis = -1; + return any(notEqual(input2, this.maskValue), axis); + } + call(inputs, kwargs) { + return tidy(() => { + this.invokeCallHook(inputs, kwargs); + const input2 = getExactlyOneTensor(inputs); + const axis = -1; + const keepDims = true; + const booleanMask = any(notEqual(input2, this.maskValue), axis, keepDims); + const output = input2.mul(booleanMask.asType(input2.dtype)); + return output; + }); + } + } + Masking.className = "Masking"; + serialization_exports.registerClass(Masking); + + // node_modules/@tensorflow/tfjs-layers/dist/layers/embeddings.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + class Embedding extends Layer { + constructor(args) { + super(args); + this.embeddings = null; + this.DEFAULT_EMBEDDINGS_INITIALIZER = "randomUniform"; + if (args.batchInputShape == null && args.inputShape == null) { + let batchSize = null; + if (args.batchSize != null) { + batchSize = args.batchSize; + } + if (args.inputLength == null) { + this.batchInputShape = [batchSize, null]; + } else { + this.batchInputShape = [batchSize].concat(toList(args.inputLength)); + } + } + this.inputDim = args.inputDim; + assertPositiveInteger(this.inputDim, "inputDim"); + this.outputDim = args.outputDim; + assertPositiveInteger(this.outputDim, "outputDim"); + this.embeddingsInitializer = getInitializer(args.embeddingsInitializer || this.DEFAULT_EMBEDDINGS_INITIALIZER); + this.embeddingsRegularizer = getRegularizer(args.embeddingsRegularizer); + this.activityRegularizer = getRegularizer(args.activityRegularizer); + this.embeddingsConstraint = getConstraint(args.embeddingsConstraint); + this.maskZero = args.maskZero; + this.supportsMasking = args.maskZero; + this.inputLength = args.inputLength; + } + build(inputShape) { + this.embeddings = this.addWeight("embeddings", [this.inputDim, this.outputDim], this.dtype, this.embeddingsInitializer, this.embeddingsRegularizer, true, this.embeddingsConstraint); + this.built = true; + } + warnOnIncompatibleInputShape(inputShape) { + } + computeMask(inputs, mask) { + return tidy(() => { + if (!this.maskZero) { + return null; + } else { + inputs = getExactlyOneTensor(inputs); + return notEqual(inputs, zerosLike(inputs)); + } + }); + } + computeOutputShape(inputShape) { + inputShape = getExactlyOneShape(inputShape); + if (this.inputLength == null) { + return [...inputShape, this.outputDim]; + } + const inLens = toList(this.inputLength); + if (inLens.length !== inputShape.length - 1) { + throw new ValueError(`"inputLength" is ${this.inputLength}, but received input shape has shape ${inputShape}`); + } else { + let i = 0; + for (let k = 0; k < inLens.length; ++k) { + const s1 = inLens[k]; + const s2 = inputShape[k + 1]; + if (s1 != null && s2 != null && s1 !== s2) { + throw new ValueError(`"inputLength" is ${this.inputLength}, but received input shape has shape ${inputShape}`); + } else if (s1 == null) { + inLens[i] = s2; + } + i++; + } + } + return [inputShape[0], ...inLens, this.outputDim]; + } + call(inputs, kwargs) { + return tidy(() => { + this.invokeCallHook(inputs, kwargs); + let input2 = getExactlyOneTensor(inputs); + if (input2.dtype !== "int32") { + input2 = cast46(input2, "int32"); + } + const output = gather5(this.embeddings.read(), input2.as1D()); + return output.reshape(getExactlyOneShape(this.computeOutputShape(input2.shape))); + }); + } + getConfig() { + const config2 = { + inputDim: this.inputDim, + outputDim: this.outputDim, + embeddingsInitializer: serializeInitializer(this.embeddingsInitializer), + embeddingsRegularizer: serializeRegularizer(this.embeddingsRegularizer), + activityRegularizer: serializeRegularizer(this.activityRegularizer), + embeddingsConstraint: serializeConstraint(this.embeddingsConstraint), + maskZero: this.maskZero, + inputLength: this.inputLength + }; + const baseConfig = super.getConfig(); + Object.assign(config2, baseConfig); + return config2; + } + } + Embedding.className = "Embedding"; + serialization_exports.registerClass(Embedding); + + // node_modules/@tensorflow/tfjs-layers/dist/layers/merge.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + class Merge extends Layer { + constructor(args) { + super(args || {}); + this.supportsMasking = true; + } + mergeFunction(inputs) { + throw new NotImplementedError(); + } + computeElementwiseOpOutputShape(shape1, shape2) { + if (shape1 == null || shape2 == null) { + return null; + } else if (shape1.length < shape2.length) { + return this.computeElementwiseOpOutputShape(shape2, shape1); + } else if (shape2.length === 0) { + return shape1; + } + const outputShape = shape1.slice(0, shape1.length - shape2.length); + for (let k = 0; k < shape2.length; ++k) { + const i = shape1[shape1.length - shape2.length + k]; + const j = shape2[k]; + if (i == null || j == null || i < 0 || j < 0) { + outputShape.push(null); + } else if (i === 1) { + outputShape.push(j); + } else if (j === 1) { + outputShape.push(i); + } else { + if (i !== j) { + throw new ValueError("Operands could not be broadcast together with shapes " + JSON.stringify(shape1) + " " + JSON.stringify(shape2)); + } + outputShape.push(i); + } + } + return outputShape; + } + build(inputShape) { + if (Array.isArray(inputShape) && !Array.isArray(inputShape[0])) { + inputShape = [getExactlyOneShape(inputShape)]; + } + inputShape = inputShape; + if (inputShape.length < 2) { + throw new ValueError(`A merge layer should be called on an Array of at least 2 inputs. Got ${inputShape.length} input(s).`); + } + let batchSizes = []; + for (const shape of inputShape) { + if (shape != null && shape[0] !== null) { + batchSizes.push(shape[0]); + } + } + batchSizes = unique(batchSizes); + if (batchSizes.length > 1) { + throw new ValueError(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(inputShape)}.`); + } + let outputShape = inputShape[0] == null ? null : inputShape[0].slice(1); + for (let i = 1; i < inputShape.length; ++i) { + const shape = inputShape[i] == null ? null : inputShape[i].slice(1); + outputShape = this.computeElementwiseOpOutputShape(outputShape, shape); + } + const allRanks = inputShape.map((shape) => shape.length); + if (inputShape.indexOf(null) === -1 && unique(allRanks).length === 1) { + this.reshapeRequired = false; + } else { + this.reshapeRequired = true; + } + } + call(inputs, kwargs) { + return tidy(() => { + inputs = inputs; + if (this.reshapeRequired) { + const reshapedInputs = []; + const inputDims = inputs.map((input2) => input2.rank); + if (inputDims.indexOf(null) === -1) { + const maxNDim = max7(inputDims); + for (let x of inputs) { + const xNDim = x.rank; + for (let k = 0; k < maxNDim - xNDim; ++k) { + x = expandDims2(x, 1); + } + reshapedInputs.push(x); + } + return this.mergeFunction(reshapedInputs); + } else { + let transposed = false; + for (const x of inputs) { + const xNDim = x.rank; + if (xNDim == null) { + const xShape = x.shape; + const batchSize = xShape[0]; + const newShape = xShape.slice(1).concat([batchSize]); + let xTransposed = x.reshape([batchSize].concat(arrayProd(xShape.slice(1)))); + xTransposed = transpose(xTransposed, [1, 0]); + xTransposed = xTransposed.reshape(newShape); + reshapedInputs.push(xTransposed); + transposed = true; + } else if (xNDim > 1) { + const dims = range4(1, xNDim).concat([0]); + reshapedInputs.push(transpose(x, dims)); + transposed = true; + } else { + reshapedInputs.push(x); + } + } + let y = this.mergeFunction(reshapedInputs); + const yNDim = y.rank; + if (transposed) { + if (yNDim == null) { + const yShape = y.shape; + const yNDim2 = yShape.length; + const batchSize = yShape[yNDim2 - 1]; + const newShape = [batchSize].concat(yShape.slice(0, yShape.length - 1)); + y = transpose(y.reshape([-1, batchSize]), [1, 0]).reshape(newShape); + } else if (yNDim > 1) { + const dims = [yNDim - 1].concat(range4(0, yNDim - 1)); + y = transpose(y, dims); + } + } + return y; + } + } else { + return this.mergeFunction(inputs); + } + }); + } + computeOutputShape(inputShape) { + inputShape = inputShape; + let outputShape; + if (inputShape[0] == null) { + outputShape = null; + } else { + outputShape = inputShape[0].slice(1); + } + for (let i = 1; i < inputShape.length; ++i) { + const shape = inputShape[i] == null ? null : inputShape[i].slice(1); + outputShape = this.computeElementwiseOpOutputShape(outputShape, shape); + } + let batchSizes = []; + for (const shape of inputShape) { + if (shape != null && shape[0] !== null) { + batchSizes.push(shape[0]); + } + } + batchSizes = unique(batchSizes); + if (batchSizes.length === 1) { + outputShape = batchSizes.concat(outputShape); + } else { + outputShape = [null].concat(outputShape); + } + return outputShape; + } + computeMask(inputs, mask) { + return tidy(() => { + if (mask == null) { + return null; + } + if (!Array.isArray(mask)) { + throw new ValueError("`mask` should be an Array"); + } + if (!Array.isArray(inputs)) { + throw new ValueError("`inputs` should be an Array"); + } + if (mask.length !== inputs.length) { + throw new ValueError(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${inputs.length} vs ${mask.length})`); + } + if (mask.every((m) => m == null)) { + return null; + } + mask = mask.map((m) => m == null ? m : expandDims(m, 0)); + let output = mask[0]; + for (let i = 1; i < mask.length - 1; ++i) { + output = logicalAnd(output, mask[i]); + } + return output; + }); + } + } + class Add2 extends Merge { + constructor(args) { + super(args); + } + mergeFunction(inputs) { + return tidy(() => { + let output = inputs[0].clone(); + for (let i = 1; i < inputs.length; ++i) { + output = add2(output, inputs[i]); + } + return output; + }); + } + } + Add2.className = "Add"; + serialization_exports.registerClass(Add2); + class Multiply2 extends Merge { + constructor(args) { + super(args); + } + mergeFunction(inputs) { + return tidy(() => { + let output = inputs[0].clone(); + for (let i = 1; i < inputs.length; ++i) { + output = mul(output, inputs[i]); + } + return output; + }); + } + } + Multiply2.className = "Multiply"; + serialization_exports.registerClass(Multiply2); + class Average extends Merge { + constructor(args) { + super(args); + } + mergeFunction(inputs) { + return tidy(() => { + let output = inputs[0].clone(); + for (let i = 1; i < inputs.length; ++i) { + output = add2(output, inputs[i]); + } + return mul(1 / inputs.length, output); + }); + } + } + Average.className = "Average"; + serialization_exports.registerClass(Average); + class Maximum2 extends Merge { + constructor(args) { + super(args); + } + mergeFunction(inputs) { + return tidy(() => { + let output = inputs[0]; + for (let i = 1; i < inputs.length; ++i) { + output = maximum(output, inputs[i]); + } + return output; + }); + } + } + Maximum2.className = "Maximum"; + serialization_exports.registerClass(Maximum2); + class Minimum2 extends Merge { + constructor(args) { + super(args); + } + mergeFunction(inputs) { + return tidy(() => { + let output = inputs[0]; + for (let i = 1; i < inputs.length; ++i) { + output = minimum(output, inputs[i]); + } + return output; + }); + } + } + Minimum2.className = "Minimum"; + serialization_exports.registerClass(Minimum2); + class Concatenate extends Merge { + constructor(args) { + super(args); + this.DEFAULT_AXIS = -1; + if (args == null) { + args = {}; + } + this.axis = args.axis == null ? this.DEFAULT_AXIS : args.axis; + this.supportsMasking = true; + this.reshapeRequired = false; + } + build(inputShape) { + if (!(Array.isArray(inputShape) && Array.isArray(inputShape[0])) || inputShape.length === 1) { + throw new ValueError("A `Concatenate` layer should be called on a list of at least 2 inputs"); + } + inputShape = inputShape; + let allNoneShape = true; + for (const shape of inputShape) { + if (shape != null) { + allNoneShape = false; + break; + } + } + if (allNoneShape) { + return; + } + const shapeSet = []; + for (let i = 0; i < inputShape.length; ++i) { + const shapeWithoutConcatAxis = inputShape[i].slice(); + shapeWithoutConcatAxis.splice(this.axis, 1); + let exists = false; + for (const shape of shapeSet) { + if (util_exports.arraysEqual(shape, shapeWithoutConcatAxis)) { + exists = true; + break; + } + } + if (!exists) { + shapeSet.push(shapeWithoutConcatAxis); + } + } + if (shapeSet.length > 1) { + throw new ValueError("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: " + JSON.stringify(inputShape)); + } + } + mergeFunction(inputs) { + return tidy(() => { + return concatenate(inputs, this.axis); + }); + } + computeOutputShape(inputShape) { + if (!(Array.isArray(inputShape) && Array.isArray(inputShape[0]))) { + throw new ValueError("A `Concatenate` layer should be called on a list of inputs."); + } + const inputShapes = inputShape; + const outputShape = inputShapes[0].slice(); + const axis = this.axis < 0 ? outputShape.length + this.axis : this.axis; + for (const shape of inputShapes.slice(1)) { + if (outputShape[axis] == null || shape[axis] == null) { + outputShape[axis] = null; + break; + } + outputShape[axis] += shape[axis]; + } + return outputShape; + } + computeMask(inputs, mask) { + if (mask == null) { + return null; + } + if (!Array.isArray(mask)) { + throw new ValueError("`mask` should be an array for Concatenate"); + } + if (!Array.isArray(inputs)) { + throw new ValueError("`inputs` should be an array for Concatenate"); + } + if (mask.length !== inputs.length) { + throw new ValueError(`Mismatch in the length of mask (${mask.length}) and the legnth of inputs (${inputs.length})`); + } + return tidy(() => { + let allNullMasks = true; + mask.forEach((m) => { + if (m != null) { + allNullMasks = false; + return; + } + }); + if (allNullMasks) { + return null; + } + const outputMasks = []; + for (let i = 0; i < inputs.length; ++i) { + if (mask[i] == null) { + outputMasks.push(onesLike(inputs[i]).asType("bool")); + } else if (mask[i].rank < inputs[i].rank) { + outputMasks.push(expandDims(mask[i], -1)); + } else { + outputMasks.push(mask[i]); + } + } + const concatenatedMasks = concat(outputMasks, this.axis); + return all(concatenatedMasks, -1, false); + }); + } + getConfig() { + const config2 = { + axis: this.axis + }; + const baseConfig = super.getConfig(); + Object.assign(config2, baseConfig); + return config2; + } + } + Concatenate.className = "Concatenate"; + serialization_exports.registerClass(Concatenate); + function interpretAxis(axis, dim) { + while (axis < 0) { + axis += dim; + } + return axis; + } + function batchDot(x, y, axes) { + if (x.shape.length > 3 || y.shape.length > 3) { + throw new NotImplementedError("batchDot is not implemented for tensors of 4D or higher rank yet"); + } + util_exports.assert(x.shape.length >= 2, () => `batchDot requires the rank of x to be >= 2, but got ${x.shape.length}`); + util_exports.assert(x.shape.length >= 2, () => `batchDot requires the rank of y to be >= 2, but got ${y.shape.length}`); + if (typeof axes === "number") { + axes = [axes, axes]; + } + if (x.dtype === "complex64" || y.dtype === "complex64") { + throw new NotImplementedError("batchDot is not implemented for complex64-type Tensors yet."); + } + const xNDim = x.shape.length; + const yNDim = y.shape.length; + if (axes == null) { + axes = [xNDim - 1, yNDim - 2]; + } + const axesArray = axes; + return tidy(() => { + let diff; + if (xNDim > yNDim) { + diff = xNDim - yNDim; + const diffShape = []; + for (let i = 0; i < diff; ++i) { + diffShape.push(1); + } + y = y.reshape(y.shape.concat(diffShape)); + } else if (yNDim > xNDim) { + diff = yNDim - xNDim; + const diffShape = []; + for (let i = 0; i < diff; ++i) { + diffShape.push(1); + } + x = x.reshape(x.shape.concat(diffShape)); + } else { + diff = 0; + } + let out; + if (x.shape.length === 2 && y.shape.length === 2) { + if (axesArray[0] === axesArray[1]) { + out = x.mul(y).sum(axesArray[0]); + } else { + out = x.transpose([1, 0]).mul(y).sum(axesArray[1]); + } + } else { + const adjX = axesArray[0] !== x.shape.length - 1; + const adjY = axesArray[1] === y.shape.length - 1; + out = x.matMul(y, adjX, adjY); + } + if (diff > 0) { + let idx; + if (xNDim > yNDim) { + idx = xNDim + yNDim - 3; + } else { + idx = xNDim - 1; + } + const squeezeAxes = []; + for (let i = idx; i < idx + diff; ++i) { + squeezeAxes.push(i); + } + out = out.squeeze(squeezeAxes); + } + if (out.shape.length === 1) { + out = out.expandDims(1); + } + return out; + }); + } + class Dot extends Merge { + constructor(args) { + super(args); + this.axes = args.axes; + this.normalize = args.normalize == null ? false : args.normalize; + this.supportsMasking = true; + this.reshapeRequired = false; + } + build(inputShape) { + util_exports.assert(Array.isArray(inputShape) && inputShape.length === 2 && Array.isArray(inputShape[0]) && Array.isArray(inputShape[1]), () => "A `Dot` layer should be called on a list of exactly 2 inputs."); + const shape1 = inputShape[0]; + const shape2 = inputShape[1]; + if (shape1.length > 3 || shape2.length > 3) { + throw new NotImplementedError("Dot layer does not support tensors of 4D or higher rank yet."); + } + const axes = this.interpretAxes(shape1, shape2); + if (shape1[axes[0]] !== shape2[axes[1]]) { + throw new ValueError(`Dimension incompatibility: ${shape1[axes[0]]} !== ${shape2[axes[1]]}`); + } + } + mergeFunction(inputs) { + if (inputs.length !== 2) { + throw new ValueError(`A \`Dot\` layer must be called on exactly 2 inputs, but received ${inputs.length} input(s).`); + } + let x1 = inputs[0]; + let x2 = inputs[1]; + let axes; + if (!Array.isArray(this.axes)) { + axes = [ + interpretAxis(this.axes, x1.shape.length), + interpretAxis(this.axes, x2.shape.length) + ]; + } else { + axes = this.axes.map((axis, i) => interpretAxis(axis, inputs[i].shape.length)); + } + if (this.normalize) { + x1 = l2Normalize(x1, axes[0]); + x2 = l2Normalize(x2, axes[1]); + } + return batchDot(x1, x2, axes); + } + interpretAxes(shape1, shape2) { + let axes; + if (!Array.isArray(this.axes)) { + axes = [ + interpretAxis(this.axes, shape1.length), + interpretAxis(this.axes, shape2.length) + ]; + } else { + axes = this.axes; + } + return axes; + } + computeOutputShape(inputShape) { + util_exports.assert(Array.isArray(inputShape) && inputShape.length === 2 && Array.isArray(inputShape[0]) && Array.isArray(inputShape[1]), () => "A `Dot` layer should be called on a list of exactly 2 inputs."); + const shape1 = inputShape[0].slice(); + const shape2 = inputShape[1].slice(); + if (shape1.length > 3 || shape2.length > 3) { + throw new NotImplementedError("Dot layer does not support tensors of 4D or higher rank yet."); + } + const axes = this.interpretAxes(shape1, shape2); + shape1.splice(axes[0], 1); + shape2.splice(axes[1], 1); + shape2.splice(0, 1); + const outputShape = shape1.concat(shape2); + if (outputShape.length === 1) { + outputShape.push(1); + } + return outputShape; + } + computeMask(inputs, mask) { + return null; + } + getConfig() { + const config2 = { + axes: this.axes, + normalize: this.normalize + }; + const baseConfig = super.getConfig(); + Object.assign(config2, baseConfig); + return config2; + } + } + Dot.className = "Dot"; + serialization_exports.registerClass(Dot); + + // node_modules/@tensorflow/tfjs-layers/dist/layers/noise.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + class GaussianNoise extends Layer { + constructor(args) { + super(args); + this.supportsMasking = true; + this.stddev = args.stddev; + } + computeOutputShape(inputShape) { + return inputShape; + } + getConfig() { + const baseConfig = super.getConfig(); + const config2 = {stddev: this.stddev}; + Object.assign(config2, baseConfig); + return config2; + } + call(inputs, kwargs) { + return tidy(() => { + this.invokeCallHook(inputs, kwargs); + const input2 = getExactlyOneTensor(inputs); + const noised = () => randomNormal2(input2.shape, 0, this.stddev).add(input2); + const output = inTrainPhase(noised, () => input2, kwargs["training"] || false); + return output; + }); + } + } + GaussianNoise.className = "GaussianNoise"; + serialization_exports.registerClass(GaussianNoise); + class GaussianDropout extends Layer { + constructor(args) { + super(args); + this.supportsMasking = true; + this.rate = args.rate; + } + computeOutputShape(inputShape) { + return inputShape; + } + getConfig() { + const baseConfig = super.getConfig(); + const config2 = {rate: this.rate}; + Object.assign(config2, baseConfig); + return config2; + } + call(inputs, kwargs) { + return tidy(() => { + this.invokeCallHook(inputs, kwargs); + const input2 = getExactlyOneTensor(inputs); + if (this.rate > 0 && this.rate < 1) { + const noised = () => { + const stddev = Math.sqrt(this.rate / (1 - this.rate)); + return input2.mul(randomNormal2(input2.shape, 1, stddev)); + }; + return inTrainPhase(noised, () => input2, kwargs["training"] || false); + } + return input2; + }); + } + } + GaussianDropout.className = "GaussianDropout"; + serialization_exports.registerClass(GaussianDropout); + class AlphaDropout extends Layer { + constructor(args) { + super(args); + this.supportsMasking = true; + this.rate = args.rate; + this.noiseShape = args.noiseShape; + } + _getNoiseShape(inputs) { + return this.noiseShape || getExactlyOneTensor(inputs).shape; + } + computeOutputShape(inputShape) { + return inputShape; + } + getConfig() { + const baseConfig = super.getConfig(); + const config2 = {rate: this.rate}; + Object.assign(config2, baseConfig); + return config2; + } + call(inputs, kwargs) { + return tidy(() => { + if (this.rate < 1 && this.rate > 0) { + const noiseShape = this._getNoiseShape(inputs); + const droppedInputs = () => { + const input2 = getExactlyOneTensor(inputs); + const alpha = 1.6732632423543772; + const scale2 = 1.0507009873554805; + const alphaP = -alpha * scale2; + let keptIdx = greaterEqual(randomUniform(noiseShape), this.rate); + keptIdx = cast46(keptIdx, "float32"); + const a = ((1 - this.rate) * (1 + this.rate * alphaP ** 2)) ** -0.5; + const b = -a * alphaP * this.rate; + const x = input2.mul(keptIdx).add(keptIdx.add(-1).mul(alphaP)); + return x.mul(a).add(b); + }; + return inTrainPhase(droppedInputs, () => getExactlyOneTensor(inputs), kwargs["training"] || false); + } + return inputs; + }); + } + } + AlphaDropout.className = "AlphaDropout"; + serialization_exports.registerClass(AlphaDropout); + + // node_modules/@tensorflow/tfjs-layers/dist/layers/normalization.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + function batchNormalization(x, mean5, variance, beta, gamma, epsilon2 = 1e-3) { + let out; + if (x.rank === 2) { + out = batchNorm2d(x, mean5, variance, beta, gamma, epsilon2); + } else if (x.rank === 3) { + out = batchNorm3d(x, mean5, variance, beta, gamma, epsilon2); + } else if (x.rank === 4) { + out = batchNorm4d(x, mean5, variance, beta, gamma, epsilon2); + } else { + throw new NotImplementedError(`batchNormalization is not implemented for array of rank ${x.rank} yet`); + } + return out; + } + function regularNormalizeBatchInTraining(x, gamma, beta, reductionAxes, epsilon2 = 1e-3) { + return tidy(() => { + const meanAndVariance = moments(x, reductionAxes); + const mean5 = meanAndVariance.mean; + const variance = meanAndVariance.variance; + const normed = batchNormalization(x, mean5, variance, beta, gamma, epsilon2); + return [normed, mean5, variance]; + }); + } + function broadcastNormalizeBatchInTraining(x, gamma, beta, reductionAxes, epsilon2 = 1e-3) { + return tidy(() => { + const meanAndVariance = moments(x, reductionAxes); + const mean5 = meanAndVariance.mean; + const variance = meanAndVariance.variance; + const targetShape = []; + for (const axis of range4(0, x.rank)) { + if (reductionAxes.indexOf(axis) !== -1) { + targetShape.push(1); + } else { + targetShape.push(x.shape[axis]); + } + } + const broadcastMean = mean5.reshape(targetShape); + const broadcastVariance = variance.reshape(targetShape); + const broadcastGamma = gamma == null ? null : gamma.reshape(targetShape); + const broadcastBeta = beta == null ? null : beta.reshape(targetShape); + const normed = batchNormalization(x, broadcastMean, broadcastVariance, broadcastBeta, broadcastGamma, epsilon2); + return [normed, mean5, variance]; + }); + } + function normalizeBatchInTraining(x, gamma, beta, reductionAxes, epsilon2 = 1e-3) { + if (util_exports.arraysEqual(reductionAxes.slice().sort(), range4(0, x.rank - 1))) { + return regularNormalizeBatchInTraining(x, gamma, beta, reductionAxes, epsilon2); + } else { + return broadcastNormalizeBatchInTraining(x, gamma, beta, reductionAxes, epsilon2); + } + } + class BatchNormalization extends Layer { + constructor(args) { + if (args == null) { + args = {}; + } + super(args); + this.supportsMasking = true; + this.axis = args.axis == null ? -1 : args.axis; + this.momentum = args.momentum == null ? 0.99 : args.momentum; + this.epsilon = args.epsilon == null ? 1e-3 : args.epsilon; + this.center = args.center == null ? true : args.center; + this.scale = args.scale == null ? true : args.scale; + this.betaInitializer = getInitializer(args.betaInitializer || "zeros"); + this.gammaInitializer = getInitializer(args.gammaInitializer || "ones"); + this.movingMeanInitializer = getInitializer(args.movingMeanInitializer || "zeros"); + this.movingVarianceInitializer = getInitializer(args.movingVarianceInitializer || "ones"); + this.betaConstraint = getConstraint(args.betaConstraint); + this.gammaConstraint = getConstraint(args.gammaConstraint); + this.betaRegularizer = getRegularizer(args.betaRegularizer); + this.gammaRegularizer = getRegularizer(args.gammaRegularizer); + } + build(inputShape) { + inputShape = getExactlyOneShape(inputShape); + const axis = this.axis >= 0 ? this.axis : this.axis + inputShape.length; + const dim = inputShape[axis]; + if (dim == null) { + throw new ValueError(`Axis ${axis} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(inputShape)}.`); + } + this.inputSpec = [new InputSpec({ndim: inputShape.length, axes: {[axis]: dim}})]; + const shape = [dim]; + if (this.scale) { + this.gamma = this.addWeight("gamma", shape, null, this.gammaInitializer, this.gammaRegularizer, true, this.gammaConstraint); + } + if (this.center) { + this.beta = this.addWeight("beta", shape, null, this.betaInitializer, this.betaRegularizer, true, this.betaConstraint); + } + this.movingMean = this.addWeight("moving_mean", shape, null, this.movingMeanInitializer, null, false); + this.movingVariance = this.addWeight("moving_variance", shape, null, this.movingVarianceInitializer, null, false); + this.built = true; + } + call(inputs, kwargs) { + return tidy(() => { + const training5 = kwargs["training"] == null ? false : kwargs["training"]; + const input2 = getExactlyOneTensor(inputs); + const inputShape = input2.shape; + const ndim = inputShape.length; + const reductionAxes = range4(0, ndim); + const axis = this.axis >= 0 ? this.axis : this.axis + ndim; + reductionAxes.splice(axis, 1); + const broadcastShape = pyListRepeat(1, ndim); + broadcastShape[axis] = inputShape[axis]; + const sortedReductionAxes = reductionAxes.slice(); + sortedReductionAxes.sort(); + const needsBroadcasting = !util_exports.arraysEqual(sortedReductionAxes, range4(0, ndim).slice(0, ndim - 1)); + const normalizeInference = () => { + if (needsBroadcasting) { + const broadcastMovingMean = this.movingMean.read().reshape(broadcastShape); + const broadcastMovingVariance = this.movingVariance.read().reshape(broadcastShape); + const broadcastBeta = this.center ? this.beta.read().reshape(broadcastShape) : null; + const broadcastGamma = this.scale ? this.gamma.read().reshape(broadcastShape) : null; + return batchNormalization(input2, broadcastMovingMean, broadcastMovingVariance, broadcastBeta, broadcastGamma, this.epsilon); + } else { + return batchNormalization(input2, this.movingMean.read(), this.movingVariance.read(), this.beta == null ? null : this.beta.read(), this.gamma == null ? null : this.gamma.read(), this.epsilon); + } + }; + if (!training5) { + return normalizeInference(); + } + const [normedTraining, mean5, variance] = normalizeBatchInTraining(input2, this.gamma.read(), this.beta.read(), reductionAxes, this.epsilon); + const doMovingAverage = (variable3, value, momentum) => { + tidy(() => { + const decay = 1 - momentum; + const origValue = variable3.read(); + const updateDelta = origValue.sub(value).mul(decay); + variable3.write(origValue.sub(updateDelta)); + }); + }; + const updateMovingMeanAndVariance = () => { + doMovingAverage(this.movingMean, mean5, this.momentum); + doMovingAverage(this.movingVariance, variance, this.momentum); + }; + updateMovingMeanAndVariance(); + return normedTraining; + }); + } + getConfig() { + const config2 = { + axis: this.axis, + momentum: this.momentum, + epsilon: this.epsilon, + center: this.center, + scale: this.scale, + betaInitializer: serializeInitializer(this.betaInitializer), + gammaInitializer: serializeInitializer(this.gammaInitializer), + movingMeanInitializer: serializeInitializer(this.movingMeanInitializer), + movingVarianceInitializer: serializeInitializer(this.movingVarianceInitializer), + betaRegularizer: serializeRegularizer(this.betaRegularizer), + gammaRegularizer: serializeRegularizer(this.gammaRegularizer), + betaConstraint: serializeConstraint(this.betaConstraint), + gammaConstraint: serializeConstraint(this.gammaConstraint) + }; + const baseConfig = super.getConfig(); + Object.assign(config2, baseConfig); + return config2; + } + } + BatchNormalization.className = "BatchNormalization"; + serialization_exports.registerClass(BatchNormalization); + class LayerNormalization extends Layer { + constructor(args) { + if (args == null) { + args = {}; + } + super(args); + this.axis = args.axis == null ? -1 : args.axis; + if (typeof this.axis === "number") { + if (!Number.isInteger(this.axis)) { + throw new Error(`Expected axis to be an integer, but received ${this.axis}`); + } + } else if (Array.isArray(this.axis)) { + for (const axis of this.axis) { + if (!Number.isInteger(axis)) { + throw new Error(`Expected axis to be an array of integers, but received ${JSON.stringify(this.axis)}`); + } + } + } else { + throw new Error(`Expected axis to be an integer or an array of integers, but received ${JSON.stringify(this.axis)}`); + } + this.epsilon = args.epsilon == null ? 1e-3 : args.epsilon; + this.center = args.center == null ? true : args.center; + this.scale = args.scale == null ? true : args.scale; + this.betaInitializer = getInitializer(args.betaInitializer || "zeros"); + this.gammaInitializer = getInitializer(args.gammaInitializer || "ones"); + this.betaRegularizer = getRegularizer(args.betaRegularizer); + this.gammaRegularizer = getRegularizer(args.gammaRegularizer); + this.supportsMasking = true; + } + build(inputShape) { + inputShape = getExactlyOneShape(inputShape); + const nDims = inputShape.length; + if (typeof this.axis === "number") { + this.axis = [this.axis]; + } + for (let i = 0; i < this.axis.length; ++i) { + if (this.axis[i] < 0) { + this.axis[i] += nDims; + } + } + for (const axis of this.axis) { + if (axis < 0 || axis >= nDims) { + throw new Error(`Invalid axis: ${axis}`); + } + } + if (this.axis.length !== unique(this.axis).length) { + throw new Error(`Found duplicate axes in: ${this.axis}`); + } + const paramShape = this.axis.map((axis) => inputShape[axis]); + const trainable = true; + if (this.scale) { + this.gamma = this.addWeight("gamma", paramShape, "float32", this.gammaInitializer, this.gammaRegularizer, trainable); + } else { + this.gamma = null; + } + if (this.center) { + this.beta = this.addWeight("beta", paramShape, "float32", this.betaInitializer, this.betaRegularizer, trainable); + } else { + this.beta = null; + } + this.built = true; + } + call(inputs, kwargs) { + const input2 = getExactlyOneTensor(inputs); + const inputShape = input2.shape; + const nDims = inputShape.length; + return tidy(() => { + const keepDims = true; + let {mean: mean5, variance} = moments(input2, this.axis, keepDims); + const broadcastShape = pyListRepeat(1, nDims); + for (const dim of this.axis) { + broadcastShape[dim] = inputShape[dim]; + } + const broadcast = (v) => { + if (v != null && v.shape.length !== nDims && this.axis !== [nDims - 1]) { + return v.reshape(broadcastShape); + } else { + return v; + } + }; + let scale2 = broadcast(this.gamma.read()); + let offset = broadcast(this.beta.read()); + const momentsTiling = []; + const scaleOffsetTiling = []; + for (let i = 0; i < nDims; ++i) { + if (this.axis.indexOf(i) !== -1) { + momentsTiling.push(inputShape[i]); + scaleOffsetTiling.push(1); + } else { + momentsTiling.push(1); + scaleOffsetTiling.push(inputShape[i]); + } + } + mean5 = mean5.tile(momentsTiling); + variance = variance.tile(momentsTiling); + scale2 = scale2.tile(scaleOffsetTiling); + offset = offset.tile(scaleOffsetTiling); + return batchNormalization(input2, mean5, variance, offset, scale2, this.epsilon); + }); + } + getConfig() { + const config2 = { + axis: this.axis, + epsilon: this.epsilon, + center: this.center, + scale: this.scale, + betaInitializer: serializeInitializer(this.betaInitializer), + gammaInitializer: serializeInitializer(this.gammaInitializer), + betaRegularizer: serializeRegularizer(this.betaRegularizer), + gammaRegularizer: serializeRegularizer(this.gammaRegularizer) + }; + const baseConfig = super.getConfig(); + Object.assign(config2, baseConfig); + return config2; + } + } + LayerNormalization.className = "LayerNormalization"; + serialization_exports.registerClass(LayerNormalization); + + // node_modules/@tensorflow/tfjs-layers/dist/layers/padding.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + function spatial2dPadding(x, padding2, dataFormat) { + return tidy(() => { + if (x.rank !== 4) { + throw new ValueError(`temporalPadding expects input tensor to be 4-D, but received a ${x.rank}-D tensor.`); + } + if (padding2 == null) { + padding2 = [[1, 1], [1, 1]]; + } + if (padding2.length !== 2 || padding2[0].length !== 2 || padding2[1].length !== 2) { + throw new ValueError("spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers."); + } + if (dataFormat == null) { + dataFormat = imageDataFormat(); + } + if (dataFormat !== "channelsLast" && dataFormat !== "channelsFirst") { + throw new ValueError(`Unknown data format: ${dataFormat}. Supported data formats are 'channelsLast' and 'channelsFirst.`); + } + let pattern; + if (dataFormat === "channelsFirst") { + pattern = [[0, 0], [0, 0], padding2[0], padding2[1]]; + } else { + pattern = [[0, 0], padding2[0], padding2[1], [0, 0]]; + } + return pad(x, pattern); + }); + } + class ZeroPadding2D extends Layer { + constructor(args) { + if (args == null) { + args = {}; + } + super(args); + this.dataFormat = args.dataFormat == null ? imageDataFormat() : args.dataFormat; + if (args.padding == null) { + this.padding = [[1, 1], [1, 1]]; + } else if (typeof args.padding === "number") { + this.padding = [[args.padding, args.padding], [args.padding, args.padding]]; + } else { + args.padding = args.padding; + if (args.padding.length !== 2) { + throw new ValueError(`ZeroPadding2D expects padding to be a length-2 array, but received a length-${args.padding.length} array.`); + } + let heightPadding; + let widthPadding; + if (typeof args.padding[0] === "number") { + heightPadding = [args.padding[0], args.padding[0]]; + widthPadding = [args.padding[1], args.padding[1]]; + } else { + args.padding = args.padding; + if (args.padding[0].length !== 2) { + throw new ValueError(`ZeroPadding2D expects height padding to be a length-2 array, but received a length-${args.padding[0].length} array.`); + } + heightPadding = args.padding[0]; + if (args.padding[1].length !== 2) { + throw new ValueError(`ZeroPadding2D expects width padding to be a length-2 array, but received a length-${args.padding[1].length} array.`); + } + widthPadding = args.padding[1]; + } + this.padding = [heightPadding, widthPadding]; + } + this.inputSpec = [new InputSpec({ndim: 4})]; + } + computeOutputShape(inputShape) { + inputShape = getExactlyOneShape(inputShape); + let rows; + let cols; + if (this.dataFormat === "channelsFirst") { + if (inputShape[2] != null && inputShape[2] >= 0) { + rows = inputShape[2] + this.padding[0][0] + this.padding[0][1]; + } else { + rows = null; + } + if (inputShape[3] != null && inputShape[3] >= 0) { + cols = inputShape[3] + this.padding[1][0] + this.padding[1][1]; + } else { + cols = null; + } + return [inputShape[0], inputShape[1], rows, cols]; + } else { + if (inputShape[1] != null && inputShape[1] >= 0) { + rows = inputShape[1] + this.padding[0][0] + this.padding[0][1]; + } else { + rows = null; + } + if (inputShape[2] != null && inputShape[2] >= 0) { + cols = inputShape[2] + this.padding[1][0] + this.padding[1][1]; + } else { + cols = null; + } + return [inputShape[0], rows, cols, inputShape[3]]; + } + } + call(inputs, kwargs) { + return tidy(() => spatial2dPadding(getExactlyOneTensor(inputs), this.padding, this.dataFormat)); + } + getConfig() { + const config2 = { + padding: this.padding, + dataFormat: this.dataFormat + }; + const baseConfig = super.getConfig(); + Object.assign(config2, baseConfig); + return config2; + } + } + ZeroPadding2D.className = "ZeroPadding2D"; + serialization_exports.registerClass(ZeroPadding2D); + + // node_modules/@tensorflow/tfjs-layers/dist/layers/pooling.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + function pool2d(x, poolSize, strides, padding2, dataFormat, poolMode) { + return tidy(() => { + checkDataFormat(dataFormat); + checkPoolMode(poolMode); + checkPaddingMode(padding2); + if (strides == null) { + strides = [1, 1]; + } + if (padding2 == null) { + padding2 = "valid"; + } + if (dataFormat == null) { + dataFormat = imageDataFormat(); + } + if (poolMode == null) { + poolMode = "max"; + } + x = preprocessConv2DInput(x, dataFormat); + let y; + const paddingString = padding2 === "same" ? "same" : "valid"; + if (poolMode === "max") { + y = maxPool(x, poolSize, strides, paddingString); + } else { + y = avgPool(x, poolSize, strides, paddingString); + } + if (dataFormat === "channelsFirst") { + y = transpose(y, [0, 3, 1, 2]); + } + return y; + }); + } + function pool3d(x, poolSize, strides, padding2, dataFormat, poolMode) { + return tidy(() => { + checkDataFormat(dataFormat); + checkPoolMode(poolMode); + checkPaddingMode(padding2); + if (strides == null) { + strides = [1, 1, 1]; + } + if (padding2 == null) { + padding2 = "valid"; + } + if (dataFormat == null) { + dataFormat = imageDataFormat(); + } + if (poolMode == null) { + poolMode = "max"; + } + x = preprocessConv3DInput(x, dataFormat); + let y; + const paddingString = padding2 === "same" ? "same" : "valid"; + if (poolMode === "max") { + y = maxPool3d(x, poolSize, strides, paddingString); + } else { + y = avgPool3d(x, poolSize, strides, paddingString); + } + if (dataFormat === "channelsFirst") { + y = transpose(y, [0, 4, 1, 2, 3]); + } + return y; + }); + } + class Pooling1D extends Layer { + constructor(args) { + if (args.poolSize == null) { + args.poolSize = 2; + } + super(args); + if (typeof args.poolSize === "number") { + this.poolSize = [args.poolSize]; + } else if (Array.isArray(args.poolSize) && args.poolSize.length === 1 && typeof args.poolSize[0] === "number") { + this.poolSize = args.poolSize; + } else { + throw new ValueError(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(args.poolSize)}`); + } + assertPositiveInteger(this.poolSize, "poolSize"); + if (args.strides == null) { + this.strides = this.poolSize; + } else { + if (typeof args.strides === "number") { + this.strides = [args.strides]; + } else if (Array.isArray(args.strides) && args.strides.length === 1 && typeof args.strides[0] === "number") { + this.strides = args.strides; + } else { + throw new ValueError(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(args.strides)}`); + } + } + assertPositiveInteger(this.strides, "strides"); + this.padding = args.padding == null ? "valid" : args.padding; + checkPaddingMode(this.padding); + this.inputSpec = [new InputSpec({ndim: 3})]; + } + computeOutputShape(inputShape) { + inputShape = getExactlyOneShape(inputShape); + const length = convOutputLength(inputShape[1], this.poolSize[0], this.padding, this.strides[0]); + return [inputShape[0], length, inputShape[2]]; + } + call(inputs, kwargs) { + return tidy(() => { + this.invokeCallHook(inputs, kwargs); + inputs = expandDims2(getExactlyOneTensor(inputs), 2); + const output = this.poolingFunction(getExactlyOneTensor(inputs), [this.poolSize[0], 1], [this.strides[0], 1], this.padding, "channelsLast"); + return squeeze(output, [2]); + }); + } + getConfig() { + const config2 = { + poolSize: this.poolSize, + padding: this.padding, + strides: this.strides + }; + const baseConfig = super.getConfig(); + Object.assign(config2, baseConfig); + return config2; + } + } + class MaxPooling1D extends Pooling1D { + constructor(args) { + super(args); + } + poolingFunction(inputs, poolSize, strides, padding2, dataFormat) { + checkDataFormat(dataFormat); + checkPaddingMode(padding2); + return pool2d(inputs, poolSize, strides, padding2, dataFormat, "max"); + } + } + MaxPooling1D.className = "MaxPooling1D"; + serialization_exports.registerClass(MaxPooling1D); + class AveragePooling1D extends Pooling1D { + constructor(args) { + super(args); + } + poolingFunction(inputs, poolSize, strides, padding2, dataFormat) { + checkDataFormat(dataFormat); + checkPaddingMode(padding2); + return pool2d(inputs, poolSize, strides, padding2, dataFormat, "avg"); + } + } + AveragePooling1D.className = "AveragePooling1D"; + serialization_exports.registerClass(AveragePooling1D); + class Pooling2D extends Layer { + constructor(args) { + if (args.poolSize == null) { + args.poolSize = [2, 2]; + } + super(args); + this.poolSize = Array.isArray(args.poolSize) ? args.poolSize : [args.poolSize, args.poolSize]; + if (args.strides == null) { + this.strides = this.poolSize; + } else if (Array.isArray(args.strides)) { + if (args.strides.length !== 2) { + throw new ValueError(`If the strides property of a 2D pooling layer is an Array, it is expected to have a length of 2, but received length ${args.strides.length}.`); + } + this.strides = args.strides; + } else { + this.strides = [args.strides, args.strides]; + } + assertPositiveInteger(this.poolSize, "poolSize"); + assertPositiveInteger(this.strides, "strides"); + this.padding = args.padding == null ? "valid" : args.padding; + this.dataFormat = args.dataFormat == null ? "channelsLast" : args.dataFormat; + checkDataFormat(this.dataFormat); + checkPaddingMode(this.padding); + this.inputSpec = [new InputSpec({ndim: 4})]; + } + computeOutputShape(inputShape) { + inputShape = getExactlyOneShape(inputShape); + let rows = this.dataFormat === "channelsFirst" ? inputShape[2] : inputShape[1]; + let cols = this.dataFormat === "channelsFirst" ? inputShape[3] : inputShape[2]; + rows = convOutputLength(rows, this.poolSize[0], this.padding, this.strides[0]); + cols = convOutputLength(cols, this.poolSize[1], this.padding, this.strides[1]); + if (this.dataFormat === "channelsFirst") { + return [inputShape[0], inputShape[1], rows, cols]; + } else { + return [inputShape[0], rows, cols, inputShape[3]]; + } + } + call(inputs, kwargs) { + return tidy(() => { + this.invokeCallHook(inputs, kwargs); + return this.poolingFunction(getExactlyOneTensor(inputs), this.poolSize, this.strides, this.padding, this.dataFormat); + }); + } + getConfig() { + const config2 = { + poolSize: this.poolSize, + padding: this.padding, + strides: this.strides, + dataFormat: this.dataFormat + }; + const baseConfig = super.getConfig(); + Object.assign(config2, baseConfig); + return config2; + } + } + class MaxPooling2D extends Pooling2D { + constructor(args) { + super(args); + } + poolingFunction(inputs, poolSize, strides, padding2, dataFormat) { + checkDataFormat(dataFormat); + checkPaddingMode(padding2); + return pool2d(inputs, poolSize, strides, padding2, dataFormat, "max"); + } + } + MaxPooling2D.className = "MaxPooling2D"; + serialization_exports.registerClass(MaxPooling2D); + class AveragePooling2D extends Pooling2D { + constructor(args) { + super(args); + } + poolingFunction(inputs, poolSize, strides, padding2, dataFormat) { + checkDataFormat(dataFormat); + checkPaddingMode(padding2); + return pool2d(inputs, poolSize, strides, padding2, dataFormat, "avg"); + } + } + AveragePooling2D.className = "AveragePooling2D"; + serialization_exports.registerClass(AveragePooling2D); + class Pooling3D extends Layer { + constructor(args) { + if (args.poolSize == null) { + args.poolSize = [2, 2, 2]; + } + super(args); + this.poolSize = Array.isArray(args.poolSize) ? args.poolSize : [args.poolSize, args.poolSize, args.poolSize]; + if (args.strides == null) { + this.strides = this.poolSize; + } else if (Array.isArray(args.strides)) { + if (args.strides.length !== 3) { + throw new ValueError(`If the strides property of a 3D pooling layer is an Array, it is expected to have a length of 3, but received length ${args.strides.length}.`); + } + this.strides = args.strides; + } else { + this.strides = [args.strides, args.strides, args.strides]; + } + assertPositiveInteger(this.poolSize, "poolSize"); + assertPositiveInteger(this.strides, "strides"); + this.padding = args.padding == null ? "valid" : args.padding; + this.dataFormat = args.dataFormat == null ? "channelsLast" : args.dataFormat; + checkDataFormat(this.dataFormat); + checkPaddingMode(this.padding); + this.inputSpec = [new InputSpec({ndim: 5})]; + } + computeOutputShape(inputShape) { + inputShape = getExactlyOneShape(inputShape); + let depths = this.dataFormat === "channelsFirst" ? inputShape[2] : inputShape[1]; + let rows = this.dataFormat === "channelsFirst" ? inputShape[3] : inputShape[2]; + let cols = this.dataFormat === "channelsFirst" ? inputShape[4] : inputShape[3]; + depths = convOutputLength(depths, this.poolSize[0], this.padding, this.strides[0]); + rows = convOutputLength(rows, this.poolSize[1], this.padding, this.strides[1]); + cols = convOutputLength(cols, this.poolSize[2], this.padding, this.strides[2]); + if (this.dataFormat === "channelsFirst") { + return [inputShape[0], inputShape[1], depths, rows, cols]; + } else { + return [inputShape[0], depths, rows, cols, inputShape[4]]; + } + } + call(inputs, kwargs) { + return tidy(() => { + this.invokeCallHook(inputs, kwargs); + return this.poolingFunction(getExactlyOneTensor(inputs), this.poolSize, this.strides, this.padding, this.dataFormat); + }); + } + getConfig() { + const config2 = { + poolSize: this.poolSize, + padding: this.padding, + strides: this.strides, + dataFormat: this.dataFormat + }; + const baseConfig = super.getConfig(); + Object.assign(config2, baseConfig); + return config2; + } + } + class MaxPooling3D extends Pooling3D { + constructor(args) { + super(args); + } + poolingFunction(inputs, poolSize, strides, padding2, dataFormat) { + checkDataFormat(dataFormat); + checkPaddingMode(padding2); + return pool3d(inputs, poolSize, strides, padding2, dataFormat, "max"); + } + } + MaxPooling3D.className = "MaxPooling3D"; + serialization_exports.registerClass(MaxPooling3D); + class AveragePooling3D extends Pooling3D { + constructor(args) { + super(args); + } + poolingFunction(inputs, poolSize, strides, padding2, dataFormat) { + checkDataFormat(dataFormat); + checkPaddingMode(padding2); + return pool3d(inputs, poolSize, strides, padding2, dataFormat, "avg"); + } + } + AveragePooling3D.className = "AveragePooling3D"; + serialization_exports.registerClass(AveragePooling3D); + class GlobalPooling1D extends Layer { + constructor(args) { + super(args); + this.inputSpec = [new InputSpec({ndim: 3})]; + } + computeOutputShape(inputShape) { + return [inputShape[0], inputShape[2]]; + } + call(inputs, kwargs) { + throw new NotImplementedError(); + } + } + class GlobalAveragePooling1D extends GlobalPooling1D { + constructor(args) { + super(args || {}); + } + call(inputs, kwargs) { + return tidy(() => { + const input2 = getExactlyOneTensor(inputs); + return mean(input2, 1); + }); + } + } + GlobalAveragePooling1D.className = "GlobalAveragePooling1D"; + serialization_exports.registerClass(GlobalAveragePooling1D); + class GlobalMaxPooling1D extends GlobalPooling1D { + constructor(args) { + super(args || {}); + } + call(inputs, kwargs) { + return tidy(() => { + const input2 = getExactlyOneTensor(inputs); + return max(input2, 1); + }); + } + } + GlobalMaxPooling1D.className = "GlobalMaxPooling1D"; + serialization_exports.registerClass(GlobalMaxPooling1D); + class GlobalPooling2D extends Layer { + constructor(args) { + super(args); + this.dataFormat = args.dataFormat == null ? "channelsLast" : args.dataFormat; + checkDataFormat(this.dataFormat); + this.inputSpec = [new InputSpec({ndim: 4})]; + } + computeOutputShape(inputShape) { + inputShape = inputShape; + if (this.dataFormat === "channelsLast") { + return [inputShape[0], inputShape[3]]; + } else { + return [inputShape[0], inputShape[1]]; + } + } + call(inputs, kwargs) { + throw new NotImplementedError(); + } + getConfig() { + const config2 = {dataFormat: this.dataFormat}; + const baseConfig = super.getConfig(); + Object.assign(config2, baseConfig); + return config2; + } + } + class GlobalAveragePooling2D extends GlobalPooling2D { + call(inputs, kwargs) { + return tidy(() => { + const input2 = getExactlyOneTensor(inputs); + if (this.dataFormat === "channelsLast") { + return mean(input2, [1, 2]); + } else { + return mean(input2, [2, 3]); + } + }); + } + } + GlobalAveragePooling2D.className = "GlobalAveragePooling2D"; + serialization_exports.registerClass(GlobalAveragePooling2D); + class GlobalMaxPooling2D extends GlobalPooling2D { + call(inputs, kwargs) { + return tidy(() => { + const input2 = getExactlyOneTensor(inputs); + if (this.dataFormat === "channelsLast") { + return max(input2, [1, 2]); + } else { + return max(input2, [2, 3]); + } + }); + } + } + GlobalMaxPooling2D.className = "GlobalMaxPooling2D"; + serialization_exports.registerClass(GlobalMaxPooling2D); + + // node_modules/@tensorflow/tfjs-layers/dist/layers/recurrent.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + function standardizeArgs(inputs, initialState, constants, numConstants) { + if (Array.isArray(inputs)) { + if (initialState != null || constants != null) { + throw new ValueError("When inputs is an array, neither initialState or constants should be provided"); + } + if (numConstants != null) { + constants = inputs.slice(inputs.length - numConstants, inputs.length); + inputs = inputs.slice(0, inputs.length - numConstants); + } + if (inputs.length > 1) { + initialState = inputs.slice(1, inputs.length); + } + inputs = inputs[0]; + } + function toListOrNull(x) { + if (x == null || Array.isArray(x)) { + return x; + } else { + return [x]; + } + } + initialState = toListOrNull(initialState); + constants = toListOrNull(constants); + return {inputs, initialState, constants}; + } + function rnn(stepFunction, inputs, initialStates, goBackwards = false, mask, constants, unroll = false, needPerStepOutputs = false) { + return tidy(() => { + const ndim = inputs.shape.length; + if (ndim < 3) { + throw new ValueError(`Input should be at least 3D, but is ${ndim}D.`); + } + const axes = [1, 0].concat(range4(2, ndim)); + inputs = transpose(inputs, axes); + if (constants != null) { + throw new NotImplementedError("The rnn() functoin of the deeplearn.js backend does not support constants yet."); + } + if (unroll) { + console.warn("Backend rnn(): the unroll = true option is not applicable to the imperative deeplearn.js backend."); + } + if (mask != null) { + mask = mask.asType("bool").asType("float32"); + if (mask.rank === ndim - 1) { + mask = expandDims(mask, -1); + } + mask = transpose(mask, axes); + } + if (goBackwards) { + inputs = reverse(inputs, 0); + if (mask != null) { + mask = reverse(mask, 0); + } + } + const perStepOutputs = []; + let lastOutput; + let states = initialStates; + const timeSteps = inputs.shape[0]; + const perStepInputs = unstack(inputs); + let perStepMasks; + if (mask != null) { + perStepMasks = unstack(mask); + } + for (let t = 0; t < timeSteps; ++t) { + const currentInput = perStepInputs[t]; + const stepOutputs = tidy(() => stepFunction(currentInput, states)); + if (mask == null) { + lastOutput = stepOutputs[0]; + states = stepOutputs[1]; + } else { + const maskedOutputs = tidy(() => { + const stepMask = perStepMasks[t]; + const negStepMask = onesLike(stepMask).sub(stepMask); + const output = stepOutputs[0].mul(stepMask).add(states[0].mul(negStepMask)); + const newStates = states.map((state6, i) => { + return stepOutputs[1][i].mul(stepMask).add(state6.mul(negStepMask)); + }); + return {output, newStates}; + }); + lastOutput = maskedOutputs.output; + states = maskedOutputs.newStates; + } + if (needPerStepOutputs) { + perStepOutputs.push(lastOutput); + } + } + let outputs; + if (needPerStepOutputs) { + const axis = 1; + outputs = stack(perStepOutputs, axis); + } + return [lastOutput, outputs, states]; + }); + } + class RNN extends Layer { + constructor(args) { + super(args); + let cell; + if (args.cell == null) { + throw new ValueError("cell property is missing for the constructor of RNN."); + } else if (Array.isArray(args.cell)) { + cell = new StackedRNNCells({cells: args.cell}); + } else { + cell = args.cell; + } + if (cell.stateSize == null) { + throw new ValueError("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state)."); + } + this.cell = cell; + this.returnSequences = args.returnSequences == null ? false : args.returnSequences; + this.returnState = args.returnState == null ? false : args.returnState; + this.goBackwards = args.goBackwards == null ? false : args.goBackwards; + this._stateful = args.stateful == null ? false : args.stateful; + this.unroll = args.unroll == null ? false : args.unroll; + this.supportsMasking = true; + this.inputSpec = [new InputSpec({ndim: 3})]; + this.stateSpec = null; + this.states_ = null; + this.numConstants = null; + this.keptStates = []; + } + getStates() { + if (this.states_ == null) { + const numStates = Array.isArray(this.cell.stateSize) ? this.cell.stateSize.length : 1; + return range4(0, numStates).map((x) => null); + } else { + return this.states_; + } + } + setStates(states) { + this.states_ = states; + } + computeOutputShape(inputShape) { + if (isArrayOfShapes(inputShape)) { + inputShape = inputShape[0]; + } + inputShape = inputShape; + let stateSize = this.cell.stateSize; + if (!Array.isArray(stateSize)) { + stateSize = [stateSize]; + } + const outputDim = stateSize[0]; + let outputShape; + if (this.returnSequences) { + outputShape = [inputShape[0], inputShape[1], outputDim]; + } else { + outputShape = [inputShape[0], outputDim]; + } + if (this.returnState) { + const stateShape = []; + for (const dim of stateSize) { + stateShape.push([inputShape[0], dim]); + } + return [outputShape].concat(stateShape); + } else { + return outputShape; + } + } + computeMask(inputs, mask) { + return tidy(() => { + if (Array.isArray(mask)) { + mask = mask[0]; + } + const outputMask = this.returnSequences ? mask : null; + if (this.returnState) { + const stateMask = this.states.map((s) => null); + return [outputMask].concat(stateMask); + } else { + return outputMask; + } + }); + } + get states() { + if (this.states_ == null) { + const numStates = Array.isArray(this.cell.stateSize) ? this.cell.stateSize.length : 1; + const output = []; + for (let i = 0; i < numStates; ++i) { + output.push(null); + } + return output; + } else { + return this.states_; + } + } + set states(s) { + this.states_ = s; + } + build(inputShape) { + const constantShape = null; + if (this.numConstants != null) { + throw new NotImplementedError("Constants support is not implemented in RNN yet."); + } + if (isArrayOfShapes(inputShape)) { + inputShape = inputShape[0]; + } + inputShape = inputShape; + const batchSize = this.stateful ? inputShape[0] : null; + const inputDim = inputShape[inputShape.length - 1]; + this.inputSpec[0] = new InputSpec({shape: [batchSize, null, inputDim]}); + const stepInputShape = [inputShape[0]].concat(inputShape.slice(2)); + if (constantShape != null) { + throw new NotImplementedError("Constants support is not implemented in RNN yet."); + } else { + this.cell.build(stepInputShape); + } + let stateSize; + if (Array.isArray(this.cell.stateSize)) { + stateSize = this.cell.stateSize; + } else { + stateSize = [this.cell.stateSize]; + } + if (this.stateSpec != null) { + if (!util_exports.arraysEqual(this.stateSpec.map((spec) => spec.shape[spec.shape.length - 1]), stateSize)) { + throw new ValueError(`An initialState was passed that is not compatible with cell.stateSize. Received stateSpec=${this.stateSpec}; However cell.stateSize is ${this.cell.stateSize}`); + } + } else { + this.stateSpec = stateSize.map((dim) => new InputSpec({shape: [null, dim]})); + } + if (this.stateful) { + this.resetStates(); + } + } + resetStates(states, training5 = false) { + tidy(() => { + if (!this.stateful) { + throw new AttributeError("Cannot call resetStates() on an RNN Layer that is not stateful."); + } + const batchSize = this.inputSpec[0].shape[0]; + if (batchSize == null) { + throw new ValueError("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer."); + } + if (this.states_ == null) { + if (Array.isArray(this.cell.stateSize)) { + this.states_ = this.cell.stateSize.map((dim) => zeros([batchSize, dim])); + } else { + this.states_ = [zeros([batchSize, this.cell.stateSize])]; + } + } else if (states == null) { + dispose(this.states_); + if (this.keptStates != null) { + dispose(this.keptStates); + this.keptStates = []; + } + if (Array.isArray(this.cell.stateSize)) { + this.states_ = this.cell.stateSize.map((dim) => zeros([batchSize, dim])); + } else { + this.states_[0] = zeros([batchSize, this.cell.stateSize]); + } + } else { + if (!Array.isArray(states)) { + states = [states]; + } + if (states.length !== this.states_.length) { + throw new ValueError(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${states.length} state value(s). Input received: ${states}`); + } + if (training5 === true) { + this.keptStates.push(this.states_.slice()); + } else { + dispose(this.states_); + } + for (let index = 0; index < this.states_.length; ++index) { + const value = states[index]; + const dim = Array.isArray(this.cell.stateSize) ? this.cell.stateSize[index] : this.cell.stateSize; + const expectedShape = [batchSize, dim]; + if (!util_exports.arraysEqual(value.shape, expectedShape)) { + throw new ValueError(`State ${index} is incompatible with layer ${this.name}: expected shape=${expectedShape}, received shape=${value.shape}`); + } + this.states_[index] = value; + } + } + this.states_ = this.states_.map((state6) => keep(state6.clone())); + }); + } + apply(inputs, kwargs) { + let initialState = kwargs == null ? null : kwargs["initialState"]; + let constants = kwargs == null ? null : kwargs["constants"]; + if (kwargs == null) { + kwargs = {}; + } + const standardized = standardizeArgs(inputs, initialState, constants, this.numConstants); + inputs = standardized.inputs; + initialState = standardized.initialState; + constants = standardized.constants; + let additionalInputs = []; + let additionalSpecs = []; + if (initialState != null) { + kwargs["initialState"] = initialState; + additionalInputs = additionalInputs.concat(initialState); + this.stateSpec = []; + for (const state6 of initialState) { + this.stateSpec.push(new InputSpec({shape: state6.shape})); + } + additionalSpecs = additionalSpecs.concat(this.stateSpec); + } + if (constants != null) { + kwargs["constants"] = constants; + additionalInputs = additionalInputs.concat(constants); + this.numConstants = constants.length; + } + const isTensor2 = additionalInputs[0] instanceof SymbolicTensor; + if (isTensor2) { + const fullInput = [inputs].concat(additionalInputs); + const fullInputSpec = this.inputSpec.concat(additionalSpecs); + const originalInputSpec = this.inputSpec; + this.inputSpec = fullInputSpec; + const output = super.apply(fullInput, kwargs); + this.inputSpec = originalInputSpec; + return output; + } else { + return super.apply(inputs, kwargs); + } + } + call(inputs, kwargs) { + return tidy(() => { + const mask = kwargs == null ? null : kwargs["mask"]; + const training5 = kwargs == null ? null : kwargs["training"]; + let initialState = kwargs == null ? null : kwargs["initialState"]; + inputs = getExactlyOneTensor(inputs); + if (initialState == null) { + if (this.stateful) { + initialState = this.states_; + } else { + initialState = this.getInitialState(inputs); + } + } + const numStates = Array.isArray(this.cell.stateSize) ? this.cell.stateSize.length : 1; + if (initialState.length !== numStates) { + throw new ValueError(`RNN Layer has ${numStates} state(s) but was passed ${initialState.length} initial state(s).`); + } + if (this.unroll) { + console.warn("Ignoring unroll = true for RNN layer, due to imperative backend."); + } + const cellCallKwargs = {training: training5}; + const step7 = (inputs2, states2) => { + const outputs2 = this.cell.call([inputs2].concat(states2), cellCallKwargs); + return [outputs2[0], outputs2.slice(1)]; + }; + const rnnOutputs = rnn(step7, inputs, initialState, this.goBackwards, mask, null, this.unroll, this.returnSequences); + const lastOutput = rnnOutputs[0]; + const outputs = rnnOutputs[1]; + const states = rnnOutputs[2]; + if (this.stateful) { + this.resetStates(states, training5); + } + const output = this.returnSequences ? outputs : lastOutput; + if (this.returnState) { + return [output].concat(states); + } else { + return output; + } + }); + } + getInitialState(inputs) { + return tidy(() => { + let initialState = zeros(inputs.shape); + initialState = sum2(initialState, [1, 2]); + initialState = expandDims2(initialState); + if (Array.isArray(this.cell.stateSize)) { + return this.cell.stateSize.map((dim) => dim > 1 ? tile6(initialState, [1, dim]) : initialState); + } else { + return this.cell.stateSize > 1 ? [tile6(initialState, [1, this.cell.stateSize])] : [initialState]; + } + }); + } + get trainableWeights() { + if (!this.trainable) { + return []; + } + return this.cell.trainableWeights; + } + get nonTrainableWeights() { + if (!this.trainable) { + return this.cell.weights; + } + return this.cell.nonTrainableWeights; + } + setFastWeightInitDuringBuild(value) { + super.setFastWeightInitDuringBuild(value); + if (this.cell != null) { + this.cell.setFastWeightInitDuringBuild(value); + } + } + getConfig() { + const config2 = { + returnSequences: this.returnSequences, + returnState: this.returnState, + goBackwards: this.goBackwards, + stateful: this.stateful, + unroll: this.unroll + }; + if (this.numConstants != null) { + config2["numConstants"] = this.numConstants; + } + const cellConfig = this.cell.getConfig(); + config2["cell"] = { + className: this.cell.getClassName(), + config: cellConfig + }; + const baseConfig = super.getConfig(); + Object.assign(config2, baseConfig); + return config2; + } + static fromConfig(cls, config2, customObjects = {}) { + const cellConfig = config2["cell"]; + const cell = deserialize(cellConfig, customObjects); + return new cls(Object.assign(config2, {cell})); + } + } + RNN.className = "RNN"; + serialization_exports.registerClass(RNN); + class RNNCell extends Layer { + } + class SimpleRNNCell extends RNNCell { + constructor(args) { + super(args); + this.DEFAULT_ACTIVATION = "tanh"; + this.DEFAULT_KERNEL_INITIALIZER = "glorotNormal"; + this.DEFAULT_RECURRENT_INITIALIZER = "orthogonal"; + this.DEFAULT_BIAS_INITIALIZER = "zeros"; + this.units = args.units; + assertPositiveInteger(this.units, `units`); + this.activation = getActivation(args.activation == null ? this.DEFAULT_ACTIVATION : args.activation); + this.useBias = args.useBias == null ? true : args.useBias; + this.kernelInitializer = getInitializer(args.kernelInitializer || this.DEFAULT_KERNEL_INITIALIZER); + this.recurrentInitializer = getInitializer(args.recurrentInitializer || this.DEFAULT_RECURRENT_INITIALIZER); + this.biasInitializer = getInitializer(args.biasInitializer || this.DEFAULT_BIAS_INITIALIZER); + this.kernelRegularizer = getRegularizer(args.kernelRegularizer); + this.recurrentRegularizer = getRegularizer(args.recurrentRegularizer); + this.biasRegularizer = getRegularizer(args.biasRegularizer); + this.kernelConstraint = getConstraint(args.kernelConstraint); + this.recurrentConstraint = getConstraint(args.recurrentConstraint); + this.biasConstraint = getConstraint(args.biasConstraint); + this.dropout = min5([1, max7([0, args.dropout == null ? 0 : args.dropout])]); + this.recurrentDropout = min5([ + 1, + max7([0, args.recurrentDropout == null ? 0 : args.recurrentDropout]) + ]); + this.stateSize = this.units; + this.dropoutMask = null; + this.recurrentDropoutMask = null; + } + build(inputShape) { + inputShape = getExactlyOneShape(inputShape); + this.kernel = this.addWeight("kernel", [inputShape[inputShape.length - 1], this.units], null, this.kernelInitializer, this.kernelRegularizer, true, this.kernelConstraint); + this.recurrentKernel = this.addWeight("recurrent_kernel", [this.units, this.units], null, this.recurrentInitializer, this.recurrentRegularizer, true, this.recurrentConstraint); + if (this.useBias) { + this.bias = this.addWeight("bias", [this.units], null, this.biasInitializer, this.biasRegularizer, true, this.biasConstraint); + } else { + this.bias = null; + } + this.built = true; + } + call(inputs, kwargs) { + return tidy(() => { + inputs = inputs; + if (inputs.length !== 2) { + throw new ValueError(`SimpleRNNCell expects 2 input Tensors, got ${inputs.length}.`); + } + let prevOutput = inputs[1]; + inputs = inputs[0]; + const training5 = kwargs["training"] == null ? false : kwargs["training"]; + if (0 < this.dropout && this.dropout < 1 && this.dropoutMask == null) { + this.dropoutMask = generateDropoutMask(() => onesLike(inputs), this.dropout, training5); + } + if (0 < this.recurrentDropout && this.recurrentDropout < 1 && this.recurrentDropoutMask == null) { + this.recurrentDropoutMask = generateDropoutMask(() => onesLike(prevOutput), this.recurrentDropout, training5); + } + let h; + const dpMask = this.dropoutMask; + const recDpMask = this.recurrentDropoutMask; + if (dpMask != null) { + h = dot3(mul(inputs, dpMask), this.kernel.read()); + } else { + h = dot3(inputs, this.kernel.read()); + } + if (this.bias != null) { + h = biasAdd(h, this.bias.read()); + } + if (recDpMask != null) { + prevOutput = mul(prevOutput, recDpMask); + } + let output = add2(h, dot3(prevOutput, this.recurrentKernel.read())); + if (this.activation != null) { + output = this.activation.apply(output); + } + return [output, output]; + }); + } + getConfig() { + const config2 = { + units: this.units, + activation: serializeActivation(this.activation), + useBias: this.useBias, + kernelInitializer: serializeInitializer(this.kernelInitializer), + recurrentInitializer: serializeInitializer(this.recurrentInitializer), + biasInitializer: serializeInitializer(this.biasInitializer), + kernelRegularizer: serializeRegularizer(this.kernelRegularizer), + recurrentRegularizer: serializeRegularizer(this.recurrentRegularizer), + biasRegularizer: serializeRegularizer(this.biasRegularizer), + activityRegularizer: serializeRegularizer(this.activityRegularizer), + kernelConstraint: serializeConstraint(this.kernelConstraint), + recurrentConstraint: serializeConstraint(this.recurrentConstraint), + biasConstraint: serializeConstraint(this.biasConstraint), + dropout: this.dropout, + recurrentDropout: this.recurrentDropout + }; + const baseConfig = super.getConfig(); + Object.assign(config2, baseConfig); + return config2; + } + } + SimpleRNNCell.className = "SimpleRNNCell"; + serialization_exports.registerClass(SimpleRNNCell); + class SimpleRNN extends RNN { + constructor(args) { + args.cell = new SimpleRNNCell(args); + super(args); + } + call(inputs, kwargs) { + return tidy(() => { + if (this.cell.dropoutMask != null) { + dispose(this.cell.dropoutMask); + this.cell.dropoutMask = null; + } + if (this.cell.recurrentDropoutMask != null) { + dispose(this.cell.recurrentDropoutMask); + this.cell.recurrentDropoutMask = null; + } + const mask = kwargs == null ? null : kwargs["mask"]; + const training5 = kwargs == null ? null : kwargs["training"]; + const initialState = kwargs == null ? null : kwargs["initialState"]; + return super.call(inputs, {mask, training: training5, initialState}); + }); + } + get units() { + return this.cell.units; + } + get activation() { + return this.cell.activation; + } + get useBias() { + return this.cell.useBias; + } + get kernelInitializer() { + return this.cell.kernelInitializer; + } + get recurrentInitializer() { + return this.cell.recurrentInitializer; + } + get biasInitializer() { + return this.cell.biasInitializer; + } + get kernelRegularizer() { + return this.cell.kernelRegularizer; + } + get recurrentRegularizer() { + return this.cell.recurrentRegularizer; + } + get biasRegularizer() { + return this.cell.biasRegularizer; + } + get kernelConstraint() { + return this.cell.kernelConstraint; + } + get recurrentConstraint() { + return this.cell.recurrentConstraint; + } + get biasConstraint() { + return this.cell.biasConstraint; + } + get dropout() { + return this.cell.dropout; + } + get recurrentDropout() { + return this.cell.recurrentDropout; + } + getConfig() { + const config2 = { + units: this.units, + activation: serializeActivation(this.activation), + useBias: this.useBias, + kernelInitializer: serializeInitializer(this.kernelInitializer), + recurrentInitializer: serializeInitializer(this.recurrentInitializer), + biasInitializer: serializeInitializer(this.biasInitializer), + kernelRegularizer: serializeRegularizer(this.kernelRegularizer), + recurrentRegularizer: serializeRegularizer(this.recurrentRegularizer), + biasRegularizer: serializeRegularizer(this.biasRegularizer), + activityRegularizer: serializeRegularizer(this.activityRegularizer), + kernelConstraint: serializeConstraint(this.kernelConstraint), + recurrentConstraint: serializeConstraint(this.recurrentConstraint), + biasConstraint: serializeConstraint(this.biasConstraint), + dropout: this.dropout, + recurrentDropout: this.recurrentDropout + }; + const baseConfig = super.getConfig(); + delete baseConfig["cell"]; + Object.assign(config2, baseConfig); + return config2; + } + static fromConfig(cls, config2) { + return new cls(config2); + } + } + SimpleRNN.className = "SimpleRNN"; + serialization_exports.registerClass(SimpleRNN); + class GRUCell extends RNNCell { + constructor(args) { + super(args); + this.DEFAULT_ACTIVATION = "tanh"; + this.DEFAULT_RECURRENT_ACTIVATION = "hardSigmoid"; + this.DEFAULT_KERNEL_INITIALIZER = "glorotNormal"; + this.DEFAULT_RECURRENT_INITIALIZER = "orthogonal"; + this.DEFAULT_BIAS_INITIALIZER = "zeros"; + if (args.resetAfter) { + throw new ValueError(`GRUCell does not support reset_after parameter set to true.`); + } + this.units = args.units; + assertPositiveInteger(this.units, "units"); + this.activation = getActivation(args.activation === void 0 ? this.DEFAULT_ACTIVATION : args.activation); + this.recurrentActivation = getActivation(args.recurrentActivation === void 0 ? this.DEFAULT_RECURRENT_ACTIVATION : args.recurrentActivation); + this.useBias = args.useBias == null ? true : args.useBias; + this.kernelInitializer = getInitializer(args.kernelInitializer || this.DEFAULT_KERNEL_INITIALIZER); + this.recurrentInitializer = getInitializer(args.recurrentInitializer || this.DEFAULT_RECURRENT_INITIALIZER); + this.biasInitializer = getInitializer(args.biasInitializer || this.DEFAULT_BIAS_INITIALIZER); + this.kernelRegularizer = getRegularizer(args.kernelRegularizer); + this.recurrentRegularizer = getRegularizer(args.recurrentRegularizer); + this.biasRegularizer = getRegularizer(args.biasRegularizer); + this.kernelConstraint = getConstraint(args.kernelConstraint); + this.recurrentConstraint = getConstraint(args.recurrentConstraint); + this.biasConstraint = getConstraint(args.biasConstraint); + this.dropout = min5([1, max7([0, args.dropout == null ? 0 : args.dropout])]); + this.recurrentDropout = min5([ + 1, + max7([0, args.recurrentDropout == null ? 0 : args.recurrentDropout]) + ]); + this.implementation = args.implementation; + this.stateSize = this.units; + this.dropoutMask = null; + this.recurrentDropoutMask = null; + } + build(inputShape) { + inputShape = getExactlyOneShape(inputShape); + const inputDim = inputShape[inputShape.length - 1]; + this.kernel = this.addWeight("kernel", [inputDim, this.units * 3], null, this.kernelInitializer, this.kernelRegularizer, true, this.kernelConstraint); + this.recurrentKernel = this.addWeight("recurrent_kernel", [this.units, this.units * 3], null, this.recurrentInitializer, this.recurrentRegularizer, true, this.recurrentConstraint); + if (this.useBias) { + this.bias = this.addWeight("bias", [this.units * 3], null, this.biasInitializer, this.biasRegularizer, true, this.biasConstraint); + } else { + this.bias = null; + } + this.built = true; + } + call(inputs, kwargs) { + return tidy(() => { + inputs = inputs; + if (inputs.length !== 2) { + throw new ValueError(`GRUCell expects 2 input Tensors (inputs, h, c), got ${inputs.length}.`); + } + const training5 = kwargs["training"] == null ? false : kwargs["training"]; + let hTMinus1 = inputs[1]; + inputs = inputs[0]; + if (0 < this.dropout && this.dropout < 1 && this.dropoutMask == null) { + this.dropoutMask = generateDropoutMask(() => onesLike(inputs), this.dropout, training5, 3); + } + if (0 < this.recurrentDropout && this.recurrentDropout < 1 && this.recurrentDropoutMask == null) { + this.recurrentDropoutMask = generateDropoutMask(() => onesLike(hTMinus1), this.recurrentDropout, training5, 3); + } + const dpMask = this.dropoutMask; + const recDpMask = this.recurrentDropoutMask; + let z; + let r; + let hh; + if (0 < this.dropout && this.dropout < 1) { + inputs = mul(inputs, dpMask[0]); + } + let matrixX = dot3(inputs, this.kernel.read()); + if (this.useBias) { + matrixX = biasAdd(matrixX, this.bias.read()); + } + if (0 < this.recurrentDropout && this.recurrentDropout < 1) { + hTMinus1 = mul(hTMinus1, recDpMask[0]); + } + const recurrentKernelValue = this.recurrentKernel.read(); + const [rk1, rk2] = split(recurrentKernelValue, [2 * this.units, this.units], recurrentKernelValue.rank - 1); + const matrixInner = dot3(hTMinus1, rk1); + const [xZ, xR, xH] = split(matrixX, 3, matrixX.rank - 1); + const [recurrentZ, recurrentR] = split(matrixInner, 2, matrixInner.rank - 1); + z = this.recurrentActivation.apply(add2(xZ, recurrentZ)); + r = this.recurrentActivation.apply(add2(xR, recurrentR)); + const recurrentH = dot3(mul(r, hTMinus1), rk2); + hh = this.activation.apply(add2(xH, recurrentH)); + const h = add2(mul(z, hTMinus1), mul(add2(1, neg(z)), hh)); + return [h, h]; + }); + } + getConfig() { + const config2 = { + units: this.units, + activation: serializeActivation(this.activation), + recurrentActivation: serializeActivation(this.recurrentActivation), + useBias: this.useBias, + kernelInitializer: serializeInitializer(this.kernelInitializer), + recurrentInitializer: serializeInitializer(this.recurrentInitializer), + biasInitializer: serializeInitializer(this.biasInitializer), + kernelRegularizer: serializeRegularizer(this.kernelRegularizer), + recurrentRegularizer: serializeRegularizer(this.recurrentRegularizer), + biasRegularizer: serializeRegularizer(this.biasRegularizer), + activityRegularizer: serializeRegularizer(this.activityRegularizer), + kernelConstraint: serializeConstraint(this.kernelConstraint), + recurrentConstraint: serializeConstraint(this.recurrentConstraint), + biasConstraint: serializeConstraint(this.biasConstraint), + dropout: this.dropout, + recurrentDropout: this.recurrentDropout, + implementation: this.implementation, + resetAfter: false + }; + const baseConfig = super.getConfig(); + Object.assign(config2, baseConfig); + return config2; + } + } + GRUCell.className = "GRUCell"; + serialization_exports.registerClass(GRUCell); + class GRU extends RNN { + constructor(args) { + if (args.implementation === 0) { + console.warn("`implementation=0` has been deprecated, and now defaults to `implementation=1`. Please update your layer call."); + } + args.cell = new GRUCell(args); + super(args); + } + call(inputs, kwargs) { + return tidy(() => { + if (this.cell.dropoutMask != null) { + dispose(this.cell.dropoutMask); + this.cell.dropoutMask = null; + } + if (this.cell.recurrentDropoutMask != null) { + dispose(this.cell.recurrentDropoutMask); + this.cell.recurrentDropoutMask = null; + } + const mask = kwargs == null ? null : kwargs["mask"]; + const training5 = kwargs == null ? null : kwargs["training"]; + const initialState = kwargs == null ? null : kwargs["initialState"]; + return super.call(inputs, {mask, training: training5, initialState}); + }); + } + get units() { + return this.cell.units; + } + get activation() { + return this.cell.activation; + } + get recurrentActivation() { + return this.cell.recurrentActivation; + } + get useBias() { + return this.cell.useBias; + } + get kernelInitializer() { + return this.cell.kernelInitializer; + } + get recurrentInitializer() { + return this.cell.recurrentInitializer; + } + get biasInitializer() { + return this.cell.biasInitializer; + } + get kernelRegularizer() { + return this.cell.kernelRegularizer; + } + get recurrentRegularizer() { + return this.cell.recurrentRegularizer; + } + get biasRegularizer() { + return this.cell.biasRegularizer; + } + get kernelConstraint() { + return this.cell.kernelConstraint; + } + get recurrentConstraint() { + return this.cell.recurrentConstraint; + } + get biasConstraint() { + return this.cell.biasConstraint; + } + get dropout() { + return this.cell.dropout; + } + get recurrentDropout() { + return this.cell.recurrentDropout; + } + get implementation() { + return this.cell.implementation; + } + getConfig() { + const config2 = { + units: this.units, + activation: serializeActivation(this.activation), + recurrentActivation: serializeActivation(this.recurrentActivation), + useBias: this.useBias, + kernelInitializer: serializeInitializer(this.kernelInitializer), + recurrentInitializer: serializeInitializer(this.recurrentInitializer), + biasInitializer: serializeInitializer(this.biasInitializer), + kernelRegularizer: serializeRegularizer(this.kernelRegularizer), + recurrentRegularizer: serializeRegularizer(this.recurrentRegularizer), + biasRegularizer: serializeRegularizer(this.biasRegularizer), + activityRegularizer: serializeRegularizer(this.activityRegularizer), + kernelConstraint: serializeConstraint(this.kernelConstraint), + recurrentConstraint: serializeConstraint(this.recurrentConstraint), + biasConstraint: serializeConstraint(this.biasConstraint), + dropout: this.dropout, + recurrentDropout: this.recurrentDropout, + implementation: this.implementation, + resetAfter: false + }; + const baseConfig = super.getConfig(); + delete baseConfig["cell"]; + Object.assign(config2, baseConfig); + return config2; + } + static fromConfig(cls, config2) { + if (config2["implmentation"] === 0) { + config2["implementation"] = 1; + } + return new cls(config2); + } + } + GRU.className = "GRU"; + serialization_exports.registerClass(GRU); + class LSTMCell extends RNNCell { + constructor(args) { + super(args); + this.DEFAULT_ACTIVATION = "tanh"; + this.DEFAULT_RECURRENT_ACTIVATION = "hardSigmoid"; + this.DEFAULT_KERNEL_INITIALIZER = "glorotNormal"; + this.DEFAULT_RECURRENT_INITIALIZER = "orthogonal"; + this.DEFAULT_BIAS_INITIALIZER = "zeros"; + this.units = args.units; + assertPositiveInteger(this.units, "units"); + this.activation = getActivation(args.activation === void 0 ? this.DEFAULT_ACTIVATION : args.activation); + this.recurrentActivation = getActivation(args.recurrentActivation === void 0 ? this.DEFAULT_RECURRENT_ACTIVATION : args.recurrentActivation); + this.useBias = args.useBias == null ? true : args.useBias; + this.kernelInitializer = getInitializer(args.kernelInitializer || this.DEFAULT_KERNEL_INITIALIZER); + this.recurrentInitializer = getInitializer(args.recurrentInitializer || this.DEFAULT_RECURRENT_INITIALIZER); + this.biasInitializer = getInitializer(args.biasInitializer || this.DEFAULT_BIAS_INITIALIZER); + this.unitForgetBias = args.unitForgetBias; + this.kernelRegularizer = getRegularizer(args.kernelRegularizer); + this.recurrentRegularizer = getRegularizer(args.recurrentRegularizer); + this.biasRegularizer = getRegularizer(args.biasRegularizer); + this.kernelConstraint = getConstraint(args.kernelConstraint); + this.recurrentConstraint = getConstraint(args.recurrentConstraint); + this.biasConstraint = getConstraint(args.biasConstraint); + this.dropout = min5([1, max7([0, args.dropout == null ? 0 : args.dropout])]); + this.recurrentDropout = min5([ + 1, + max7([0, args.recurrentDropout == null ? 0 : args.recurrentDropout]) + ]); + this.implementation = args.implementation; + this.stateSize = [this.units, this.units]; + this.dropoutMask = null; + this.recurrentDropoutMask = null; + } + build(inputShape) { + var _a; + inputShape = getExactlyOneShape(inputShape); + const inputDim = inputShape[inputShape.length - 1]; + this.kernel = this.addWeight("kernel", [inputDim, this.units * 4], null, this.kernelInitializer, this.kernelRegularizer, true, this.kernelConstraint); + this.recurrentKernel = this.addWeight("recurrent_kernel", [this.units, this.units * 4], null, this.recurrentInitializer, this.recurrentRegularizer, true, this.recurrentConstraint); + let biasInitializer; + if (this.useBias) { + if (this.unitForgetBias) { + const capturedBiasInit = this.biasInitializer; + const capturedUnits = this.units; + biasInitializer = new (_a = class CustomInit extends Initializer { + apply(shape, dtype) { + const bI = capturedBiasInit.apply([capturedUnits]); + const bF = new Ones().apply([capturedUnits]); + const bCAndH = capturedBiasInit.apply([capturedUnits * 2]); + return concatAlongFirstAxis(concatAlongFirstAxis(bI, bF), bCAndH); + } + }, _a.className = "CustomInit", _a)(); + } else { + biasInitializer = this.biasInitializer; + } + this.bias = this.addWeight("bias", [this.units * 4], null, biasInitializer, this.biasRegularizer, true, this.biasConstraint); + } else { + this.bias = null; + } + this.built = true; + } + call(inputs, kwargs) { + return tidy(() => { + const training5 = kwargs["training"] == null ? false : kwargs["training"]; + inputs = inputs; + if (inputs.length !== 3) { + throw new ValueError(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${inputs.length}.`); + } + let hTMinus1 = inputs[1]; + const cTMinus1 = inputs[2]; + inputs = inputs[0]; + if (0 < this.dropout && this.dropout < 1 && this.dropoutMask == null) { + this.dropoutMask = generateDropoutMask(() => onesLike(inputs), this.dropout, training5, 4); + } + if (0 < this.recurrentDropout && this.recurrentDropout < 1 && this.recurrentDropoutMask == null) { + this.recurrentDropoutMask = generateDropoutMask(() => onesLike(hTMinus1), this.recurrentDropout, training5, 4); + } + const dpMask = this.dropoutMask; + const recDpMask = this.recurrentDropoutMask; + let i; + let f; + let c; + let o; + if (0 < this.dropout && this.dropout < 1) { + inputs = mul(inputs, dpMask[0]); + } + let z = dot3(inputs, this.kernel.read()); + if (0 < this.recurrentDropout && this.recurrentDropout < 1) { + hTMinus1 = mul(hTMinus1, recDpMask[0]); + } + z = add2(z, dot3(hTMinus1, this.recurrentKernel.read())); + if (this.useBias) { + z = biasAdd(z, this.bias.read()); + } + const [z0, z1, z2, z3] = split(z, 4, z.rank - 1); + i = this.recurrentActivation.apply(z0); + f = this.recurrentActivation.apply(z1); + c = add2(mul(f, cTMinus1), mul(i, this.activation.apply(z2))); + o = this.recurrentActivation.apply(z3); + const h = mul(o, this.activation.apply(c)); + return [h, h, c]; + }); + } + getConfig() { + const config2 = { + units: this.units, + activation: serializeActivation(this.activation), + recurrentActivation: serializeActivation(this.recurrentActivation), + useBias: this.useBias, + kernelInitializer: serializeInitializer(this.kernelInitializer), + recurrentInitializer: serializeInitializer(this.recurrentInitializer), + biasInitializer: serializeInitializer(this.biasInitializer), + unitForgetBias: this.unitForgetBias, + kernelRegularizer: serializeRegularizer(this.kernelRegularizer), + recurrentRegularizer: serializeRegularizer(this.recurrentRegularizer), + biasRegularizer: serializeRegularizer(this.biasRegularizer), + activityRegularizer: serializeRegularizer(this.activityRegularizer), + kernelConstraint: serializeConstraint(this.kernelConstraint), + recurrentConstraint: serializeConstraint(this.recurrentConstraint), + biasConstraint: serializeConstraint(this.biasConstraint), + dropout: this.dropout, + recurrentDropout: this.recurrentDropout, + implementation: this.implementation + }; + const baseConfig = super.getConfig(); + Object.assign(config2, baseConfig); + return config2; + } + } + LSTMCell.className = "LSTMCell"; + serialization_exports.registerClass(LSTMCell); + class LSTM extends RNN { + constructor(args) { + if (args.implementation === 0) { + console.warn("`implementation=0` has been deprecated, and now defaults to `implementation=1`. Please update your layer call."); + } + args.cell = new LSTMCell(args); + super(args); + } + call(inputs, kwargs) { + return tidy(() => { + if (this.cell.dropoutMask != null) { + dispose(this.cell.dropoutMask); + this.cell.dropoutMask = null; + } + if (this.cell.recurrentDropoutMask != null) { + dispose(this.cell.recurrentDropoutMask); + this.cell.recurrentDropoutMask = null; + } + const mask = kwargs == null ? null : kwargs["mask"]; + const training5 = kwargs == null ? null : kwargs["training"]; + const initialState = kwargs == null ? null : kwargs["initialState"]; + return super.call(inputs, {mask, training: training5, initialState}); + }); + } + get units() { + return this.cell.units; + } + get activation() { + return this.cell.activation; + } + get recurrentActivation() { + return this.cell.recurrentActivation; + } + get useBias() { + return this.cell.useBias; + } + get kernelInitializer() { + return this.cell.kernelInitializer; + } + get recurrentInitializer() { + return this.cell.recurrentInitializer; + } + get biasInitializer() { + return this.cell.biasInitializer; + } + get unitForgetBias() { + return this.cell.unitForgetBias; + } + get kernelRegularizer() { + return this.cell.kernelRegularizer; + } + get recurrentRegularizer() { + return this.cell.recurrentRegularizer; + } + get biasRegularizer() { + return this.cell.biasRegularizer; + } + get kernelConstraint() { + return this.cell.kernelConstraint; + } + get recurrentConstraint() { + return this.cell.recurrentConstraint; + } + get biasConstraint() { + return this.cell.biasConstraint; + } + get dropout() { + return this.cell.dropout; + } + get recurrentDropout() { + return this.cell.recurrentDropout; + } + get implementation() { + return this.cell.implementation; + } + getConfig() { + const config2 = { + units: this.units, + activation: serializeActivation(this.activation), + recurrentActivation: serializeActivation(this.recurrentActivation), + useBias: this.useBias, + kernelInitializer: serializeInitializer(this.kernelInitializer), + recurrentInitializer: serializeInitializer(this.recurrentInitializer), + biasInitializer: serializeInitializer(this.biasInitializer), + unitForgetBias: this.unitForgetBias, + kernelRegularizer: serializeRegularizer(this.kernelRegularizer), + recurrentRegularizer: serializeRegularizer(this.recurrentRegularizer), + biasRegularizer: serializeRegularizer(this.biasRegularizer), + activityRegularizer: serializeRegularizer(this.activityRegularizer), + kernelConstraint: serializeConstraint(this.kernelConstraint), + recurrentConstraint: serializeConstraint(this.recurrentConstraint), + biasConstraint: serializeConstraint(this.biasConstraint), + dropout: this.dropout, + recurrentDropout: this.recurrentDropout, + implementation: this.implementation + }; + const baseConfig = super.getConfig(); + delete baseConfig["cell"]; + Object.assign(config2, baseConfig); + return config2; + } + static fromConfig(cls, config2) { + if (config2["implmentation"] === 0) { + config2["implementation"] = 1; + } + return new cls(config2); + } + } + LSTM.className = "LSTM"; + serialization_exports.registerClass(LSTM); + class StackedRNNCells extends RNNCell { + constructor(args) { + super(args); + this.cells = args.cells; + } + get stateSize() { + const stateSize = []; + for (const cell of this.cells.slice().reverse()) { + if (Array.isArray(cell.stateSize)) { + stateSize.push(...cell.stateSize); + } else { + stateSize.push(cell.stateSize); + } + } + return stateSize; + } + call(inputs, kwargs) { + return tidy(() => { + inputs = inputs; + let states = inputs.slice(1); + const nestedStates = []; + for (const cell of this.cells.slice().reverse()) { + if (Array.isArray(cell.stateSize)) { + nestedStates.push(states.splice(0, cell.stateSize.length)); + } else { + nestedStates.push(states.splice(0, 1)); + } + } + nestedStates.reverse(); + const newNestedStates = []; + let callInputs; + for (let i = 0; i < this.cells.length; ++i) { + const cell = this.cells[i]; + states = nestedStates[i]; + if (i === 0) { + callInputs = [inputs[0]].concat(states); + } else { + callInputs = [callInputs[0]].concat(states); + } + callInputs = cell.call(callInputs, kwargs); + newNestedStates.push(callInputs.slice(1)); + } + states = []; + for (const cellStates of newNestedStates.slice().reverse()) { + states.push(...cellStates); + } + return [callInputs[0]].concat(states); + }); + } + build(inputShape) { + if (isArrayOfShapes(inputShape)) { + inputShape = inputShape[0]; + } + inputShape = inputShape; + let outputDim; + this.cells.forEach((cell, i) => { + nameScope(`RNNCell_${i}`, () => { + cell.build(inputShape); + if (Array.isArray(cell.stateSize)) { + outputDim = cell.stateSize[0]; + } else { + outputDim = cell.stateSize; + } + inputShape = [inputShape[0], outputDim]; + }); + }); + this.built = true; + } + getConfig() { + const cellConfigs = []; + for (const cell of this.cells) { + cellConfigs.push({ + className: cell.getClassName(), + config: cell.getConfig() + }); + } + const config2 = {cells: cellConfigs}; + const baseConfig = super.getConfig(); + Object.assign(config2, baseConfig); + return config2; + } + static fromConfig(cls, config2, customObjects = {}) { + const cells = []; + for (const cellConfig of config2["cells"]) { + cells.push(deserialize(cellConfig, customObjects)); + } + return new cls({cells}); + } + get trainableWeights() { + if (!this.trainable) { + return []; + } + const weights = []; + for (const cell of this.cells) { + weights.push(...cell.trainableWeights); + } + return weights; + } + get nonTrainableWeights() { + const weights = []; + for (const cell of this.cells) { + weights.push(...cell.nonTrainableWeights); + } + if (!this.trainable) { + const trainableWeights = []; + for (const cell of this.cells) { + trainableWeights.push(...cell.trainableWeights); + } + return trainableWeights.concat(weights); + } + return weights; + } + getWeights() { + const weights = []; + for (const cell of this.cells) { + weights.push(...cell.weights); + } + return batchGetValue(weights); + } + setWeights(weights) { + const tuples = []; + for (const cell of this.cells) { + const numParams = cell.weights.length; + const inputWeights = weights.splice(numParams); + for (let i = 0; i < cell.weights.length; ++i) { + tuples.push([cell.weights[i], inputWeights[i]]); + } + } + batchSetValue(tuples); + } + } + StackedRNNCells.className = "StackedRNNCells"; + serialization_exports.registerClass(StackedRNNCells); + function generateDropoutMask(ones9, rate, training5 = null, count2 = 1) { + function droppedInputs() { + return dropout2(ones9(), rate); + } + if (count2 > 1) { + const mask = []; + for (let i = 0; i < count2; i++) { + mask.push(inTrainPhase(droppedInputs, ones9, training5)); + } + return mask.map((m) => keep(m.clone())); + } else { + return keep(inTrainPhase(droppedInputs, ones9, training5).clone()); + } + } + + // node_modules/@tensorflow/tfjs-layers/dist/layers/wrappers.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + class Wrapper extends Layer { + constructor(args) { + super(args); + this.layer = args.layer; + } + build(inputShape) { + this.built = true; + } + get trainable() { + if (this.layer != null) { + return this.layer.trainable; + } else { + return false; + } + } + set trainable(value) { + if (this.layer != null) { + this.layer.trainable = value; + } + } + get trainableWeights() { + return this.layer.trainableWeights; + } + get nonTrainableWeights() { + return this.layer.nonTrainableWeights; + } + get updates() { + return this.layer._updates; + } + get losses() { + return this.layer.losses; + } + getWeights() { + return this.layer.getWeights(); + } + setWeights(weights) { + this.layer.setWeights(weights); + } + getConfig() { + const config2 = { + layer: { + className: this.layer.getClassName(), + config: this.layer.getConfig() + } + }; + const baseConfig = super.getConfig(); + Object.assign(config2, baseConfig); + return config2; + } + setFastWeightInitDuringBuild(value) { + super.setFastWeightInitDuringBuild(value); + if (this.layer != null) { + this.layer.setFastWeightInitDuringBuild(value); + } + } + static fromConfig(cls, config2, customObjects = {}) { + const layerConfig = config2["layer"]; + const layer = deserialize(layerConfig, customObjects); + delete config2["layer"]; + const newConfig = {layer}; + Object.assign(newConfig, config2); + return new cls(newConfig); + } + } + class TimeDistributed extends Wrapper { + constructor(args) { + super(args); + this.supportsMasking = true; + } + build(inputShape) { + inputShape = getExactlyOneShape(inputShape); + if (inputShape.length < 3) { + throw new ValueError(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(inputShape)}`); + } + this.inputSpec = [{shape: inputShape}]; + const childInputShape = [inputShape[0]].concat(inputShape.slice(2)); + if (!this.layer.built) { + this.layer.build(childInputShape); + this.layer.built = true; + } + super.build(inputShape); + } + computeOutputShape(inputShape) { + inputShape = getExactlyOneShape(inputShape); + const childInputShape = [inputShape[0]].concat(inputShape.slice(2)); + const childOutputShape = this.layer.computeOutputShape(childInputShape); + const timesteps = inputShape[1]; + return [childOutputShape[0], timesteps].concat(childOutputShape.slice(1)); + } + call(inputs, kwargs) { + return tidy(() => { + inputs = getExactlyOneTensor(inputs); + const step7 = (inputs2, states) => { + const output = getExactlyOneTensor(this.layer.call(inputs2, kwargs)); + return [output, []]; + }; + const rnnOutputs = rnn(step7, inputs, [], false, null, null, false, true); + const y = rnnOutputs[1]; + return y; + }); + } + } + TimeDistributed.className = "TimeDistributed"; + serialization_exports.registerClass(TimeDistributed); + function checkBidirectionalMergeMode(value) { + checkStringTypeUnionValue(VALID_BIDIRECTIONAL_MERGE_MODES, "BidirectionalMergeMode", value); + } + const DEFAULT_BIDIRECTIONAL_MERGE_MODE = "concat"; + class Bidirectional extends Wrapper { + constructor(args) { + super(args); + const layerConfig = args.layer.getConfig(); + const forwDict = {}; + forwDict["className"] = args.layer.getClassName(); + forwDict["config"] = layerConfig; + this.forwardLayer = deserialize(forwDict); + layerConfig["goBackwards"] = layerConfig["goBackwards"] === true ? false : true; + const backDict = {}; + backDict["className"] = args.layer.getClassName(); + backDict["config"] = layerConfig; + this.backwardLayer = deserialize(backDict); + this.forwardLayer.name = "forward_" + this.forwardLayer.name; + this.backwardLayer.name = "backward_" + this.backwardLayer.name; + this.mergeMode = args.mergeMode === void 0 ? DEFAULT_BIDIRECTIONAL_MERGE_MODE : args.mergeMode; + checkBidirectionalMergeMode(this.mergeMode); + if (args.weights) { + throw new NotImplementedError("weights support is not implemented for Bidirectional layer yet."); + } + this._stateful = args.layer.stateful; + this.returnSequences = args.layer.returnSequences; + this.returnState = args.layer.returnState; + this.supportsMasking = true; + this._trainable = true; + this.inputSpec = args.layer.inputSpec; + this.numConstants = null; + } + get trainable() { + return this._trainable; + } + set trainable(value) { + this._trainable = value; + if (this.forwardLayer != null) { + this.forwardLayer.trainable = value; + } + if (this.backwardLayer != null) { + this.backwardLayer.trainable = value; + } + } + getWeights() { + return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights()); + } + setWeights(weights) { + const numWeights = weights.length; + const numeightsOver2 = Math.floor(numWeights / 2); + this.forwardLayer.setWeights(weights.slice(0, numeightsOver2)); + this.backwardLayer.setWeights(weights.slice(numeightsOver2)); + } + computeOutputShape(inputShape) { + let layerShapes = this.forwardLayer.computeOutputShape(inputShape); + if (!(Array.isArray(layerShapes) && Array.isArray(layerShapes[0]))) { + layerShapes = [layerShapes]; + } + layerShapes = layerShapes; + let outputShape; + let outputShapes; + let stateShape; + if (this.returnState) { + stateShape = layerShapes.slice(1); + outputShape = layerShapes[0]; + } else { + outputShape = layerShapes[0]; + } + outputShape = outputShape; + if (this.mergeMode === "concat") { + outputShape[outputShape.length - 1] *= 2; + outputShapes = [outputShape]; + } else if (this.mergeMode == null) { + outputShapes = [outputShape, outputShape.slice()]; + } else { + outputShapes = [outputShape]; + } + if (this.returnState) { + if (this.mergeMode == null) { + return outputShapes.concat(stateShape).concat(stateShape.slice()); + } + return [outputShape].concat(stateShape).concat(stateShape.slice()); + } + return singletonOrArray(outputShapes); + } + apply(inputs, kwargs) { + let initialState = kwargs == null ? null : kwargs["initialState"]; + let constants = kwargs == null ? null : kwargs["constants"]; + if (kwargs == null) { + kwargs = {}; + } + const standardized = standardizeArgs(inputs, initialState, constants, this.numConstants); + inputs = standardized.inputs; + initialState = standardized.initialState; + constants = standardized.constants; + if (Array.isArray(inputs)) { + initialState = inputs.slice(1); + inputs = inputs[0]; + } + if ((initialState == null || initialState.length === 0) && constants == null) { + return super.apply(inputs, kwargs); + } + const additionalInputs = []; + const additionalSpecs = []; + if (initialState != null) { + const numStates = initialState.length; + if (numStates % 2 > 0) { + throw new ValueError("When passing `initialState` to a Bidrectional RNN, the state should be an Array containing the states of the underlying RNNs."); + } + kwargs["initialState"] = initialState; + additionalInputs.push(...initialState); + const stateSpecs = initialState.map((state6) => new InputSpec({shape: state6.shape})); + this.forwardLayer.stateSpec = stateSpecs.slice(0, numStates / 2); + this.backwardLayer.stateSpec = stateSpecs.slice(numStates / 2); + additionalSpecs.push(...stateSpecs); + } + if (constants != null) { + throw new NotImplementedError("Support for constants in Bidirectional layers is not implemented yet."); + } + const isSymbolicTensor = additionalInputs[0] instanceof SymbolicTensor; + for (const tensor17 of additionalInputs) { + if (tensor17 instanceof SymbolicTensor !== isSymbolicTensor) { + throw new ValueError("The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors"); + } + } + if (isSymbolicTensor) { + const fullInput = [inputs].concat(additionalInputs); + const fullInputSpec = this.inputSpec.concat(additionalSpecs); + const originalInputSpec = this.inputSpec; + this.inputSpec = fullInputSpec; + const output = super.apply(fullInput, kwargs); + this.inputSpec = originalInputSpec; + return output; + } else { + return super.apply(inputs, kwargs); + } + } + call(inputs, kwargs) { + return tidy(() => { + const initialState = kwargs["initialState"]; + let y; + let yRev; + if (initialState == null) { + y = this.forwardLayer.call(inputs, kwargs); + yRev = this.backwardLayer.call(inputs, kwargs); + } else { + const forwardState = initialState.slice(0, initialState.length / 2); + const backwardState = initialState.slice(initialState.length / 2); + y = this.forwardLayer.call(inputs, Object.assign(kwargs, {initialState: forwardState})); + yRev = this.backwardLayer.call(inputs, Object.assign(kwargs, {initialState: backwardState})); + } + let states; + if (this.returnState) { + if (Array.isArray(y)) { + states = y.slice(1).concat(yRev.slice(1)); + } else { + } + y = y[0]; + yRev = yRev[0]; + } + if (this.returnSequences) { + yRev = reverse(yRev, 1); + } + let output; + if (this.mergeMode === "concat") { + output = concatenate([y, yRev]); + } else if (this.mergeMode === "sum") { + output = add2(y, yRev); + } else if (this.mergeMode === "ave") { + output = mul(0.5, add2(y, yRev)); + } else if (this.mergeMode === "mul") { + output = mul(y, yRev); + } else if (this.mergeMode == null) { + output = [y, yRev]; + } + if (this.returnState) { + if (this.mergeMode == null) { + return output.concat(states); + } + return [output].concat(states); + } + return output; + }); + } + resetStates(states) { + this.forwardLayer.resetStates(); + this.backwardLayer.resetStates(); + } + build(inputShape) { + nameScope(this.forwardLayer.name, () => { + this.forwardLayer.build(inputShape); + }); + nameScope(this.backwardLayer.name, () => { + this.backwardLayer.build(inputShape); + }); + this.built = true; + } + computeMask(inputs, mask) { + if (Array.isArray(mask)) { + mask = mask[0]; + } + let outputMask; + if (this.returnSequences) { + if (this.mergeMode == null) { + outputMask = [mask, mask]; + } else { + outputMask = mask; + } + } else { + if (this.mergeMode == null) { + outputMask = [null, null]; + } else { + outputMask = null; + } + } + if (this.returnState) { + const states = this.forwardLayer.states; + const stateMask = states.map((state6) => null); + if (Array.isArray(outputMask)) { + return outputMask.concat(stateMask).concat(stateMask); + } else { + return [outputMask].concat(stateMask).concat(stateMask); + } + } else { + return outputMask; + } + } + get trainableWeights() { + return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights); + } + get nonTrainableWeights() { + return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights); + } + setFastWeightInitDuringBuild(value) { + super.setFastWeightInitDuringBuild(value); + if (this.forwardLayer != null) { + this.forwardLayer.setFastWeightInitDuringBuild(value); + } + if (this.backwardLayer != null) { + this.backwardLayer.setFastWeightInitDuringBuild(value); + } + } + getConfig() { + const config2 = { + mergeMode: this.mergeMode + }; + const baseConfig = super.getConfig(); + Object.assign(config2, baseConfig); + return config2; + } + static fromConfig(cls, config2) { + const rnnLayer = deserialize(config2["layer"]); + delete config2["layer"]; + if (config2["numConstants"] != null) { + throw new NotImplementedError(`Deserialization of a Bidirectional layer with numConstants present is not supported yet.`); + } + const newConfig = config2; + newConfig["layer"] = rnnLayer; + return new cls(newConfig); + } + } + Bidirectional.className = "Bidirectional"; + serialization_exports.registerClass(Bidirectional); + + // node_modules/@tensorflow/tfjs-layers/dist/exports_layers.js + const exports_layers_exports = {}; + __export(exports_layers_exports, { + Layer: () => Layer, + RNN: () => RNN, + RNNCell: () => RNNCell, + activation: () => activation, + add: () => add29, + alphaDropout: () => alphaDropout, + average: () => average, + averagePooling1d: () => averagePooling1d, + averagePooling2d: () => averagePooling2d, + averagePooling3d: () => averagePooling3d, + avgPool1d: () => avgPool1d, + avgPool2d: () => avgPool2d, + avgPool3d: () => avgPool3d2, + avgPooling1d: () => avgPooling1d, + avgPooling2d: () => avgPooling2d, + avgPooling3d: () => avgPooling3d, + batchNormalization: () => batchNormalization2, + bidirectional: () => bidirectional, + concatenate: () => concatenate2, + conv1d: () => conv1d3, + conv2d: () => conv2d8, + conv2dTranspose: () => conv2dTranspose2, + conv3d: () => conv3d3, + cropping2D: () => cropping2D, + dense: () => dense, + depthwiseConv2d: () => depthwiseConv2d4, + dot: () => dot4, + dropout: () => dropout3, + elu: () => elu5, + embedding: () => embedding, + flatten: () => flatten3, + gaussianDropout: () => gaussianDropout, + gaussianNoise: () => gaussianNoise, + globalAveragePooling1d: () => globalAveragePooling1d, + globalAveragePooling2d: () => globalAveragePooling2d, + globalMaxPool1d: () => globalMaxPool1d, + globalMaxPool2d: () => globalMaxPool2d, + globalMaxPooling1d: () => globalMaxPooling1d, + globalMaxPooling2d: () => globalMaxPooling2d, + gru: () => gru, + gruCell: () => gruCell, + input: () => input, + inputLayer: () => inputLayer, + layerNormalization: () => layerNormalization, + leakyReLU: () => leakyReLU, + lstm: () => lstm, + lstmCell: () => lstmCell, + masking: () => masking, + maxPool1d: () => maxPool1d, + maxPool2d: () => maxPool2d, + maxPooling1d: () => maxPooling1d, + maxPooling2d: () => maxPooling2d, + maxPooling3d: () => maxPooling3d, + maximum: () => maximum7, + minimum: () => minimum5, + multiply: () => multiply, + permute: () => permute, + prelu: () => prelu4, + reLU: () => reLU, + repeatVector: () => repeatVector, + reshape: () => reshape77, + rnn: () => rnn2, + separableConv2d: () => separableConv2d2, + simpleRNN: () => simpleRNN, + simpleRNNCell: () => simpleRNNCell, + softmax: () => softmax3, + spatialDropout1d: () => spatialDropout1d, + stackedRNNCells: () => stackedRNNCells, + thresholdedReLU: () => thresholdedReLU, + timeDistributed: () => timeDistributed, + upSampling2d: () => upSampling2d, + zeroPadding2d: () => zeroPadding2d + }); + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + function inputLayer(args) { + return new InputLayer(args); + } + function elu5(args) { + return new ELU(args); + } + function reLU(args) { + return new ReLU(args); + } + function leakyReLU(args) { + return new LeakyReLU(args); + } + function prelu4(args) { + return new PReLU(args); + } + function softmax3(args) { + return new Softmax3(args); + } + function thresholdedReLU(args) { + return new ThresholdedReLU(args); + } + function conv1d3(args) { + return new Conv1D(args); + } + function conv2d8(args) { + return new Conv2D2(args); + } + function conv2dTranspose2(args) { + return new Conv2DTranspose(args); + } + function conv3d3(args) { + return new Conv3D2(args); + } + function separableConv2d2(args) { + return new SeparableConv2D(args); + } + function cropping2D(args) { + return new Cropping2D(args); + } + function upSampling2d(args) { + return new UpSampling2D(args); + } + function depthwiseConv2d4(args) { + return new DepthwiseConv2D(args); + } + function activation(args) { + return new Activation2(args); + } + function dense(args) { + return new Dense(args); + } + function dropout3(args) { + return new Dropout(args); + } + function spatialDropout1d(args) { + return new SpatialDropout1D(args); + } + function flatten3(args) { + return new Flatten(args); + } + function repeatVector(args) { + return new RepeatVector(args); + } + function reshape77(args) { + return new Reshape2(args); + } + function permute(args) { + return new Permute(args); + } + function embedding(args) { + return new Embedding(args); + } + function add29(args) { + return new Add2(args); + } + function average(args) { + return new Average(args); + } + function concatenate2(args) { + return new Concatenate(args); + } + function maximum7(args) { + return new Maximum2(args); + } + function minimum5(args) { + return new Minimum2(args); + } + function multiply(args) { + return new Multiply2(args); + } + function dot4(args) { + return new Dot(args); + } + function batchNormalization2(args) { + return new BatchNormalization(args); + } + function layerNormalization(args) { + return new LayerNormalization(args); + } + function zeroPadding2d(args) { + return new ZeroPadding2D(args); + } + function averagePooling1d(args) { + return new AveragePooling1D(args); + } + function avgPool1d(args) { + return averagePooling1d(args); + } + function avgPooling1d(args) { + return averagePooling1d(args); + } + function averagePooling2d(args) { + return new AveragePooling2D(args); + } + function avgPool2d(args) { + return averagePooling2d(args); + } + function avgPooling2d(args) { + return averagePooling2d(args); + } + function averagePooling3d(args) { + return new AveragePooling3D(args); + } + function avgPool3d2(args) { + return averagePooling3d(args); + } + function avgPooling3d(args) { + return averagePooling3d(args); + } + function globalAveragePooling1d(args) { + return new GlobalAveragePooling1D(args); + } + function globalAveragePooling2d(args) { + return new GlobalAveragePooling2D(args); + } + function globalMaxPooling1d(args) { + return new GlobalMaxPooling1D(args); + } + function globalMaxPooling2d(args) { + return new GlobalMaxPooling2D(args); + } + function maxPooling1d(args) { + return new MaxPooling1D(args); + } + function maxPooling2d(args) { + return new MaxPooling2D(args); + } + function maxPooling3d(args) { + return new MaxPooling3D(args); + } + function gru(args) { + return new GRU(args); + } + function gruCell(args) { + return new GRUCell(args); + } + function lstm(args) { + return new LSTM(args); + } + function lstmCell(args) { + return new LSTMCell(args); + } + function simpleRNN(args) { + return new SimpleRNN(args); + } + function simpleRNNCell(args) { + return new SimpleRNNCell(args); + } + function rnn2(args) { + return new RNN(args); + } + function stackedRNNCells(args) { + return new StackedRNNCells(args); + } + function bidirectional(args) { + return new Bidirectional(args); + } + function timeDistributed(args) { + return new TimeDistributed(args); + } + const globalMaxPool1d = globalMaxPooling1d; + const globalMaxPool2d = globalMaxPooling2d; + const maxPool1d = maxPooling1d; + const maxPool2d = maxPooling2d; + function gaussianNoise(args) { + return new GaussianNoise(args); + } + function gaussianDropout(args) { + return new GaussianDropout(args); + } + function alphaDropout(args) { + return new AlphaDropout(args); + } + function masking(args) { + return new Masking(args); + } + + // node_modules/@tensorflow/tfjs-layers/dist/exports_metrics.js + const exports_metrics_exports = {}; + __export(exports_metrics_exports, { + MAPE: () => MAPE2, + MSE: () => MSE2, + binaryAccuracy: () => binaryAccuracy2, + binaryCrossentropy: () => binaryCrossentropy3, + categoricalAccuracy: () => categoricalAccuracy2, + categoricalCrossentropy: () => categoricalCrossentropy3, + cosineProximity: () => cosineProximity2, + mape: () => mape2, + meanAbsoluteError: () => meanAbsoluteError2, + meanAbsolutePercentageError: () => meanAbsolutePercentageError2, + meanSquaredError: () => meanSquaredError3, + mse: () => mse2, + precision: () => precision2, + recall: () => recall2, + sparseCategoricalAccuracy: () => sparseCategoricalAccuracy2 + }); + function binaryAccuracy2(yTrue, yPred) { + return binaryAccuracy(yTrue, yPred); + } + function binaryCrossentropy3(yTrue, yPred) { + return binaryCrossentropy2(yTrue, yPred); + } + function sparseCategoricalAccuracy2(yTrue, yPred) { + return sparseCategoricalAccuracy(yTrue, yPred); + } + function categoricalAccuracy2(yTrue, yPred) { + return categoricalAccuracy(yTrue, yPred); + } + function categoricalCrossentropy3(yTrue, yPred) { + return categoricalCrossentropy2(yTrue, yPred); + } + function precision2(yTrue, yPred) { + return precision(yTrue, yPred); + } + function recall2(yTrue, yPred) { + return recall(yTrue, yPred); + } + function cosineProximity2(yTrue, yPred) { + return cosineProximity(yTrue, yPred); + } + function meanAbsoluteError2(yTrue, yPred) { + return meanAbsoluteError(yTrue, yPred); + } + function meanAbsolutePercentageError2(yTrue, yPred) { + return meanAbsolutePercentageError(yTrue, yPred); + } + function MAPE2(yTrue, yPred) { + return meanAbsolutePercentageError(yTrue, yPred); + } + function mape2(yTrue, yPred) { + return meanAbsolutePercentageError(yTrue, yPred); + } + function meanSquaredError3(yTrue, yPred) { + return meanSquaredError2(yTrue, yPred); + } + function MSE2(yTrue, yPred) { + return meanSquaredError2(yTrue, yPred); + } + function mse2(yTrue, yPred) { + return meanSquaredError2(yTrue, yPred); + } + + // node_modules/@tensorflow/tfjs-layers/dist/exports_models.js + const exports_models_exports = {}; + __export(exports_models_exports, { + modelFromJSON: () => modelFromJSON + }); + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + + // node_modules/@tensorflow/tfjs-layers/dist/exports_regularizers.js + const exports_regularizers_exports = {}; + __export(exports_regularizers_exports, { + l1: () => l12, + l1l2: () => l1l2, + l2: () => l22 + }); + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + function l1l2(config2) { + return new L1L2(config2); + } + function l12(config2) { + return l1(config2); + } + function l22(config2) { + return l2(config2); + } + + // node_modules/@tensorflow/tfjs-layers/dist/callbacks.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + class Callback extends BaseCallback { + constructor() { + super(...arguments); + this.model = null; + } + setModel(model2) { + if (!(model2 instanceof LayersModel)) { + throw new Error("model must be a LayersModel, not some other Container"); + } + this.model = model2; + } + } + function less5(currVal, prevVal) { + return currVal < prevVal; + } + function greater9(currVal, prevVal) { + return currVal > prevVal; + } + class EarlyStopping extends Callback { + constructor(args) { + super(); + if (args == null) { + args = {}; + } + if (args.restoreBestWeights) { + throw new NotImplementedError("restoreBestWeights = True is not implemented in EarlyStopping yet."); + } + this.monitor = args.monitor || "val_loss"; + this.minDelta = Math.abs(args.minDelta || 0); + this.patience = args.patience || 0; + this.verbose = args.verbose || 0; + this.mode = args.mode || "auto"; + this.baseline = args.baseline; + if (["auto", "min", "max"].indexOf(this.mode) === -1) { + console.warn(`EarlyStopping mode '${this.mode}' is invalid. Falling back to mode 'auto'.`); + this.mode = "auto"; + } + if (this.mode === "min") { + this.monitorFunc = less5; + } else if (this.mode === "max") { + this.monitorFunc = greater9; + } else { + if (this.monitor.indexOf("acc") !== -1) { + this.monitorFunc = greater9; + } else { + this.monitorFunc = less5; + } + } + if (this.monitorFunc === less5) { + this.minDelta *= -1; + } + } + async onTrainBegin(logs5) { + this.wait = 0; + this.stoppedEpoch = 0; + if (this.baseline != null) { + this.best = this.baseline; + } else { + this.best = this.monitorFunc === less5 ? Infinity : -Infinity; + } + } + async onEpochEnd(epoch, logs5) { + await resolveScalarsInLogs(logs5); + const current = this.getMonitorValue(logs5); + if (current == null) { + return; + } + if (this.monitorFunc(current - this.minDelta, this.best)) { + this.best = current; + this.wait = 0; + } else { + this.wait++; + if (this.wait >= this.patience) { + this.stoppedEpoch = epoch; + this.model.stopTraining = true; + } + } + } + async onTrainEnd(logs5) { + if (this.stoppedEpoch > 0 && this.verbose) { + console.log(`Epoch ${this.stoppedEpoch}: early stopping.`); + } + } + getMonitorValue(logs5) { + if (logs5 == null) { + logs5 = {}; + } + const monitorValue = logs5[this.monitor]; + if (monitorValue == null) { + console.warn(`Metric for EarlyStopping ${this.monitor} is not available. Available metrics are: ${Object.keys(logs5)}`); + } + return monitorValue; + } + } + function earlyStopping(args) { + return new EarlyStopping(args); + } + const callbacks = {earlyStopping}; + + // node_modules/@tensorflow/tfjs-layers/dist/index.js + /** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ + + // node_modules/@tensorflow/tfjs-converter/dist/data/compiled_api.js + /** + * @license + * Copyright 2019 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============================================================================= + */ + var DataType; + (function(DataType2) { + DataType2[DataType2["DT_INVALID"] = 0] = "DT_INVALID"; + DataType2[DataType2["DT_FLOAT"] = 1] = "DT_FLOAT"; + DataType2[DataType2["DT_DOUBLE"] = 2] = "DT_DOUBLE"; + DataType2[DataType2["DT_INT32"] = 3] = "DT_INT32"; + DataType2[DataType2["DT_UINT8"] = 4] = "DT_UINT8"; + DataType2[DataType2["DT_INT16"] = 5] = "DT_INT16"; + DataType2[DataType2["DT_INT8"] = 6] = "DT_INT8"; + DataType2[DataType2["DT_STRING"] = 7] = "DT_STRING"; + DataType2[DataType2["DT_COMPLEX64"] = 8] = "DT_COMPLEX64"; + DataType2[DataType2["DT_INT64"] = 9] = "DT_INT64"; + DataType2[DataType2["DT_BOOL"] = 10] = "DT_BOOL"; + DataType2[DataType2["DT_QINT8"] = 11] = "DT_QINT8"; + DataType2[DataType2["DT_QUINT8"] = 12] = "DT_QUINT8"; + DataType2[DataType2["DT_QINT32"] = 13] = "DT_QINT32"; + DataType2[DataType2["DT_BFLOAT16"] = 14] = "DT_BFLOAT16"; + DataType2[DataType2["DT_FLOAT_REF"] = 101] = "DT_FLOAT_REF"; + DataType2[DataType2["DT_DOUBLE_REF"] = 102] = "DT_DOUBLE_REF"; + DataType2[DataType2["DT_INT32_REF"] = 103] = "DT_INT32_REF"; + DataType2[DataType2["DT_UINT8_REF"] = 104] = "DT_UINT8_REF"; + DataType2[DataType2["DT_INT16_REF"] = 105] = "DT_INT16_REF"; + DataType2[DataType2["DT_INT8_REF"] = 106] = "DT_INT8_REF"; + DataType2[DataType2["DT_STRING_REF"] = 107] = "DT_STRING_REF"; + DataType2[DataType2["DT_COMPLEX64_REF"] = 108] = "DT_COMPLEX64_REF"; + DataType2[DataType2["DT_INT64_REF"] = 109] = "DT_INT64_REF"; + DataType2[DataType2["DT_BOOL_REF"] = 110] = "DT_BOOL_REF"; + DataType2[DataType2["DT_QINT8_REF"] = 111] = "DT_QINT8_REF"; + DataType2[DataType2["DT_QUINT8_REF"] = 112] = "DT_QUINT8_REF"; + DataType2[DataType2["DT_QINT32_REF"] = 113] = "DT_QINT32_REF"; + DataType2[DataType2["DT_BFLOAT16_REF"] = 114] = "DT_BFLOAT16_REF"; + })(DataType || (DataType = {})); + var SaverDef; + (function(SaverDef2) { + let CheckpointFormatVersion; + (function(CheckpointFormatVersion2) { + CheckpointFormatVersion2[CheckpointFormatVersion2["LEGACY"] = 0] = "LEGACY"; + CheckpointFormatVersion2[CheckpointFormatVersion2["V1"] = 1] = "V1"; + CheckpointFormatVersion2[CheckpointFormatVersion2["V2"] = 2] = "V2"; + })(CheckpointFormatVersion = SaverDef2.CheckpointFormatVersion || (SaverDef2.CheckpointFormatVersion = {})); + })(SaverDef || (SaverDef = {})); + + // node_modules/@tensorflow/tfjs-converter/dist/operations/custom_op/register.js + /** + * @license + * Copyright 2019 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const CUSTOM_OPS = {}; + function registerOp(name, opFunc) { + const opMapper = { + tfOpName: name, + category: "custom", + inputs: [], + attrs: [], + customExecutor: opFunc + }; + CUSTOM_OPS[name] = opMapper; + } + function getRegisteredOp(name) { + return CUSTOM_OPS[name]; + } + function deregisterOp(name) { + delete CUSTOM_OPS[name]; + } + + // node_modules/@tensorflow/tfjs-converter/dist/operations/executors/utils.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + function getParamValue(paramName, node, tensorMap, context) { + const inputParam = node.inputParams[paramName]; + if (inputParam && inputParam.inputIndexStart !== void 0) { + const start = inputParam.inputIndexStart; + const end = inputParam.inputIndexEnd === 0 ? void 0 : inputParam.inputIndexEnd === void 0 ? start + 1 : inputParam.inputIndexEnd; + if (inputParam.type === "tensor") { + return getTensor(node.inputNames[inputParam.inputIndexStart], tensorMap, context); + } + if (inputParam.type === "tensors") { + const inputs = node.inputNames.slice(start, end); + return inputs.map((name) => getTensor(name, tensorMap, context)); + } + const tensor17 = getTensor(node.inputNames.slice(start)[0], tensorMap, context); + const data = tensor17.dataSync(); + return inputParam.type === "number" ? data[0] : util_exports.toNestedArray(tensor17.shape, data); + } + const attrParam = node.attrParams[paramName]; + return attrParam && attrParam.value; + } + function getTensor(name, tensorsMap, context) { + const [nodeName, index] = parseNodeName(name); + const contextId = context.currentContextIds.find((contextId2) => { + return !!tensorsMap[getNodeNameWithContextId(nodeName, contextId2)]; + }); + return contextId !== void 0 ? tensorsMap[getNodeNameWithContextId(nodeName, contextId)][index] : void 0; + } + function getTensorsForCurrentContenxt(name, tensorsMap, context) { + return tensorsMap[getNodeNameWithContextId(name, context.currentContextId)]; + } + function getNodeNameAndIndex(inputName, context) { + const [nodeName, index] = parseNodeName(inputName); + return [ + getNodeNameWithContextId(nodeName, context && context.currentContextId), + index + ]; + } + function getNodeNameWithContextId(name, contextId) { + return !!contextId ? `${name}-${contextId}` : name; + } + function parseNodeName(name) { + const parts = name.split(":"); + if (parts.length === 1) { + return [name, 0]; + } + const nodeName = parts[0]; + return [nodeName, Number(parts[parts.length - 1])]; + } + function getPadding(node, tensorMap, context) { + let pad8 = getParamValue("pad", node, tensorMap, context); + if (pad8 === "explicit") { + pad8 = getParamValue("explicitPaddings", node, tensorMap, context); + const explicitPadding = [[0, 0], [0, 0], [0, 0], [0, 0]]; + for (let i = 0; i < 4; i++) { + explicitPadding[i][0] = pad8[i * 2]; + explicitPadding[i][1] = pad8[i * 2 + 1]; + } + return explicitPadding; + } + return pad8; + } + function cloneTensor(tensor17) { + return tensor17.kept ? tensor17 : clone(tensor17); + } + + // node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/arithmetic.js + const arithmetic_exports = {}; + __export(arithmetic_exports, { + json: () => json + }); + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const json = [ + { + tfOpName: "Add", + category: "arithmetic", + inputs: [ + {start: 0, name: "a", type: "tensor"}, + {start: 1, name: "b", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "AddV2", + category: "arithmetic", + inputs: [ + {start: 0, name: "a", type: "tensor"}, + {start: 1, name: "b", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "AddN", + category: "arithmetic", + inputs: [{start: 0, end: 0, name: "tensors", type: "tensors"}] + }, + { + tfOpName: "BiasAdd", + category: "arithmetic", + inputs: [ + {start: 0, name: "a", type: "tensor"}, + {start: 1, name: "b", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "Sub", + category: "arithmetic", + inputs: [ + {start: 0, name: "a", type: "tensor"}, + {start: 1, name: "b", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "RealDiv", + category: "arithmetic", + inputs: [ + {start: 0, name: "a", type: "tensor"}, + {start: 1, name: "b", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "Div", + category: "arithmetic", + inputs: [ + {start: 0, name: "a", type: "tensor"}, + {start: 1, name: "b", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "DivNoNan", + category: "arithmetic", + inputs: [ + {start: 0, name: "a", type: "tensor"}, + {start: 1, name: "b", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "FloorDiv", + category: "arithmetic", + inputs: [ + {start: 0, name: "a", type: "tensor"}, + {start: 1, name: "b", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "Mul", + category: "arithmetic", + inputs: [ + {start: 0, name: "a", type: "tensor"}, + {start: 1, name: "b", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "Maximum", + category: "arithmetic", + inputs: [ + {start: 0, name: "a", type: "tensor"}, + {start: 1, name: "b", type: "tensor"} + ] + }, + { + tfOpName: "Minimum", + category: "arithmetic", + inputs: [ + {start: 0, name: "a", type: "tensor"}, + {start: 1, name: "b", type: "tensor"} + ] + }, + { + tfOpName: "Pow", + category: "arithmetic", + inputs: [ + {start: 0, name: "a", type: "tensor"}, + {start: 1, name: "b", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "SquaredDifference", + category: "arithmetic", + inputs: [ + {start: 0, name: "a", type: "tensor"}, + {start: 1, name: "b", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "Mod", + category: "arithmetic", + inputs: [ + {start: 0, name: "a", type: "tensor"}, + {start: 1, name: "b", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "FloorMod", + category: "arithmetic", + inputs: [ + {start: 0, name: "a", type: "tensor"}, + {start: 1, name: "b", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + } + ]; + + // node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/basic_math.js + const basic_math_exports = {}; + __export(basic_math_exports, { + json: () => json2 + }); + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const json2 = [ + { + tfOpName: "Abs", + category: "basic_math", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "Acos", + category: "basic_math", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "Asin", + category: "basic_math", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "Atan", + category: "basic_math", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "Atan2", + category: "basic_math", + inputs: [ + {start: 0, name: "x", type: "tensor"}, + {start: 1, name: "y", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "Ceil", + category: "basic_math", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "ClipByValue", + category: "basic_math", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [ + {tfName: "clip_value_min", name: "clipValueMin", type: "number"}, + {tfName: "clip_value_max", name: "clipValueMax", type: "number"} + ] + }, + { + tfOpName: "Complex", + category: "basic_math", + inputs: [ + {start: 0, name: "real", type: "tensor"}, + {start: 1, name: "imag", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "ComplexAbs", + category: "basic_math", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "Cos", + category: "basic_math", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "Cosh", + category: "basic_math", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "Elu", + category: "basic_math", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "Exp", + category: "basic_math", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "Floor", + category: "basic_math", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "Log", + category: "basic_math", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "Imag", + category: "basic_math", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true}, + { + tfName: "Tout", + name: "outputType", + type: "dtype", + notSupported: true + } + ] + }, + { + tfOpName: "Neg", + category: "basic_math", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "Real", + category: "basic_math", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true}, + { + tfName: "Tout", + name: "outputType", + type: "dtype", + notSupported: true + } + ] + }, + { + tfOpName: "Prelu", + category: "basic_math", + inputs: [ + {start: 0, name: "x", type: "tensor"}, + {start: 1, name: "alpha", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "Relu", + category: "basic_math", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "Relu6", + category: "basic_math", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true}, + { + tfName: "clipValueMin", + name: "clipValueMin", + type: "number", + defaultValue: 0 + }, + { + tfName: "clipValueMax", + name: "clipValueMax", + type: "number", + defaultValue: 6 + } + ] + }, + { + tfOpName: "Selu", + category: "basic_math", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "Sigmoid", + category: "basic_math", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "Sin", + category: "basic_math", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "Sinh", + category: "basic_math", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "Sqrt", + category: "basic_math", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "Rsqrt", + category: "basic_math", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "Square", + category: "basic_math", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "Tan", + category: "basic_math", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "Tanh", + category: "basic_math", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "Sign", + category: "basic_math", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "Round", + category: "basic_math", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "Expm1", + category: "basic_math", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "Log1p", + category: "basic_math", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "Reciprocal", + category: "basic_math", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "Softplus", + category: "basic_math", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "Asinh", + category: "basic_math", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "Acosh", + category: "basic_math", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "Atanh", + category: "basic_math", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "Erf", + category: "basic_math", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "Prod", + category: "basic_math", + inputs: [ + {start: 0, name: "x", type: "tensor"}, + {start: 1, name: "axes", type: "number[]"} + ], + attrs: [ + { + tfName: "keep_dims", + name: "keepDims", + type: "bool", + notSupported: true + }, + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "LeakyRelu", + category: "basic_math", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [ + { + tfName: "alpha", + name: "alpha", + type: "number", + defaultValue: 0.2 + }, + { + tfName: "T", + name: "dtype", + type: "dtype", + notSupported: true + } + ] + } + ]; + + // node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/control.js + const control_exports = {}; + __export(control_exports, { + json: () => json3 + }); + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const json3 = [ + { + tfOpName: "LoopCond", + category: "control", + inputs: [{start: 0, name: "pred", type: "tensor"}] + }, + { + tfOpName: "Switch", + category: "control", + inputs: [ + {start: 0, name: "data", type: "tensor"}, + {start: 1, name: "pred", type: "tensor"} + ] + }, + { + tfOpName: "Merge", + category: "control", + inputs: [{start: 0, end: 0, name: "tensors", type: "tensors"}] + }, + { + tfOpName: "Enter", + category: "control", + inputs: [ + {start: 0, name: "tensor", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true}, + {tfName: "frame_name", name: "frameName", type: "string"}, + {tfName: "is_constant", name: "isConstant", type: "bool"} + ] + }, + { + tfOpName: "Exit", + category: "control", + inputs: [ + {start: 0, name: "tensor", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "NextIteration", + category: "control", + inputs: [ + {start: 0, name: "tensor", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "TensorArrayV3", + category: "control", + inputs: [ + {start: 0, name: "size", type: "number"} + ], + attrs: [ + {tfName: "dtype", name: "dtype", type: "dtype"}, + {tfName: "element_shape", name: "elementShape", type: "shape"}, + {tfName: "dynamic_size", name: "dynamicSize", type: "bool"}, + {tfName: "clear_after_read", name: "clearAfterRead", type: "bool"}, + { + tfName: "identical_element_shapes", + name: "identicalElementShapes", + type: "bool" + }, + {tfName: "tensor_array_name", name: "name", type: "string"} + ] + }, + { + tfOpName: "TensorArrayWriteV3", + category: "control", + inputs: [ + {start: 0, name: "tensorArrayId", type: "tensor"}, + {start: 1, name: "index", type: "number"}, + {start: 2, name: "tensor", type: "tensor"}, + {start: 3, name: "flowIn", type: "number"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "TensorArrayReadV3", + category: "control", + inputs: [ + {start: 0, name: "tensorArrayId", type: "tensor"}, + {start: 1, name: "index", type: "number"}, + {start: 2, name: "flowIn", type: "number"} + ], + attrs: [{ + tfName: "dtype", + name: "dtype", + type: "dtype", + notSupported: true + }] + }, + { + tfOpName: "TensorArrayGatherV3", + category: "control", + inputs: [ + {start: 0, name: "tensorArrayId", type: "tensor"}, + {start: 1, name: "indices", type: "number[]"}, + {start: 2, name: "flowIn", type: "number"} + ], + attrs: [ + {tfName: "dtype", name: "dtype", type: "dtype"}, + {tfName: "element_shape", name: "elementShape", type: "shape"} + ] + }, + { + tfOpName: "TensorArrayScatterV3", + category: "control", + inputs: [ + {start: 0, name: "tensorArrayId", type: "tensor"}, + {start: 1, name: "indices", type: "number[]"}, + {start: 2, name: "tensor", type: "tensor"}, + {start: 3, name: "flowIn", type: "number"} + ], + attrs: [{tfName: "T", name: "dtype", type: "dtype"}] + }, + { + tfOpName: "TensorArrayConcatV3", + category: "control", + inputs: [ + {start: 0, name: "tensorArrayId", type: "tensor"}, + {start: 1, name: "flowIn", type: "number"} + ], + attrs: [ + {tfName: "dtype", name: "dtype", type: "dtype"}, + { + tfName: "element_shape_except0", + name: "elementShapeExcept0", + type: "shape", + notSupported: true + } + ] + }, + { + tfOpName: "TensorArraySplitV3", + category: "control", + inputs: [ + {start: 0, name: "tensorArrayId", type: "tensor"}, + {start: 1, name: "tensor", type: "tensor"}, + {start: 2, name: "lengths", type: "number[]"}, + {start: 3, name: "flowIn", type: "number"} + ], + attrs: [{tfName: "T", name: "dtype", type: "dtype"}] + }, + { + tfOpName: "TensorArraySizeV3", + category: "control", + inputs: [ + {start: 0, name: "tensorArrayId", type: "tensor"}, + {start: 1, name: "flowIn", type: "number"} + ] + }, + { + tfOpName: "TensorArrayCloseV3", + category: "control", + inputs: [{start: 0, name: "tensorArrayId", type: "tensor"}] + }, + { + tfOpName: "StatelessIf", + category: "control", + inputs: [ + {start: 0, name: "cond", type: "tensor"}, + {start: 1, end: 0, name: "args", type: "tensors"} + ], + attrs: [ + {tfName: "then_branch", name: "thenBranch", type: "func"}, + {tfName: "else_branch", name: "elseBranch", type: "func"} + ] + }, + { + tfOpName: "If", + category: "control", + inputs: [ + {start: 0, name: "cond", type: "tensor"}, + {start: 1, end: 0, name: "args", type: "tensors"} + ], + attrs: [ + {tfName: "then_branch", name: "thenBranch", type: "func"}, + {tfName: "else_branch", name: "elseBranch", type: "func"} + ] + }, + { + tfOpName: "StatelessWhile", + category: "control", + inputs: [ + {start: 0, end: 0, name: "args", type: "tensors"} + ], + attrs: [ + {tfName: "cond", name: "cond", type: "func"}, + {tfName: "body", name: "body", type: "func"} + ] + }, + { + tfOpName: "While", + category: "control", + inputs: [ + {start: 0, end: 0, name: "args", type: "tensors"} + ], + attrs: [ + {tfName: "cond", name: "cond", type: "func"}, + {tfName: "body", name: "body", type: "func"} + ] + }, + { + tfOpName: "TensorListScatter", + category: "control", + inputs: [ + {start: 0, name: "tensor", type: "tensor"}, + {start: 1, name: "indices", type: "number[]"}, + {start: 2, name: "elementShape", type: "shape"} + ], + attrs: [{tfName: "element_dtype", name: "elementDType", type: "dtype"}] + }, + { + tfOpName: "TensorListScatterV2", + category: "control", + inputs: [ + {start: 0, name: "tensor", type: "tensor"}, + {start: 1, name: "indices", type: "number[]"}, + {start: 2, name: "elementShape", type: "shape"}, + {start: 3, name: "numElements", type: "number"} + ], + attrs: [{tfName: "element_dtype", name: "elementDType", type: "dtype"}] + }, + { + tfOpName: "TensorListGather", + category: "control", + inputs: [ + {start: 0, name: "tensorListId", type: "tensor"}, + {start: 1, name: "indices", type: "number[]"}, + {start: 2, name: "elementShape", type: "shape"} + ], + attrs: [{tfName: "element_dtype", name: "elementDType", type: "dtype"}] + }, + { + tfOpName: "TensorListGetItem", + category: "control", + inputs: [ + {start: 0, name: "tensorListId", type: "tensor"}, + {start: 1, name: "index", type: "number"}, + {start: 2, name: "elementShape", type: "shape"} + ], + attrs: [{tfName: "element_dtype", name: "elementDType", type: "dtype"}] + }, + { + tfOpName: "TensorListSetItem", + category: "control", + inputs: [ + {start: 0, name: "tensorListId", type: "tensor"}, + {start: 1, name: "index", type: "number"}, + {start: 2, name: "tensor", type: "tensor"} + ], + attrs: [{tfName: "element_dtype", name: "elementDType", type: "dtype"}] + }, + { + tfOpName: "TensorListReserve", + category: "control", + inputs: [ + {start: 0, name: "elementShape", type: "shape"}, + {start: 1, name: "numElements", type: "number"} + ], + attrs: [{tfName: "element_dtype", name: "elementDType", type: "dtype"}] + }, + { + tfOpName: "TensorListFromTensor", + category: "control", + inputs: [ + {start: 0, name: "tensor", type: "tensor"}, + {start: 1, name: "elementShape", type: "shape"} + ], + attrs: [{tfName: "element_dtype", name: "elementDType", type: "dtype"}] + }, + { + tfOpName: "TensorListStack", + category: "control", + inputs: [ + {start: 0, name: "tensorListId", type: "tensor"}, + {start: 1, name: "elementShape", type: "shape"} + ], + attrs: [ + {tfName: "element_dtype", name: "elementDType", type: "dtype"}, + {tfName: "num_elements", name: "numElements", type: "dtype"} + ] + }, + { + tfOpName: "TensorListSplit", + category: "control", + inputs: [ + {start: 0, name: "tensor", type: "tensor"}, + {start: 1, name: "elementShape", type: "shape"}, + {start: 2, name: "lengths", type: "number[]"} + ], + attrs: [{tfName: "element_dtype", name: "elementDType", type: "dtype"}] + }, + { + tfOpName: "TensorListConcat", + category: "control", + inputs: [ + {start: 0, name: "tensorListId", type: "tensor"} + ], + attrs: [ + {tfName: "element_shape", name: "elementShape", type: "shape"}, + {tfName: "element_dtype", name: "elementDType", type: "dtype"} + ] + }, + { + tfOpName: "TensorListPopBack", + category: "control", + inputs: [ + {start: 0, name: "tensorListId", type: "tensor"}, + {start: 1, name: "elementShape", type: "shape"} + ], + attrs: [{tfName: "element_dtype", name: "elementDType", type: "dtype"}] + }, + { + tfOpName: "TensorListPushBack", + category: "control", + inputs: [ + {start: 0, name: "tensorListId", type: "tensor"}, + {start: 1, name: "tensor", type: "tensor"} + ], + attrs: [{tfName: "element_dtype", name: "elementDType", type: "dtype"}] + } + ]; + + // node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/convolution.js + const convolution_exports = {}; + __export(convolution_exports, { + json: () => json4 + }); + /** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const json4 = [ + { + tfOpName: "AvgPool", + category: "convolution", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [ + {tfName: "strides", name: "strides", type: "number[]"}, + {tfName: "padding", name: "pad", type: "string"}, + { + tfName: "data_format", + name: "dataFormat", + type: "string", + notSupported: true + }, + {tfName: "ksize", name: "kernelSize", type: "number[]"}, + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "MaxPool", + category: "convolution", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [ + {tfName: "strides", name: "strides", type: "number[]"}, + {tfName: "padding", name: "pad", type: "string"}, + { + tfName: "data_format", + name: "dataFormat", + type: "string", + notSupported: true + }, + {tfName: "ksize", name: "kernelSize", type: "number[]"}, + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "MaxPoolWithArgmax", + category: "convolution", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [ + {tfName: "strides", name: "strides", type: "number[]"}, + {tfName: "padding", name: "pad", type: "string"}, + {tfName: "ksize", name: "kernelSize", type: "number[]"}, + { + tfName: "include_batch_in_index", + name: "includeBatchInIndex", + type: "bool" + }, + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "AvgPool3D", + category: "convolution", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [ + {tfName: "strides", name: "strides", type: "number[]"}, + {tfName: "padding", name: "pad", type: "string"}, + { + tfName: "data_format", + name: "dataFormat", + type: "string", + notSupported: true + }, + {tfName: "ksize", name: "kernelSize", type: "number[]"}, + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "MaxPool3D", + category: "convolution", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [ + {tfName: "strides", name: "strides", type: "number[]"}, + {tfName: "padding", name: "pad", type: "string"}, + { + tfName: "data_format", + name: "dataFormat", + type: "string", + notSupported: true + }, + {tfName: "ksize", name: "kernelSize", type: "number[]"}, + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "Conv1D", + category: "convolution", + inputs: [ + {start: 0, name: "x", type: "tensor"}, + {start: 1, name: "filter", type: "tensor"} + ], + attrs: [ + {tfName: "stride", name: "stride", type: "number"}, + {tfName: "padding", name: "pad", type: "string"}, + { + tfName: "data_format", + name: "dataFormat", + type: "string", + defaultValue: "NWC" + }, + {tfName: "T", name: "dtype", type: "dtype", notSupported: true}, + { + tfName: "dilation", + name: "dilation", + type: "number", + defaultValue: 1 + } + ] + }, + { + tfOpName: "Conv2D", + category: "convolution", + inputs: [ + {start: 0, name: "x", type: "tensor"}, + {start: 1, name: "filter", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true}, + {tfName: "strides", name: "strides", type: "number[]"}, + {tfName: "padding", name: "pad", type: "string"}, + {tfName: "useCudnnOnGpu", name: "useCudnnOnGpu", type: "bool"}, + { + tfName: "data_format", + name: "dataFormat", + type: "string", + defaultValue: "NHWC" + }, + { + tfName: "explicit_paddings", + name: "explicitPaddings", + type: "number[]", + defaultValue: [] + }, + {tfName: "dilations", name: "dilations", type: "number[]"} + ] + }, + { + tfOpName: "_FusedConv2D", + category: "convolution", + inputs: [ + {start: 0, name: "x", type: "tensor"}, + {start: 1, name: "filter", type: "tensor"}, + {start: 2, end: 0, name: "args", type: "tensors"} + ], + attrs: [ + {tfName: "num_args", name: "numArgs", type: "number"}, + {tfName: "T", name: "dtype", type: "dtype", notSupported: true}, + {tfName: "strides", name: "strides", type: "number[]"}, + {tfName: "padding", name: "pad", type: "string"}, + { + tfName: "explicit_paddings", + name: "explicitPaddings", + type: "number[]", + defaultValue: [] + }, + { + tfName: "use_cudnn_on_gpu", + name: "useCudnnOnGpu", + type: "bool", + defaultValue: true + }, + { + tfName: "data_format", + name: "dataFormat", + type: "string", + defaultValue: "NHWC" + }, + { + tfName: "dilations", + name: "dilations", + type: "number[]", + defaultValue: [1, 1, 1, 1] + }, + { + tfName: "fused_ops", + name: "fusedOps", + type: "string[]", + defaultValue: [] + }, + { + tfName: "epsilon", + name: "epsilon", + type: "number", + defaultValue: 1e-4 + } + ] + }, + { + tfOpName: "Conv2DBackpropInput", + category: "convolution", + inputs: [ + {start: 2, name: "x", type: "tensor"}, + {start: 1, name: "filter", type: "tensor"}, + {start: 0, name: "outputShape", type: "number[]"} + ], + attrs: [ + {tfName: "strides", name: "strides", type: "number[]"}, + {tfName: "padding", name: "pad", type: "string"}, + { + tfName: "data_format", + name: "dataFormat", + type: "string", + notSupported: true + }, + { + tfName: "explicit_paddings", + name: "explicitPaddings", + type: "number[]", + defaultValue: [] + } + ] + }, + { + tfOpName: "DepthwiseConv2d", + category: "convolution", + inputs: [ + {start: 0, name: "input", type: "tensor"}, + {start: 1, name: "filter", type: "tensor"} + ], + attrs: [ + {tfName: "strides", name: "strides", type: "number[]"}, + {tfName: "padding", name: "pad", type: "string"}, + { + tfName: "data_format", + name: "dataFormat", + type: "string", + defaultValue: "NHWC" + }, + { + tfName: "explicit_paddings", + name: "explicitPaddings", + type: "number[]", + defaultValue: [] + }, + {tfName: "dilations", name: "dilations", type: "number[]"} + ] + }, + { + tfOpName: "DepthwiseConv2dNative", + category: "convolution", + inputs: [ + {start: 0, name: "input", type: "tensor"}, + {start: 1, name: "filter", type: "tensor"} + ], + attrs: [ + {tfName: "strides", name: "strides", type: "number[]"}, + {tfName: "padding", name: "pad", type: "string"}, + { + tfName: "data_format", + name: "dataFormat", + type: "string", + defaultValue: "NHWC" + }, + { + tfName: "explicit_paddings", + name: "explicitPaddings", + type: "number[]", + defaultValue: [] + }, + {tfName: "dilations", name: "dilations", type: "number[]"} + ] + }, + { + tfOpName: "FusedDepthwiseConv2dNative", + category: "convolution", + inputs: [ + {start: 0, name: "x", type: "tensor"}, + {start: 1, name: "filter", type: "tensor"}, + {start: 2, end: 0, name: "args", type: "tensors"} + ], + attrs: [ + {tfName: "num_args", name: "numArgs", type: "number"}, + {tfName: "T", name: "dtype", type: "dtype", notSupported: true}, + {tfName: "strides", name: "strides", type: "number[]"}, + {tfName: "padding", name: "pad", type: "string"}, + { + tfName: "data_format", + name: "dataFormat", + type: "string", + defaultValue: "NHWC" + }, + { + tfName: "dilations", + name: "dilations", + type: "number[]", + defaultValue: [1, 1, 1, 1] + }, + { + tfName: "fused_ops", + name: "fusedOps", + type: "string[]", + defaultValue: [] + } + ] + }, + { + tfOpName: "Conv3D", + category: "convolution", + inputs: [ + {start: 0, name: "x", type: "tensor"}, + {start: 1, name: "filter", type: "tensor"} + ], + attrs: [ + {tfName: "strides", name: "strides", type: "number[]"}, + {tfName: "padding", name: "pad", type: "string"}, + { + tfName: "data_format", + name: "dataFormat", + type: "string", + defaultValue: "NHWC" + }, + {tfName: "dilations", name: "dilations", type: "number[]"} + ] + }, + { + tfOpName: "Dilation2D", + category: "convolution", + inputs: [ + {start: 0, name: "x", type: "tensor"}, + {start: 1, name: "filter", type: "tensor"} + ], + attrs: [ + {tfName: "strides", name: "strides", type: "number[]"}, + {tfName: "rates", name: "dilations", type: "number[]"}, + {tfName: "padding", name: "pad", type: "string"} + ] + } + ]; + + // node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/creation.js + const creation_exports = {}; + __export(creation_exports, { + json: () => json5 + }); + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const json5 = [ + { + tfOpName: "Fill", + category: "creation", + inputs: [ + {start: 0, name: "shape", type: "number[]"}, + {start: 1, name: "value", type: "number"} + ], + attrs: [{tfName: "T", name: "dtype", type: "dtype"}] + }, + { + tfOpName: "LinSpace", + category: "creation", + inputs: [ + {start: 0, name: "start", type: "number"}, + {start: 1, name: "stop", type: "number"}, + {start: 2, name: "num", type: "number"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "OneHot", + category: "creation", + inputs: [ + {start: 0, name: "indices", type: "tensor"}, + {start: 1, name: "depth", type: "number"}, + {start: 2, name: "onValue", type: "number", defaultValue: 1}, + {start: 3, name: "offValue", type: "number", defaultValue: 0} + ], + attrs: [ + { + tfName: "axis", + name: "axis", + type: "number", + notSupported: true + }, + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "Ones", + category: "creation", + inputs: [ + {start: 0, name: "shape", type: "number[]"} + ], + attrs: [{tfName: "T", name: "dtype", type: "dtype"}] + }, + { + tfOpName: "OnesLike", + category: "creation", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [{tfName: "dtype", name: "dtype", type: "dtype"}] + }, + { + tfOpName: "RandomUniform", + category: "creation", + inputs: [ + {start: 0, name: "shape", type: "number[]"} + ], + attrs: [ + { + tfName: "minval", + name: "minval", + type: "number", + defaultValue: 0 + }, + { + tfName: "maxval", + name: "maxval", + type: "number", + defaultValue: 1 + }, + {tfName: "dtype", name: "dtype", type: "dtype"}, + {tfName: "seed", name: "seed", type: "number", defaultValue: 0}, + { + tfName: "seed2", + name: "seed2", + type: "number", + defaultValue: 0, + notSupported: true + }, + {tfName: "T", name: "T", type: "number", notSupported: true} + ] + }, + { + tfOpName: "Range", + category: "creation", + inputs: [ + {start: 0, name: "start", type: "number"}, + {start: 1, name: "stop", type: "number"}, + {start: 2, name: "step", type: "number", defaultValue: 0} + ], + attrs: [{tfName: "Tidx", name: "dtype", type: "dtype"}] + }, + { + tfOpName: "TruncatedNormal", + category: "creation", + inputs: [ + {start: 0, name: "shape", type: "number[]"} + ], + attrs: [ + { + tfName: "means", + name: "mean", + type: "number", + defaultValue: 0 + }, + { + tfName: "stddev", + name: "stdDev", + type: "number", + defaultValue: 1 + }, + {tfName: "seed", name: "seed", type: "number"}, + { + tfName: "seed2", + name: "seed2", + type: "number", + defaultValue: 0, + notSupported: true + }, + {tfName: "dtype", name: "dtype", type: "dtype"}, + {tfName: "T", name: "T", type: "number", notSupported: true} + ] + }, + { + tfOpName: "Zeros", + category: "creation", + inputs: [ + {start: 0, name: "shape", type: "number[]"} + ], + attrs: [{tfName: "T", name: "dtype", type: "dtype"}] + }, + { + tfOpName: "ZerosLike", + category: "creation", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [{tfName: "T", name: "dtype", type: "dtype"}] + }, + { + tfOpName: "Multinomial", + category: "creation", + inputs: [ + {start: 0, name: "logits", type: "tensor"}, + {start: 1, name: "numSamples", type: "number"} + ], + attrs: [ + {tfName: "seed", name: "seed", type: "number"}, + {tfName: "seed2", name: "seed2", type: "number"}, + {tfName: "T", name: "dtype", type: "dtype"}, + {tfName: "output_dtype", name: "output_dtype", type: "dtype"} + ] + } + ]; + + // node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/dynamic.js + const dynamic_exports = {}; + __export(dynamic_exports, { + json: () => json6 + }); + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const json6 = [ + { + tfOpName: "NonMaxSuppressionV2", + category: "dynamic", + inputs: [ + {start: 0, name: "boxes", type: "tensor"}, + {start: 1, name: "scores", type: "tensor"}, + {start: 2, name: "maxOutputSize", type: "number"}, + {start: 3, name: "iouThreshold", type: "number"} + ] + }, + { + tfOpName: "NonMaxSuppressionV3", + category: "dynamic", + inputs: [ + {start: 0, name: "boxes", type: "tensor"}, + {start: 1, name: "scores", type: "tensor"}, + {start: 2, name: "maxOutputSize", type: "number"}, + {start: 3, name: "iouThreshold", type: "number"}, + {start: 4, name: "scoreThreshold", type: "number"} + ] + }, + { + tfOpName: "NonMaxSuppressionV4", + category: "dynamic", + inputs: [ + {start: 0, name: "boxes", type: "tensor"}, + {start: 1, name: "scores", type: "tensor"}, + {start: 2, name: "maxOutputSize", type: "number"}, + {start: 3, name: "iouThreshold", type: "number"}, + {start: 4, name: "scoreThreshold", type: "number"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true}, + { + tfName: "T_threshold", + name: "threshold", + type: "dtype", + notSupported: true + }, + { + tfName: "pad_to_max_output_size", + name: "padToMaxOutputSize", + type: "bool" + } + ] + }, + { + tfOpName: "NonMaxSuppressionV5", + category: "dynamic", + inputs: [ + {start: 0, name: "boxes", type: "tensor"}, + {start: 1, name: "scores", type: "tensor"}, + {start: 2, name: "maxOutputSize", type: "number"}, + {start: 3, name: "iouThreshold", type: "number"}, + {start: 4, name: "scoreThreshold", type: "number"}, + {start: 5, name: "softNmsSigma", type: "number"} + ] + }, + { + tfOpName: "Where", + category: "dynamic", + inputs: [ + {start: 0, name: "condition", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "ListDiff", + category: "dynamic", + inputs: [ + {start: 0, name: "x", type: "tensor"}, + {start: 1, name: "y", type: "tensor"} + ], + attrs: [{ + tfName: "T", + name: "dtype", + type: "dtype", + notSupported: true + }] + } + ]; + + // node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/evaluation.js + const evaluation_exports = {}; + __export(evaluation_exports, { + json: () => json7 + }); + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const json7 = [{ + tfOpName: "TopKV2", + category: "evaluation", + inputs: [ + {start: 0, name: "x", type: "tensor"}, + {start: 1, name: "k", type: "number"} + ], + attrs: [{tfName: "sorted", name: "sorted", type: "bool"}] + }]; + + // node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/graph.js + const graph_exports = {}; + __export(graph_exports, { + json: () => json8 + }); + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const json8 = [ + { + tfOpName: "PlaceholderWithDefault", + category: "graph", + inputs: [ + {start: 0, name: "default", type: "tensor"} + ], + attrs: [ + {tfName: "shape", name: "shape", type: "shape"}, + {tfName: "dtype", name: "dtype", type: "dtype"} + ] + }, + { + tfOpName: "Placeholder", + category: "graph", + attrs: [ + {tfName: "shape", name: "shape", type: "shape"}, + {tfName: "dtype", name: "dtype", type: "dtype"} + ] + }, + {tfOpName: "Const", category: "graph"}, + { + tfOpName: "Identity", + category: "graph", + inputs: [{start: 0, name: "x", type: "tensor"}] + }, + { + tfOpName: "IdentityN", + category: "graph", + inputs: [{start: 0, end: 0, name: "x", type: "tensors"}] + }, + { + tfOpName: "Snapshot", + category: "graph", + inputs: [{start: 0, name: "x", type: "tensor"}] + }, + { + tfOpName: "Rank", + category: "graph", + inputs: [{start: 0, name: "x", type: "tensor"}] + }, + { + tfOpName: "Size", + category: "graph", + inputs: [{start: 0, name: "x", type: "tensor"}] + }, + { + tfOpName: "Shape", + category: "graph", + inputs: [{start: 0, name: "x", type: "tensor"}] + }, + { + tfOpName: "ShapeN", + category: "graph", + inputs: [{start: 0, end: 0, name: "x", type: "tensors"}] + }, + { + tfOpName: "Print", + category: "graph", + inputs: [ + {start: 0, name: "x", type: "tensor"}, + {start: 1, name: "data", type: "tensors"} + ], + attrs: [ + {tfName: "message", name: "message", type: "string"}, + { + tfName: "first_n", + name: "firstN", + type: "number", + notSupported: true + }, + { + tfName: "summarize", + name: "summarize", + type: "number", + defaultValue: 3 + } + ] + }, + {tfOpName: "NoOp", category: "graph", inputs: []}, + { + tfOpName: "StopGradient", + category: "graph", + inputs: [{start: 0, name: "x", type: "tensor"}] + }, + { + tfOpName: "FakeQuantWithMinMaxVars", + category: "graph", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [ + {tfName: "min", name: "min", type: "number"}, + {tfName: "max", name: "max", type: "number"} + ] + } + ]; + + // node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/image.js + const image_exports = {}; + __export(image_exports, { + json: () => json9 + }); + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const json9 = [ + { + tfOpName: "ResizeBilinear", + category: "image", + inputs: [ + {start: 0, name: "images", type: "tensor"}, + {start: 1, name: "size", type: "number[]"} + ], + attrs: [ + {tfName: "align_corners", name: "alignCorners", type: "bool"}, + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "ResizeNearestNeighbor", + category: "image", + inputs: [ + {start: 0, name: "images", type: "tensor"}, + {start: 1, name: "size", type: "number[]"} + ], + attrs: [ + {tfName: "align_corners", name: "alignCorners", type: "bool"}, + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "CropAndResize", + category: "image", + inputs: [ + {start: 0, name: "image", type: "tensor"}, + {start: 1, name: "boxes", type: "tensor"}, + {start: 2, name: "boxInd", type: "tensor"}, + {start: 3, name: "cropSize", type: "number[]"} + ], + attrs: [ + {tfName: "method", name: "method", type: "string"}, + { + tfName: "extrapolation_value", + name: "extrapolationValue", + type: "number" + } + ] + } + ]; + + // node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/logical.js + const logical_exports = {}; + __export(logical_exports, { + json: () => json10 + }); + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const json10 = [ + { + tfOpName: "Equal", + category: "logical", + inputs: [ + {start: 0, name: "a", type: "tensor"}, + {start: 1, name: "b", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "NotEqual", + category: "logical", + inputs: [ + {start: 0, name: "a", type: "tensor"}, + {start: 1, name: "b", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "Greater", + category: "logical", + inputs: [ + {start: 0, name: "a", type: "tensor"}, + {start: 1, name: "b", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "GreaterEqual", + category: "logical", + inputs: [ + {start: 0, name: "a", type: "tensor"}, + {start: 1, name: "b", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "Less", + category: "logical", + inputs: [ + {start: 0, name: "a", type: "tensor"}, + {start: 1, name: "b", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "LessEqual", + category: "logical", + inputs: [ + {start: 0, name: "a", type: "tensor"}, + {start: 1, name: "b", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "LogicalAnd", + category: "logical", + inputs: [ + {start: 0, name: "a", type: "tensor"}, + {start: 1, name: "b", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "LogicalNot", + category: "logical", + inputs: [ + {start: 0, name: "a", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "LogicalOr", + category: "logical", + inputs: [ + {start: 0, name: "a", type: "tensor"}, + {start: 1, name: "b", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "Select", + category: "logical", + inputs: [ + {start: 0, name: "condition", type: "tensor"}, + {start: 1, name: "a", type: "tensor"}, + {start: 2, name: "b", type: "tensor"} + ], + attrs: [ + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "SelectV2", + category: "logical", + inputs: [ + {start: 0, name: "condition", type: "tensor"}, + {start: 1, name: "a", type: "tensor"}, + {start: 2, name: "b", type: "tensor"} + ], + attrs: [{ + tfName: "T", + name: "dtype", + type: "dtype", + notSupported: true + }] + } + ]; + + // node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/matrices.js + const matrices_exports = {}; + __export(matrices_exports, { + json: () => json11 + }); + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const json11 = [ + { + tfOpName: "_FusedMatMul", + category: "matrices", + inputs: [ + {start: 0, name: "a", type: "tensor"}, + {start: 1, name: "b", type: "tensor"}, + {start: 2, end: 0, name: "args", type: "tensors"} + ], + attrs: [ + {tfName: "num_args", name: "numArgs", type: "number"}, + { + tfName: "fused_ops", + name: "fusedOps", + type: "string[]", + defaultValue: [] + }, + { + tfName: "epsilon", + name: "epsilon", + type: "number", + defaultValue: 1e-4 + }, + { + tfName: "transpose_a", + name: "transposeA", + type: "bool", + defaultValue: false + }, + { + tfName: "transpose_b", + name: "transposeB", + type: "bool", + defaultValue: false + }, + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "MatMul", + category: "matrices", + inputs: [ + {start: 0, name: "a", type: "tensor"}, + {start: 1, name: "b", type: "tensor"} + ], + attrs: [ + { + tfName: "transpose_a", + name: "transposeA", + type: "bool", + defaultValue: false + }, + { + tfName: "transpose_b", + name: "transposeB", + type: "bool", + defaultValue: false + }, + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "BatchMatMul", + category: "matrices", + inputs: [ + {start: 0, name: "a", type: "tensor"}, + {start: 1, name: "b", type: "tensor"} + ], + attrs: [ + { + tfName: "adj_x", + name: "transposeA", + type: "bool", + defaultValue: false + }, + { + tfName: "adj_y", + name: "transposeB", + type: "bool", + defaultValue: false + }, + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "BatchMatMulV2", + category: "matrices", + inputs: [ + {start: 0, name: "a", type: "tensor"}, + {start: 1, name: "b", type: "tensor"} + ], + attrs: [ + { + tfName: "adj_x", + name: "transposeA", + type: "bool", + defaultValue: false + }, + { + tfName: "adj_y", + name: "transposeB", + type: "bool", + defaultValue: false + }, + {tfName: "T", name: "dtype", type: "dtype", notSupported: true} + ] + }, + { + tfOpName: "Transpose", + category: "matrices", + inputs: [ + {start: 0, name: "x", type: "tensor"}, + {start: 1, name: "perm", type: "number[]"} + ], + attrs: [{ + tfName: "T", + name: "dtype", + type: "dtype", + notSupported: true + }] + } + ]; + + // node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/normalization.js + const normalization_exports = {}; + __export(normalization_exports, { + json: () => json12 + }); + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const json12 = [ + { + tfOpName: "FusedBatchNorm", + category: "normalization", + inputs: [ + {start: 0, name: "x", type: "tensor"}, + {start: 1, name: "scale", type: "tensor"}, + {start: 2, name: "offset", type: "tensor"}, + {start: 3, name: "mean", type: "tensor"}, + {start: 4, name: "variance", type: "tensor"} + ], + attrs: [ + { + tfName: "epsilon", + name: "epsilon", + type: "number", + defaultValue: 1e-3 + }, + { + tfName: "data_format", + name: "dataFormat", + type: "string", + notSupported: true + } + ] + }, + { + tfOpName: "FusedBatchNormV2", + category: "normalization", + inputs: [ + {start: 0, name: "x", type: "tensor"}, + {start: 1, name: "scale", type: "tensor"}, + {start: 2, name: "offset", type: "tensor"}, + {start: 3, name: "mean", type: "tensor"}, + {start: 4, name: "variance", type: "tensor"} + ], + attrs: [ + { + tfName: "epsilon", + name: "epsilon", + type: "number", + defaultValue: 1e-3 + }, + { + tfName: "data_format", + name: "dataFormat", + type: "string", + notSupported: true + } + ] + }, + { + tfOpName: "FusedBatchNormV3", + category: "normalization", + inputs: [ + {start: 0, name: "x", type: "tensor"}, + {start: 1, name: "scale", type: "tensor"}, + {start: 2, name: "offset", type: "tensor"}, + {start: 3, name: "mean", type: "tensor"}, + {start: 4, name: "variance", type: "tensor"} + ], + attrs: [ + { + tfName: "epsilon", + name: "epsilon", + type: "number", + defaultValue: 1e-3 + }, + { + tfName: "data_format", + name: "dataFormat", + type: "string", + notSupported: true + } + ] + }, + { + tfOpName: "LRN", + category: "normalization", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [ + { + tfName: "depth_radius", + name: "radius", + type: "number", + defaultValue: 5 + }, + {tfName: "bias", name: "bias", type: "number", defaultValue: 1}, + { + tfName: "alpha", + name: "alpha", + type: "number", + defaultValue: 1 + }, + { + tfName: "beta", + name: "beta", + type: "number", + defaultValue: 0.5 + } + ] + }, + { + tfOpName: "Softmax", + category: "normalization", + inputs: [{start: 0, name: "x", type: "tensor"}] + }, + { + tfOpName: "LogSoftmax", + category: "normalization", + inputs: [{start: 0, name: "x", type: "tensor"}] + }, + { + tfOpName: "SparseToDense", + category: "normalization", + inputs: [ + {start: 0, name: "sparseIndices", type: "tensor"}, + {start: 1, name: "outputShape", type: "number[]"}, + {start: 2, name: "sparseValues", type: "tensor"}, + {start: 3, name: "defaultValue", type: "tensor"} + ], + attrs: [{ + tfName: "validate_indices", + name: "validateIndices", + type: "bool", + defaultValue: true, + notSupported: true + }] + } + ]; + + // node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/reduction.js + const reduction_exports = {}; + __export(reduction_exports, { + json: () => json13 + }); + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const json13 = [ + { + tfOpName: "Max", + category: "reduction", + inputs: [ + {start: 0, name: "x", type: "tensor"}, + {start: 1, name: "axis", type: "number[]"} + ], + attrs: [{tfName: "keep_dims", name: "keepDims", type: "bool"}] + }, + { + tfOpName: "Mean", + category: "reduction", + inputs: [ + {start: 0, name: "x", type: "tensor"}, + {start: 1, name: "axis", type: "number[]"} + ], + attrs: [{tfName: "keep_dims", name: "keepDims", type: "bool"}] + }, + { + tfOpName: "Min", + category: "reduction", + inputs: [ + {start: 0, name: "x", type: "tensor"}, + {start: 1, name: "axis", type: "number[]"} + ], + attrs: [{tfName: "keep_dims", name: "keepDims", type: "bool"}] + }, + { + tfOpName: "Sum", + category: "reduction", + inputs: [ + {start: 0, name: "x", type: "tensor"}, + {start: 1, name: "axis", type: "number[]"} + ], + attrs: [{tfName: "keep_dims", name: "keepDims", type: "bool"}] + }, + { + tfOpName: "All", + category: "reduction", + inputs: [ + {start: 0, name: "x", type: "tensor"}, + {start: 1, name: "axis", type: "number[]"} + ], + attrs: [{tfName: "keep_dims", name: "keepDims", type: "bool"}] + }, + { + tfOpName: "Any", + category: "reduction", + inputs: [ + {start: 0, name: "x", type: "tensor"}, + {start: 1, name: "axis", type: "number[]"} + ], + attrs: [{tfName: "keep_dims", name: "keepDims", type: "bool"}] + }, + { + tfOpName: "ArgMax", + category: "reduction", + inputs: [ + {start: 0, name: "x", type: "tensor"}, + {start: 1, name: "axis", type: "number"} + ] + }, + { + tfOpName: "ArgMin", + category: "reduction", + inputs: [ + {start: 0, name: "x", type: "tensor"}, + {start: 1, name: "axis", type: "number"} + ] + }, + { + tfOpName: "Prod", + category: "reduction", + inputs: [ + {start: 0, name: "x", type: "tensor"}, + {start: 1, name: "axis", type: "number[]"} + ], + attrs: [{tfName: "keep_dims", name: "keepDims", type: "bool"}] + }, + { + tfOpName: "Cumsum", + category: "reduction", + inputs: [ + {start: 0, name: "x", type: "tensor"}, + {start: 1, name: "axis", type: "number"} + ], + attrs: [ + {tfName: "exclusive", name: "exclusive", type: "bool"}, + {tfName: "reverse", name: "reverse", type: "bool"} + ] + } + ]; + + // node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/slice_join.js + const slice_join_exports = {}; + __export(slice_join_exports, { + json: () => json14 + }); + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const json14 = [ + { + tfOpName: "ConcatV2", + category: "slice_join", + inputs: [ + {start: 0, end: -1, name: "tensors", type: "tensors"}, + {start: -1, name: "axis", type: "number"} + ], + attrs: [{tfName: "N", name: "n", type: "number", defaultValue: 2}] + }, + { + tfOpName: "Concat", + category: "slice_join", + inputs: [ + {start: 1, end: 0, name: "tensors", type: "tensors"}, + {start: 0, name: "axis", type: "number"} + ], + attrs: [{tfName: "N", name: "n", type: "number", defaultValue: 2}] + }, + { + tfOpName: "GatherV2", + category: "slice_join", + inputs: [ + {start: 0, name: "x", type: "tensor"}, + {start: 1, name: "indices", type: "tensor"}, + {start: 2, name: "axis", type: "number", defaultValue: 0} + ] + }, + { + tfOpName: "Gather", + category: "slice_join", + inputs: [ + {start: 0, name: "x", type: "tensor"}, + {start: 1, name: "indices", type: "tensor"} + ], + attrs: [ + {tfName: "axis", name: "axis", type: "number", defaultValue: 0}, + { + tfName: "validate_indices", + name: "validateIndices", + type: "bool", + notSupported: true + } + ] + }, + { + tfOpName: "Reverse", + category: "slice_join", + inputs: [ + {start: 0, name: "x", type: "tensor"}, + {start: 1, name: "dims", type: "bool", notSupported: true} + ] + }, + { + tfOpName: "ReverseV2", + category: "slice_join", + inputs: [ + {start: 0, name: "x", type: "tensor"}, + {start: 1, name: "axis", type: "number[]"} + ] + }, + { + tfOpName: "Slice", + category: "slice_join", + inputs: [ + {start: 0, name: "x", type: "tensor"}, + {start: 1, name: "begin", type: "number[]"}, + {start: 2, name: "size", type: "number[]"} + ] + }, + { + tfOpName: "StridedSlice", + category: "slice_join", + inputs: [ + {start: 0, name: "x", type: "tensor"}, + {start: 1, name: "begin", type: "number[]"}, + {start: 2, name: "end", type: "number[]"}, + {start: 3, name: "strides", type: "number[]"} + ], + attrs: [ + { + tfName: "begin_mask", + name: "beginMask", + type: "number", + defaultValue: 0 + }, + { + tfName: "end_mask", + name: "endMask", + type: "number", + defaultValue: 0 + }, + { + tfName: "new_axis_mask", + name: "newAxisMask", + type: "number", + defaultValue: 0 + }, + { + tfName: "ellipsis_mask", + name: "ellipsisMask", + type: "number", + defaultValue: 0 + }, + { + tfName: "shrink_axis_mask", + name: "shrinkAxisMask", + type: "number", + defaultValue: 0 + } + ] + }, + { + tfOpName: "Pack", + category: "slice_join", + inputs: [ + {start: 0, end: 0, name: "tensors", type: "tensors"} + ], + attrs: [ + {tfName: "axis", name: "axis", type: "number", defaultValue: 0} + ] + }, + { + tfOpName: "Unpack", + category: "slice_join", + inputs: [ + {start: 0, name: "tensor", type: "tensor"} + ], + attrs: [ + {tfName: "axis", name: "axis", type: "number", defaultValue: 0}, + { + tfName: "num", + name: "num", + type: "number", + defaultValue: 0, + notSupported: true + } + ] + }, + { + tfOpName: "Tile", + category: "slice_join", + inputs: [ + {start: 0, name: "x", type: "tensor"}, + {start: 1, name: "reps", type: "number[]"} + ] + }, + { + tfOpName: "Split", + category: "slice_join", + inputs: [ + {start: 0, name: "axis", type: "number", defaultValue: 0}, + {start: 1, name: "x", type: "tensor"} + ], + attrs: [{ + tfName: "num_split", + name: "numOrSizeSplits", + type: "number", + defaultValue: 1 + }] + }, + { + tfOpName: "SplitV", + category: "slice_join", + inputs: [ + {start: 0, name: "x", type: "tensor"}, + {start: 1, name: "numOrSizeSplits", type: "number[]"}, + {start: 2, name: "axis", type: "number", defaultValue: 0} + ] + }, + { + tfOpName: "ScatterNd", + category: "slice_join", + inputs: [ + {start: 0, name: "indices", type: "tensor"}, + {start: 1, name: "values", type: "tensor"}, + {start: 2, name: "shape", type: "number[]"} + ] + }, + { + tfOpName: "GatherNd", + category: "slice_join", + inputs: [ + {start: 0, name: "x", type: "tensor"}, + {start: 1, name: "indices", type: "tensor"} + ] + }, + { + tfOpName: "SparseToDense", + category: "slice_join", + inputs: [ + {start: 0, name: "sparseIndices", type: "tensor"}, + {start: 1, name: "outputShape", type: "number[]"}, + {start: 2, name: "sparseValues", type: "tensor"}, + {start: 3, name: "defaultValue", type: "tensor"} + ], + attrs: [{ + tfName: "validate_indices", + name: "validateIndices", + type: "bool", + defaultValue: false, + notSupported: true + }] + } + ]; + + // node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/spectral.js + const spectral_exports = {}; + __export(spectral_exports, { + json: () => json15 + }); + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const json15 = [ + { + tfOpName: "FFT", + category: "spectral", + inputs: [{start: 0, name: "x", type: "tensor"}] + }, + { + tfOpName: "IFFT", + category: "spectral", + inputs: [{start: 0, name: "x", type: "tensor"}] + }, + { + tfOpName: "RFFT", + category: "spectral", + inputs: [ + {start: 0, name: "x", type: "tensor"}, + { + start: 1, + name: "fft_length", + type: "number", + notSupported: true + } + ] + }, + { + tfOpName: "IRFFT", + category: "spectral", + inputs: [ + {start: 0, name: "x", type: "tensor"}, + { + start: 1, + name: "fft_length", + type: "number", + notSupported: true + } + ] + } + ]; + + // node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/transformation.js + const transformation_exports = {}; + __export(transformation_exports, { + json: () => json16 + }); + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const json16 = [ + { + tfOpName: "Cast", + category: "transformation", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [ + { + tfName: "SrcT", + name: "sdtype", + type: "dtype", + notSupported: true + }, + {tfName: "DstT", name: "dtype", type: "dtype"} + ] + }, + { + tfOpName: "ExpandDims", + category: "transformation", + inputs: [ + {start: 0, name: "x", type: "tensor"}, + {start: 1, name: "axis", type: "number"} + ] + }, + { + tfOpName: "Pad", + category: "transformation", + inputs: [ + {start: 0, name: "x", type: "tensor"}, + {start: 1, name: "padding", type: "number[]"} + ], + attrs: [{ + tfName: "constant_value", + name: "constantValue", + type: "number", + defaultValue: 0 + }] + }, + { + tfOpName: "PadV2", + category: "transformation", + inputs: [ + {start: 0, name: "x", type: "tensor"}, + {start: 1, name: "padding", type: "number[]"}, + { + start: 2, + name: "constantValue", + type: "number", + defaultValue: 0 + } + ] + }, + { + tfOpName: "Reshape", + category: "transformation", + inputs: [ + {start: 0, name: "x", type: "tensor"}, + {start: 1, name: "shape", type: "number[]"} + ] + }, + { + tfOpName: "Squeeze", + category: "transformation", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [{ + tfName: "axis", + tfDeprecatedName: "squeeze_dims", + name: "axis", + type: "number[]" + }] + }, + { + tfOpName: "SpaceToBatchND", + category: "transformation", + inputs: [ + {start: 0, name: "x", type: "tensor"}, + {start: 1, name: "blockShape", type: "number[]"}, + {start: 2, name: "paddings", type: "number[]"} + ] + }, + { + tfOpName: "BatchToSpaceND", + category: "transformation", + inputs: [ + {start: 0, name: "x", type: "tensor"}, + {start: 1, name: "blockShape", type: "number[]"}, + {start: 2, name: "crops", type: "number[]"} + ] + }, + { + tfOpName: "DepthToSpace", + category: "transformation", + inputs: [ + {start: 0, name: "x", type: "tensor"} + ], + attrs: [ + {tfName: "block_size", name: "blockSize", type: "number"}, + {tfName: "data_format", name: "dataFormat", type: "string"} + ] + }, + { + tfOpName: "BroadcastTo", + category: "transformation", + inputs: [ + {start: 0, name: "x", type: "tensor"}, + {start: 1, name: "shape", type: "number[]"} + ], + attrs: [] + } + ]; + + // node_modules/@tensorflow/tfjs-converter/dist/operations/operation_mapper.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class OperationMapper { + static get Instance() { + return this._instance || (this._instance = new this()); + } + constructor() { + const ops9 = [ + arithmetic_exports, + basic_math_exports, + control_exports, + convolution_exports, + creation_exports, + dynamic_exports, + evaluation_exports, + logical_exports, + image_exports, + graph_exports, + matrices_exports, + normalization_exports, + reduction_exports, + slice_join_exports, + spectral_exports, + transformation_exports + ]; + const mappersJson = [].concat(...ops9.map((op2) => op2.json)); + this.opMappers = mappersJson.reduce((map, mapper) => { + map[mapper.tfOpName] = mapper; + return map; + }, {}); + } + transformGraph(graph2, signature = {}) { + const tfNodes = graph2.node; + const placeholders = []; + const weights = []; + const nodes = tfNodes.reduce((map, node) => { + map[node.name] = this.mapNode(node); + if (node.op.startsWith("Placeholder")) { + placeholders.push(map[node.name]); + } + if (node.op === "Const") { + weights.push(map[node.name]); + } + return map; + }, {}); + let inputs = []; + const outputs = []; + let inputNodeNameToKey = {}; + let outputNodeNameToKey = {}; + if (signature != null) { + inputNodeNameToKey = this.mapSignatureEntries(signature.inputs); + outputNodeNameToKey = this.mapSignatureEntries(signature.outputs); + } + const allNodes = Object.keys(nodes); + allNodes.forEach((key) => { + const node = nodes[key]; + node.inputNames.forEach((name) => { + const [nodeName] = getNodeNameAndIndex(name); + node.inputs.push(nodes[nodeName]); + nodes[nodeName].children.push(node); + }); + }); + if (Object.keys(outputNodeNameToKey).length === 0) { + allNodes.forEach((key) => { + const node = nodes[key]; + if (node.children.length === 0) { + outputs.push(node); + } + }); + } else { + Object.keys(outputNodeNameToKey).forEach((name) => { + const [nodeName] = getNodeNameAndIndex(name); + const node = nodes[nodeName]; + if (node != null) { + node.signatureKey = outputNodeNameToKey[name]; + outputs.push(node); + } + }); + } + if (Object.keys(inputNodeNameToKey).length > 0) { + Object.keys(inputNodeNameToKey).forEach((name) => { + const [nodeName] = getNodeNameAndIndex(name); + const node = nodes[nodeName]; + if (node) { + node.signatureKey = inputNodeNameToKey[name]; + inputs.push(node); + } + }); + } else { + inputs = placeholders; + } + let functions = {}; + if (graph2.library != null && graph2.library.function != null) { + functions = graph2.library.function.reduce((functions2, func2) => { + functions2[func2.signature.name] = this.mapFunction(func2); + return functions2; + }, {}); + } + return { + nodes, + inputs, + outputs, + weights, + placeholders, + signature, + functions + }; + } + mapSignatureEntries(entries) { + return Object.keys(entries || {}).reduce((prev, curr) => { + prev[entries[curr].name] = curr; + return prev; + }, {}); + } + mapNode(node) { + const mapper = getRegisteredOp(node.op) || this.opMappers[node.op] || {}; + if (node.attr == null) { + node.attr = {}; + } + const newNode = { + name: node.name, + op: node.op, + category: mapper.category, + inputNames: (node.input || []).map((input2) => input2.startsWith("^") ? input2.substr(1) : input2), + inputs: [], + children: [], + inputParams: {}, + attrParams: {}, + rawAttrs: node.attr + }; + if (mapper.inputs != null) { + newNode.inputParams = mapper.inputs.reduce((map, param) => { + map[param.name] = { + type: param.type, + inputIndexStart: param.start, + inputIndexEnd: param.end + }; + return map; + }, {}); + } + if (mapper.attrs != null) { + newNode.attrParams = mapper.attrs.reduce((map, param) => { + const type = param.type; + let value = void 0; + switch (param.type) { + case "string": + value = getStringParam(node.attr, param.tfName, param.defaultValue); + if (value === void 0 && !!param.tfDeprecatedName) { + value = getStringParam(node.attr, param.tfDeprecatedName, param.defaultValue); + } + break; + case "string[]": + value = getStringArrayParam(node.attr, param.tfName, param.defaultValue); + if (value === void 0 && !!param.tfDeprecatedName) { + value = getStringArrayParam(node.attr, param.tfDeprecatedName, param.defaultValue); + } + break; + case "number": + value = getNumberParam(node.attr, param.tfName, param.defaultValue || 0); + if (value === void 0 && !!param.tfDeprecatedName) { + value = getNumberParam(node.attr, param.tfDeprecatedName, param.defaultValue); + } + break; + case "number[]": + value = getNumericArrayParam(node.attr, param.tfName, param.defaultValue); + if (value === void 0 && !!param.tfDeprecatedName) { + value = getNumericArrayParam(node.attr, param.tfDeprecatedName, param.defaultValue); + } + break; + case "bool": + value = getBoolParam(node.attr, param.tfName, param.defaultValue); + if (value === void 0 && !!param.tfDeprecatedName) { + value = getBoolParam(node.attr, param.tfDeprecatedName, param.defaultValue); + } + break; + case "bool[]": + value = getBoolArrayParam(node.attr, param.tfName, param.defaultValue); + if (value === void 0 && !!param.tfDeprecatedName) { + value = getBoolArrayParam(node.attr, param.tfDeprecatedName, param.defaultValue); + } + break; + case "shape": + value = getTensorShapeParam(node.attr, param.tfName, param.defaultValue); + if (value === void 0 && !!param.tfDeprecatedName) { + value = getTensorShapeParam(node.attr, param.tfDeprecatedName, param.defaultValue); + } + break; + case "shape[]": + value = getTensorShapeArrayParam(node.attr, param.tfName, param.defaultValue); + if (value === void 0 && !!param.tfDeprecatedName) { + value = getTensorShapeArrayParam(node.attr, param.tfDeprecatedName, param.defaultValue); + } + break; + case "dtype": + value = getDtypeParam(node.attr, param.tfName, param.defaultValue); + if (value === void 0 && !!param.tfDeprecatedName) { + value = getDtypeParam(node.attr, param.tfDeprecatedName, param.defaultValue); + } + break; + case "dtype[]": + value = getDtypeArrayParam(node.attr, param.tfName, param.defaultValue); + if (value === void 0 && !!param.tfDeprecatedName) { + value = getDtypeArrayParam(node.attr, param.tfDeprecatedName, param.defaultValue); + } + break; + case "func": + value = getFuncParam(node.attr, param.tfName, param.defaultValue); + if (value === void 0 && !!param.tfDeprecatedName) { + value = getFuncParam(node.attr, param.tfDeprecatedName, param.defaultValue); + } + break; + case "tensor": + case "tensors": + break; + default: + throw new Error(`Unsupported param type: ${param.type} for op: ${node.op}`); + } + map[param.name] = {value, type}; + return map; + }, {}); + } + return newNode; + } + mapFunction(functionDef) { + const tfNodes = functionDef.nodeDef; + const placeholders = []; + const weights = []; + let nodes = {}; + if (tfNodes != null) { + nodes = tfNodes.reduce((map, node) => { + map[node.name] = this.mapNode(node); + if (node.op === "Const") { + weights.push(map[node.name]); + } + return map; + }, {}); + } + const inputs = []; + const outputs = []; + functionDef.signature.inputArg.forEach((arg) => { + const [nodeName] = getNodeNameAndIndex(arg.name); + const node = { + name: nodeName, + op: "Placeholder", + inputs: [], + inputNames: [], + category: "graph", + inputParams: {}, + attrParams: {dtype: {value: parseDtypeParam(arg.type), type: "dtype"}}, + children: [] + }; + node.signatureKey = arg.name; + inputs.push(node); + nodes[nodeName] = node; + }); + const allNodes = Object.keys(nodes); + allNodes.forEach((key) => { + const node = nodes[key]; + node.inputNames.forEach((name) => { + const [nodeName] = getNodeNameAndIndex(name); + node.inputs.push(nodes[nodeName]); + nodes[nodeName].children.push(node); + }); + }); + const returnNodeMap = functionDef.ret; + functionDef.signature.outputArg.forEach((output) => { + const [nodeName, index] = getNodeNameAndIndex(returnNodeMap[output.name]); + const node = nodes[nodeName]; + if (node != null) { + node.defaultOutput = index; + outputs.push(node); + } + }); + const signature = this.mapArgsToSignature(functionDef); + return {nodes, inputs, outputs, weights, placeholders, signature}; + } + mapArgsToSignature(functionDef) { + return { + methodName: functionDef.signature.name, + inputs: functionDef.signature.inputArg.reduce((map, arg) => { + map[arg.name] = this.mapArgToTensorInfo(arg); + return map; + }, {}), + outputs: functionDef.signature.outputArg.reduce((map, arg) => { + map[arg.name] = this.mapArgToTensorInfo(arg, functionDef.ret); + return map; + }, {}) + }; + } + mapArgToTensorInfo(arg, nameMap2) { + let name = arg.name; + if (nameMap2 != null) { + name = nameMap2[name]; + } + return {name, dtype: arg.type}; + } + } + function decodeBase64(text) { + const global2 = env().global; + if (typeof global2.atob !== "undefined") { + return global2.atob(text); + } else if (typeof Buffer !== "undefined") { + return new Buffer(text, "base64").toString(); + } else { + throw new Error("Unable to decode base64 in this environment. Missing built-in atob() or Buffer()"); + } + } + function parseStringParam(s, keepCase) { + const value = Array.isArray(s) ? String.fromCharCode.apply(null, s) : decodeBase64(s); + return keepCase ? value : value.toLowerCase(); + } + function getStringParam(attrs, name, def, keepCase = false) { + const param = attrs[name]; + if (param != null) { + return parseStringParam(param.s, keepCase); + } + return def; + } + function getBoolParam(attrs, name, def) { + const param = attrs[name]; + return param ? param.b : def; + } + function getNumberParam(attrs, name, def) { + const param = attrs[name] || {}; + const value = param["i"] != null ? param["i"] : param["f"] != null ? param["f"] : def; + return typeof value === "number" ? value : parseInt(value, 10); + } + function parseDtypeParam(value) { + if (typeof value === "string") { + value = DataType[value]; + } + switch (value) { + case DataType.DT_FLOAT: + return "float32"; + case DataType.DT_INT32: + case DataType.DT_INT64: + case DataType.DT_INT8: + case DataType.DT_UINT8: + return "int32"; + case DataType.DT_BOOL: + return "bool"; + case DataType.DT_DOUBLE: + return "float32"; + case DataType.DT_STRING: + return "string"; + default: + return null; + } + } + function getFuncParam(attrs, name, def) { + const param = attrs[name]; + if (param && param.func) { + return param.func.name; + } + return def; + } + function getDtypeParam(attrs, name, def) { + const param = attrs[name]; + if (param && param.type) { + return parseDtypeParam(param.type); + } + return def; + } + function getDtypeArrayParam(attrs, name, def) { + const param = attrs[name]; + if (param && param.list && param.list.type) { + return param.list.type.map((v) => parseDtypeParam(v)); + } + return def; + } + function parseTensorShapeParam(shape) { + if (shape.unknownRank) { + return void 0; + } + if (shape.dim != null) { + return shape.dim.map((dim) => typeof dim.size === "number" ? dim.size : parseInt(dim.size, 10)); + } + return []; + } + function getTensorShapeParam(attrs, name, def) { + const param = attrs[name]; + if (param && param.shape) { + return parseTensorShapeParam(param.shape); + } + return def; + } + function getNumericArrayParam(attrs, name, def) { + const param = attrs[name]; + if (param) { + return ((param.list.f && param.list.f.length ? param.list.f : param.list.i) || []).map((v) => typeof v === "number" ? v : parseInt(v, 10)); + } + return def; + } + function getStringArrayParam(attrs, name, def, keepCase = false) { + const param = attrs[name]; + if (param && param.list && param.list.s) { + return param.list.s.map((v) => { + return parseStringParam(v, keepCase); + }); + } + return def; + } + function getTensorShapeArrayParam(attrs, name, def) { + const param = attrs[name]; + if (param && param.list && param.list.shape) { + return param.list.shape.map((v) => { + return parseTensorShapeParam(v); + }); + } + return def; + } + function getBoolArrayParam(attrs, name, def) { + const param = attrs[name]; + if (param && param.list && param.list.b) { + return param.list.b; + } + return def; + } + + // node_modules/@tensorflow/tfjs-converter/dist/operations/custom_op/node_value_impl.js + /** + * @license + * Copyright 2019 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class NodeValueImpl { + constructor(node, tensorMap, context) { + this.node = node; + this.tensorMap = tensorMap; + this.context = context; + this.inputs = []; + this.attrs = {}; + this.inputs = node.inputNames.map((name) => this.getInput(name)); + if (node.rawAttrs != null) { + this.attrs = Object.keys(node.rawAttrs).reduce((attrs, key) => { + attrs[key] = this.getAttr(key); + return attrs; + }, {}); + } + } + getInput(name) { + return getTensor(name, this.tensorMap, this.context); + } + getAttr(name, defaultValue) { + const value = this.node.rawAttrs[name]; + if (value.tensor != null) { + return getTensor(name, this.tensorMap, this.context); + } + if (value.i != null || value.f != null) { + return getNumberParam(this.node.rawAttrs, name, defaultValue); + } + if (value.s != null) { + return getStringParam(this.node.rawAttrs, name, defaultValue); + } + if (value.b != null) { + return getBoolParam(this.node.rawAttrs, name, defaultValue); + } + if (value.shape != null) { + return getTensorShapeParam(this.node.rawAttrs, name, defaultValue); + } + if (value.type != null) { + return getDtypeParam(this.node.rawAttrs, name, defaultValue); + } + if (value.list != null) { + if (value.list.i != null || value.list.f != null) { + return getNumericArrayParam(this.node.rawAttrs, name, defaultValue); + } + if (value.list.s != null) { + return getStringArrayParam(this.node.rawAttrs, name, defaultValue); + } + if (value.list.shape != null) { + return getTensorShapeArrayParam(this.node.rawAttrs, name, defaultValue); + } + if (value.list.b != null) { + return getBoolArrayParam(this.node.rawAttrs, name, defaultValue); + } + if (value.list.type != null) { + return getDtypeArrayParam(this.node.rawAttrs, name, defaultValue); + } + } + return defaultValue; + } + } + + // node_modules/@tensorflow/tfjs-converter/dist/operations/executors/arithmetic_executor.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const executeOp = (node, tensorMap, context) => { + switch (node.op) { + case "BiasAdd": + case "AddV2": + case "Add": { + return [add2(getParamValue("a", node, tensorMap, context), getParamValue("b", node, tensorMap, context))]; + } + case "AddN": { + return [addN(getParamValue("tensors", node, tensorMap, context))]; + } + case "FloorMod": + case "Mod": + return [mod(getParamValue("a", node, tensorMap, context), getParamValue("b", node, tensorMap, context))]; + case "Mul": + return [mul(getParamValue("a", node, tensorMap, context), getParamValue("b", node, tensorMap, context))]; + case "RealDiv": + case "Div": { + return [div(getParamValue("a", node, tensorMap, context), getParamValue("b", node, tensorMap, context))]; + } + case "DivNoNan": { + return [divNoNan(getParamValue("a", node, tensorMap, context), getParamValue("b", node, tensorMap, context))]; + } + case "FloorDiv": { + return [floorDiv(getParamValue("a", node, tensorMap, context), getParamValue("b", node, tensorMap, context))]; + } + case "Sub": { + return [sub(getParamValue("a", node, tensorMap, context), getParamValue("b", node, tensorMap, context))]; + } + case "Minimum": { + return [minimum(getParamValue("a", node, tensorMap, context), getParamValue("b", node, tensorMap, context))]; + } + case "Maximum": { + return [maximum(getParamValue("a", node, tensorMap, context), getParamValue("b", node, tensorMap, context))]; + } + case "Pow": { + return [pow(getParamValue("a", node, tensorMap, context), getParamValue("b", node, tensorMap, context))]; + } + case "SquaredDifference": { + return [squaredDifference(getParamValue("a", node, tensorMap, context), getParamValue("b", node, tensorMap, context))]; + } + default: + throw TypeError(`Node type ${node.op} is not implemented`); + } + }; + + // node_modules/@tensorflow/tfjs-converter/dist/operations/executors/basic_math_executor.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const executeOp2 = (node, tensorMap, context) => { + switch (node.op) { + case "Abs": + case "ComplexAbs": + return [abs(getParamValue("x", node, tensorMap, context))]; + case "Acos": + return [acos(getParamValue("x", node, tensorMap, context))]; + case "Acosh": + return [acosh(getParamValue("x", node, tensorMap, context))]; + case "Asin": + return [asin(getParamValue("x", node, tensorMap, context))]; + case "Asinh": + return [asinh(getParamValue("x", node, tensorMap, context))]; + case "Atan": + return [atan(getParamValue("x", node, tensorMap, context))]; + case "Atan2": + return [atan2(getParamValue("x", node, tensorMap, context), getParamValue("y", node, tensorMap, context))]; + case "Atanh": + return [atanh(getParamValue("x", node, tensorMap, context))]; + case "Ceil": + return [ceil(getParamValue("x", node, tensorMap, context))]; + case "Complex": + return [complex(getParamValue("real", node, tensorMap, context), getParamValue("imag", node, tensorMap, context))]; + case "Cos": + return [cos(getParamValue("x", node, tensorMap, context))]; + case "Cosh": + return [cosh(getParamValue("x", node, tensorMap, context))]; + case "Elu": + return [elu(getParamValue("x", node, tensorMap, context))]; + case "Erf": + return [erf(getParamValue("x", node, tensorMap, context))]; + case "Exp": + return [exp(getParamValue("x", node, tensorMap, context))]; + case "Expm1": { + return [expm1(getParamValue("x", node, tensorMap, context))]; + } + case "Floor": + return [floor(getParamValue("x", node, tensorMap, context))]; + case "Log": + return [log(getParamValue("x", node, tensorMap, context))]; + case "Log1p": { + return [log1p(getParamValue("x", node, tensorMap, context))]; + } + case "Imag": + return [imag(getParamValue("x", node, tensorMap, context))]; + case "Neg": + return [neg(getParamValue("x", node, tensorMap, context))]; + case "Reciprocal": { + return [reciprocal(getParamValue("x", node, tensorMap, context))]; + } + case "Real": + return [real(getParamValue("x", node, tensorMap, context))]; + case "Relu": + return [relu(getParamValue("x", node, tensorMap, context))]; + case "Round": { + return [round(getParamValue("x", node, tensorMap, context))]; + } + case "Selu": + return [selu(getParamValue("x", node, tensorMap, context))]; + case "Sigmoid": + return [sigmoid(getParamValue("x", node, tensorMap, context))]; + case "Sin": + return [sin(getParamValue("x", node, tensorMap, context))]; + case "Sign": { + return [sign(getParamValue("x", node, tensorMap, context))]; + } + case "Sinh": { + return [sinh(getParamValue("x", node, tensorMap, context))]; + } + case "Softplus": { + return [softplus(getParamValue("x", node, tensorMap, context))]; + } + case "Sqrt": { + return [sqrt(getParamValue("x", node, tensorMap, context))]; + } + case "Square": { + return [square(getParamValue("x", node, tensorMap, context))]; + } + case "Tanh": { + return [tanh2(getParamValue("x", node, tensorMap, context))]; + } + case "Tan": + return [tan(getParamValue("x", node, tensorMap, context))]; + case "Relu6": + case "ClipByValue": + return [clipByValue(getParamValue("x", node, tensorMap, context), getParamValue("clipValueMin", node, tensorMap, context), getParamValue("clipValueMax", node, tensorMap, context))]; + case "Rsqrt": + return [rsqrt(getTensor(node.inputNames[0], tensorMap, context))]; + case "Prod": + return [prod(getParamValue("x", node, tensorMap, context), getParamValue("axes", node, tensorMap, context))]; + case "LeakyRelu": + return [leakyRelu(getParamValue("x", node, tensorMap, context), getParamValue("alpha", node, tensorMap, context))]; + case "Prelu": + return [prelu(getParamValue("x", node, tensorMap, context), getParamValue("alpha", node, tensorMap, context))]; + default: + throw TypeError(`Node type ${node.op} is not implemented`); + } + }; + + // node_modules/@tensorflow/tfjs-converter/dist/executor/tensor_utils.js + /** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + function assertShapesMatchAllowUndefinedSize(shapeA, shapeB, errorMessagePrefix = "") { + util_exports.assert(shapesEqualAllowUndefinedSize(shapeA, shapeB), () => errorMessagePrefix + ` Shapes ${shapeA} and ${shapeB} must match`); + } + function shapesEqualAllowUndefinedSize(n1, n2) { + if (n1.length !== n2.length) { + return false; + } + for (let i = 0; i < n1.length; i++) { + if (n1[i] !== -1 && n2[i] !== -1 && n1[i] !== n2[i]) { + return false; + } + } + return true; + } + + // node_modules/@tensorflow/tfjs-converter/dist/executor/tensor_array.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class TensorArray { + constructor(name, dtype, maxSize, elementShape, identicalElementShapes, dynamicSize, clearAfterRead) { + this.name = name; + this.dtype = dtype; + this.maxSize = maxSize; + this.elementShape = elementShape; + this.identicalElementShapes = identicalElementShapes; + this.dynamicSize = dynamicSize; + this.clearAfterRead = clearAfterRead; + this.tensors = []; + this.closed_ = false; + this.idTensor = scalar(0); + keep(this.idTensor); + } + get id() { + return this.idTensor.id; + } + get closed() { + return this.closed_; + } + clearAndClose() { + this.tensors.forEach((tensor17) => tensor17.tensor.dispose()); + this.tensors = []; + this.closed_ = true; + this.idTensor.dispose(); + } + size() { + return this.tensors.length; + } + read(index) { + if (this.closed_) { + throw new Error(`TensorArray ${this.name} has already been closed.`); + } + if (index < 0 || index >= this.size()) { + throw new Error(`Tried to read from index ${index}, but array size is: ${this.size()}`); + } + const tensorWithState = this.tensors[index]; + if (tensorWithState.cleared) { + throw new Error(`TensorArray ${this.name}: Could not read index ${index} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`); + } + if (this.clearAfterRead) { + tensorWithState.cleared = true; + } + tensorWithState.read = true; + return tensorWithState.tensor; + } + readMany(indices) { + return indices.map((index) => this.read(index)); + } + write(index, tensor17) { + if (this.closed_) { + throw new Error(`TensorArray ${this.name} has already been closed.`); + } + if (index < 0 || !this.dynamicSize && index >= this.maxSize) { + throw new Error(`Tried to write to index ${index}, but array is not resizeable and size is: ${this.maxSize}`); + } + const t = this.tensors[index] || {}; + if (tensor17.dtype !== this.dtype) { + throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${index}, + because the value dtype is ${tensor17.dtype}, but TensorArray dtype is ${this.dtype}.`); + } + if (this.size() === 0 && (this.elementShape == null || this.elementShape.length === 0)) { + this.elementShape = tensor17.shape; + } + assertShapesMatchAllowUndefinedSize(this.elementShape, tensor17.shape, `TensorArray ${this.name}: Could not write to TensorArray index ${index}.`); + if (t.read) { + throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${index}, because it has already been read.`); + } + if (t.written) { + throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${index}, because it has already been written.`); + } + t.tensor = tensor17; + keep(tensor17); + t.written = true; + this.tensors[index] = t; + } + writeMany(indices, tensors) { + if (indices.length !== tensors.length) { + throw new Error(`TensorArray ${this.name}: could not write multiple tensors,because the index size: ${indices.length} is not the same as tensors size: ${tensors.length}.`); + } + indices.forEach((i, index) => this.write(i, tensors[index])); + } + gather(indices, dtype) { + if (!!dtype && dtype !== this.dtype) { + throw new Error(`TensorArray dtype is ${this.dtype} but gather requested dtype ${dtype}`); + } + if (!indices) { + indices = []; + for (let i = 0; i < this.size(); i++) { + indices.push(i); + } + } else { + indices = indices.slice(0, this.size()); + } + if (indices.length === 0) { + return tensor5([], [0].concat(this.elementShape)); + } + const tensors = this.readMany(indices); + assertShapesMatchAllowUndefinedSize(this.elementShape, tensors[0].shape, "TensorArray shape mismatch: "); + return stack(tensors, 0); + } + concat(dtype) { + if (!!dtype && dtype !== this.dtype) { + throw new Error(`TensorArray dtype is ${this.dtype} but concat requested dtype ${dtype}`); + } + if (this.size() === 0) { + return tensor5([], [0].concat(this.elementShape)); + } + const indices = []; + for (let i = 0; i < this.size(); i++) { + indices.push(i); + } + const tensors = this.readMany(indices); + assertShapesMatchAllowUndefinedSize(this.elementShape, tensors[0].shape, `TensorArray shape mismatch: tensor array shape (${this.elementShape}) vs first tensor shape (${tensors[0].shape})`); + return concat(tensors, 0); + } + scatter(indices, tensor17) { + if (tensor17.dtype !== this.dtype) { + throw new Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${tensor17.dtype}`); + } + if (indices.length !== tensor17.shape[0]) { + throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${indices.length} vs. ${tensor17.shape[0]}`); + } + const maxIndex = Math.max(...indices); + if (!this.dynamicSize && maxIndex >= this.maxSize) { + throw new Error(`Max index must be < array size (${maxIndex} vs. ${this.maxSize})`); + } + this.writeMany(indices, unstack(tensor17, 0)); + } + split(length, tensor17) { + if (tensor17.dtype !== this.dtype) { + throw new Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${tensor17.dtype}`); + } + let totalLength = 0; + const cumulativeLengths = length.map((len) => { + totalLength += len; + return totalLength; + }); + if (totalLength !== tensor17.shape[0]) { + throw new Error(`Expected sum of lengths to be equal to + tensor.shape[0], but sum of lengths is + ${totalLength}, and tensor's shape is: ${tensor17.shape}`); + } + if (!this.dynamicSize && length.length !== this.maxSize) { + throw new Error(`TensorArray's size is not equal to the size of lengths (${this.maxSize} vs. ${length.length}), and the TensorArray is not marked as dynamically resizeable`); + } + const elementPerRow = totalLength === 0 ? 0 : tensor17.size / totalLength; + const tensors = []; + tidy(() => { + tensor17 = tensor17.reshape([1, totalLength, elementPerRow]); + for (let i = 0; i < length.length; ++i) { + const previousLength = i === 0 ? 0 : cumulativeLengths[i - 1]; + const indices2 = [0, previousLength, 0]; + const sizes = [1, length[i], elementPerRow]; + tensors[i] = slice(tensor17, indices2, sizes).reshape(this.elementShape); + } + return tensors; + }); + const indices = []; + for (let i = 0; i < length.length; i++) { + indices[i] = i; + } + this.writeMany(indices, tensors); + } + } + + // node_modules/@tensorflow/tfjs-converter/dist/executor/tensor_list.js + /** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class TensorList { + constructor(tensors, elementShape, elementDtype, maxNumElements = -1) { + this.tensors = tensors; + this.elementShape = elementShape; + this.elementDtype = elementDtype; + if (tensors != null) { + tensors.forEach((tensor17) => { + if (elementDtype !== tensor17.dtype) { + throw new Error(`Invalid data types; op elements ${elementDtype}, but list elements ${tensor17.dtype}`); + } + assertShapesMatchAllowUndefinedSize(elementShape, tensor17.shape, "TensorList shape mismatch: "); + keep(tensor17); + }); + } + this.idTensor = scalar(0); + this.maxNumElements = maxNumElements; + keep(this.idTensor); + } + get id() { + return this.idTensor.id; + } + copy() { + return new TensorList([...this.tensors], this.elementShape, this.elementDtype); + } + clearAndClose() { + this.tensors.forEach((tensor17) => tensor17.dispose()); + this.tensors.length = 0; + this.idTensor.dispose(); + } + size() { + return this.tensors.length; + } + stack(elementShape, elementDtype, numElements = -1) { + if (elementDtype !== this.elementDtype) { + throw new Error(`Invalid data types; op elements ${elementDtype}, but list elements ${this.elementDtype}`); + } + if (numElements !== -1 && this.tensors.length !== numElements) { + throw new Error(`Operation expected a list with ${numElements} elements but got a list with ${this.tensors.length} elements.`); + } + assertShapesMatchAllowUndefinedSize(elementShape, this.elementShape, "TensorList shape mismatch: "); + return tidy(() => { + const reshapedTensors = this.tensors.map((tensor17) => tensor17.reshape(elementShape)); + return stack(reshapedTensors, 0); + }); + } + popBack(elementShape, elementDtype) { + if (elementDtype !== this.elementDtype) { + throw new Error(`Invalid data types; op elements ${elementDtype}, but list elements ${this.elementDtype}`); + } + if (this.size() === 0) { + throw new Error("Trying to pop from an empty list."); + } + const tensor17 = this.tensors.pop(); + assertShapesMatchAllowUndefinedSize(tensor17.shape, elementShape, "TensorList shape mismatch: "); + return tensor17.reshape(elementShape); + } + pushBack(tensor17) { + if (tensor17.dtype !== this.elementDtype) { + throw new Error(`Invalid data types; op elements ${tensor17.dtype}, but list elements ${this.elementDtype}`); + } + assertShapesMatchAllowUndefinedSize(tensor17.shape, this.elementShape, "TensorList shape mismatch: "); + if (this.maxNumElements === this.size()) { + throw new Error(`Trying to push element into a full list.`); + } + keep(tensor17); + this.tensors.push(tensor17); + } + resize(size) { + if (size < 0) { + throw new Error(`TensorListResize expects size to be non-negative. Got: ${size}`); + } + if (this.maxNumElements !== -1 && size > this.maxNumElements) { + throw new Error(`TensorListResize input size ${size} is greater maxNumElement ${this.maxNumElements}.`); + } + this.tensors.length = size; + } + getItem(elementIndex, elementShape, elementDtype) { + if (elementDtype !== this.elementDtype) { + throw new Error(`Invalid data types; op elements ${elementDtype}, but list elements ${this.elementDtype}`); + } + if (elementIndex < 0 || elementIndex > this.tensors.length) { + throw new Error(`Trying to access element ${elementIndex} in a list with ${this.tensors.length} elements.`); + } + if (this.tensors[elementIndex] == null) { + throw new Error(`element at index ${elementIndex} is null.`); + } + assertShapesMatchAllowUndefinedSize(this.tensors[elementIndex].shape, elementShape, "TensorList shape mismatch: "); + return this.tensors[elementIndex]; + } + setItem(elementIndex, tensor17) { + if (tensor17.dtype !== this.elementDtype) { + throw new Error(`Invalid data types; op elements ${tensor17.dtype}, but list elements ${this.elementDtype}`); + } + if (elementIndex < 0 || this.maxNumElements !== -1 && elementIndex >= this.maxNumElements) { + throw new Error(`Trying to set element ${elementIndex} in a list with max ${this.maxNumElements} elements.`); + } + assertShapesMatchAllowUndefinedSize(this.elementShape, tensor17.shape, "TensorList shape mismatch: "); + keep(tensor17); + this.tensors[elementIndex] = tensor17; + } + gather(indices, elementDtype, elementShape) { + if (elementDtype !== this.elementDtype) { + throw new Error(`Invalid data types; op elements ${elementDtype}, but list elements ${this.elementDtype}`); + } + assertShapesMatchAllowUndefinedSize(this.elementShape, elementShape, "TensorList shape mismatch: "); + indices = indices.slice(0, this.size()); + if (indices.length === 0) { + return tensor5([], [0].concat(this.elementShape)); + } + return tidy(() => { + const tensors = indices.map((i) => this.tensors[i].reshape(elementShape)); + return stack(tensors, 0); + }); + } + concat(elementDtype, elementShape) { + if (!!elementDtype && elementDtype !== this.elementDtype) { + throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${elementDtype}`); + } + assertShapesMatchAllowUndefinedSize(this.elementShape, elementShape, "TensorList shape mismatch: "); + if (this.size() === 0) { + return tensor5([], [0].concat(this.elementShape)); + } + return tidy(() => { + const tensors = this.tensors.map((t) => t.reshape(elementShape)); + return concat(tensors, 0); + }); + } + } + function fromTensor(tensor17, elementShape, elementDtype) { + const dtype = tensor17.dtype; + if (tensor17.shape.length < 1) { + throw new Error(`Tensor must be at least a vector, but saw shape: ${tensor17.shape}`); + } + if (tensor17.dtype !== elementDtype) { + throw new Error(`Invalid data types; op elements ${tensor17.dtype}, but list elements ${elementDtype}`); + } + const outputShape = tensor17.shape.slice(1); + assertShapesMatchAllowUndefinedSize(outputShape, elementShape, "TensorList shape mismatch: "); + const tensorList = tensor17.unstack(); + return new TensorList(tensorList, elementShape, dtype); + } + function reserve(elementShape, elementDtype, numElements) { + return new TensorList([], elementShape, elementDtype, numElements); + } + function scatter(tensor17, indices, elementShape, numElements) { + if (indices.length !== tensor17.shape[0]) { + throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${indices.length} vs. ${tensor17.shape[0]}`); + } + const maxIndex = Math.max(...indices); + if (numElements != null && numElements !== -1 && maxIndex >= numElements) { + throw new Error(`Max index must be < array size (${maxIndex} vs. ${numElements})`); + } + const list = new TensorList([], elementShape, tensor17.dtype, numElements); + const tensors = unstack(tensor17, 0); + indices.forEach((value, index) => { + list.setItem(value, tensors[index]); + }); + return list; + } + function split7(tensor17, length, elementShape) { + let totalLength = 0; + const cumulativeLengths = length.map((len) => { + totalLength += len; + return totalLength; + }); + if (totalLength !== tensor17.shape[0]) { + throw new Error(`Expected sum of lengths to be equal to + tensor.shape[0], but sum of lengths is + ${totalLength}, and tensor's shape is: ${tensor17.shape}`); + } + const elementPerRow = totalLength === 0 ? 0 : tensor17.size / totalLength; + const tensors = tidy(() => { + const tensors2 = []; + tensor17 = tensor17.reshape([1, totalLength, elementPerRow]); + for (let i = 0; i < length.length; ++i) { + const previousLength = i === 0 ? 0 : cumulativeLengths[i - 1]; + const indices = [0, previousLength, 0]; + const sizes = [1, length[i], elementPerRow]; + tensors2[i] = slice(tensor17, indices, sizes).reshape(elementShape); + } + tensor17.dispose(); + return tensors2; + }); + const list = new TensorList([], elementShape, tensor17.dtype, length.length); + for (let i = 0; i < tensors.length; i++) { + list.setItem(i, tensors[i]); + } + return list; + } + + // node_modules/@tensorflow/tfjs-converter/dist/operations/executors/control_executor.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const executeOp3 = async (node, tensorMap, context) => { + switch (node.op) { + case "If": + case "StatelessIf": { + const thenFunc = getParamValue("thenBranch", node, tensorMap, context); + const elseFunc = getParamValue("elseBranch", node, tensorMap, context); + const cond = getParamValue("cond", node, tensorMap, context); + const args = getParamValue("args", node, tensorMap, context); + const condValue = await cond.data(); + if (condValue[0]) { + return context.functionMap[thenFunc].executeFunctionAsync(args, context.tensorArrayMap, context.tensorListMap); + } else { + return context.functionMap[elseFunc].executeFunctionAsync(args, context.tensorArrayMap, context.tensorListMap); + } + } + case "While": + case "StatelessWhile": { + const bodyFunc = getParamValue("body", node, tensorMap, context); + const condFunc = getParamValue("cond", node, tensorMap, context); + const args = getParamValue("args", node, tensorMap, context); + const condResult = await context.functionMap[condFunc].executeFunctionAsync(args, context.tensorArrayMap, context.tensorListMap); + const argIds = args.map((tensor17) => tensor17.id); + let condValue = await condResult[0].data(); + condResult.forEach((tensor17) => { + if (!tensor17.kept && argIds.indexOf(tensor17.id) === -1) { + tensor17.dispose(); + } + }); + let result = args; + while (condValue[0]) { + const origResult = result; + result = await context.functionMap[bodyFunc].executeFunctionAsync(result, context.tensorArrayMap, context.tensorListMap); + const resultIds = result.map((tensor17) => tensor17.id); + origResult.forEach((tensor17) => { + if (!tensor17.kept && argIds.indexOf(tensor17.id) === -1 && resultIds.indexOf(tensor17.id) === -1) { + tensor17.dispose(); + } + }); + const condResult2 = await context.functionMap[condFunc].executeFunctionAsync(result, context.tensorArrayMap, context.tensorListMap); + condValue = await condResult2[0].data(); + condResult2.forEach((tensor17) => { + if (!tensor17.kept && argIds.indexOf(tensor17.id) === -1 && resultIds.indexOf(tensor17.id) === -1) { + tensor17.dispose(); + } + }); + } + return result; + } + case "LoopCond": { + const pred = getParamValue("pred", node, tensorMap, context); + return [cloneTensor(pred)]; + } + case "Switch": { + const pred = getParamValue("pred", node, tensorMap, context); + let data = getParamValue("data", node, tensorMap, context); + if (!data.kept) { + data = cloneTensor(data); + } + return (await pred.data())[0] ? [void 0, data] : [data, void 0]; + } + case "Merge": { + const inputName = node.inputNames.find((name) => getTensor(name, tensorMap, context) !== void 0); + if (inputName) { + const data = getTensor(inputName, tensorMap, context); + return [cloneTensor(data)]; + } + return void 0; + } + case "Enter": { + const frameId = getParamValue("frameName", node, tensorMap, context); + const data = getParamValue("tensor", node, tensorMap, context); + context.enterFrame(frameId); + return [cloneTensor(data)]; + } + case "Exit": { + const data = getParamValue("tensor", node, tensorMap, context); + context.exitFrame(); + return [cloneTensor(data)]; + } + case "NextIteration": { + const data = getParamValue("tensor", node, tensorMap, context); + context.nextIteration(); + return [cloneTensor(data)]; + } + case "TensorArrayV3": { + const size = getParamValue("size", node, tensorMap, context); + const dtype = getParamValue("dtype", node, tensorMap, context); + const elementShape = getParamValue("elementShape", node, tensorMap, context); + const dynamicSize = getParamValue("dynamicSize", node, tensorMap, context); + const clearAfterRead = getParamValue("clearAfterRead", node, tensorMap, context); + const identicalElementShapes = getParamValue("identicalElementShapes", node, tensorMap, context); + const name = getParamValue("name", node, tensorMap, context); + const tensorArray = new TensorArray(name, dtype, size, elementShape, identicalElementShapes, dynamicSize, clearAfterRead); + context.addTensorArray(tensorArray); + return [tensorArray.idTensor, scalar(1)]; + } + case "TensorArrayWriteV3": { + const id = getParamValue("tensorArrayId", node, tensorMap, context); + const index = getParamValue("index", node, tensorMap, context); + const writeTensor = getParamValue("tensor", node, tensorMap, context); + const writeTensorArray = context.getTensorArray(id.id); + writeTensorArray.write(index, writeTensor); + return [writeTensorArray.idTensor]; + } + case "TensorArrayReadV3": { + const readId = getParamValue("tensorArrayId", node, tensorMap, context); + const readIndex = getParamValue("index", node, tensorMap, context); + const readTensorArray = context.getTensorArray(readId.id); + return [readTensorArray.read(readIndex)]; + } + case "TensorArrayGatherV3": { + const gatherId = getParamValue("tensorArrayId", node, tensorMap, context); + const gatherIndices = getParamValue("indices", node, tensorMap, context); + const gatherDtype = getParamValue("dtype", node, tensorMap, context); + const gatherTensorArray = context.getTensorArray(gatherId.id); + return [gatherTensorArray.gather(gatherIndices, gatherDtype)]; + } + case "TensorArrayScatterV3": { + const scatterId = getParamValue("tensorArrayId", node, tensorMap, context); + const scatterIndices = getParamValue("indices", node, tensorMap, context); + const scatterTensor = getParamValue("tensor", node, tensorMap, context); + const scatterTensorArray = context.getTensorArray(scatterId.id); + scatterTensorArray.scatter(scatterIndices, scatterTensor); + return [scatterTensorArray.idTensor]; + } + case "TensorArrayConcatV3": { + const concatId = getParamValue("tensorArrayId", node, tensorMap, context); + const concatTensorArray = context.getTensorArray(concatId.id); + const concatDtype = getParamValue("dtype", node, tensorMap, context); + return [concatTensorArray.concat(concatDtype)]; + } + case "TensorArraySplitV3": { + const splitId = getParamValue("tensorArrayId", node, tensorMap, context); + const splitTensor = getParamValue("tensor", node, tensorMap, context); + const lengths = getParamValue("lengths", node, tensorMap, context); + const splitTensorArray = context.getTensorArray(splitId.id); + splitTensorArray.split(lengths, splitTensor); + return [splitTensorArray.idTensor]; + } + case "TensorArraySizeV3": { + const sizeId = getParamValue("tensorArrayId", node, tensorMap, context); + const sizeTensorArray = context.getTensorArray(sizeId.id); + return [scalar(sizeTensorArray.size(), "int32")]; + } + case "TensorArrayCloseV3": { + const closeId = getParamValue("tensorArrayId", node, tensorMap, context); + const closeTensorArray = context.getTensorArray(closeId.id); + closeTensorArray.clearAndClose(); + return [closeTensorArray.idTensor]; + } + case "TensorListSetItem": { + const idTensor = getParamValue("tensorListId", node, tensorMap, context); + const index = getParamValue("index", node, tensorMap, context); + const writeTensor = getParamValue("tensor", node, tensorMap, context); + const tensorList = context.getTensorList(idTensor.id); + tensorList.setItem(index, writeTensor); + return [tensorList.idTensor]; + } + case "TensorListGetItem": { + const idTensor = getParamValue("tensorListId", node, tensorMap, context); + const readIndex = getParamValue("index", node, tensorMap, context); + const elementShape = getParamValue("elementShape", node, tensorMap, context); + const elementDType = getParamValue("elementDType", node, tensorMap, context); + const tensorList = context.getTensorList(idTensor.id); + return [tensorList.getItem(readIndex, elementShape, elementDType)]; + } + case "TensorListScatterV2": + case "TensorListScatter": { + const scatterIndices = getParamValue("indices", node, tensorMap, context); + const scatterTensor = getParamValue("tensor", node, tensorMap, context); + const elementShape = getParamValue("elementShape", node, tensorMap, context); + const numElements = getParamValue("numElements", node, tensorMap, context); + const tensorList = scatter(scatterTensor, scatterIndices, elementShape, numElements); + context.addTensorList(tensorList); + return [tensorList.idTensor]; + } + case "TensorListReserve": { + const elementShape = getParamValue("elementShape", node, tensorMap, context); + const elementDtype = getParamValue("elementDType", node, tensorMap, context); + const numElements = getParamValue("numElements", node, tensorMap, context); + const tensorList = reserve(elementShape, elementDtype, numElements); + context.addTensorList(tensorList); + return [tensorList.idTensor]; + } + case "TensorListGather": { + const gatherId = getParamValue("tensorListId", node, tensorMap, context); + const gatherIndices = getParamValue("indices", node, tensorMap, context); + const elementShape = getParamValue("elementShape", node, tensorMap, context); + const elementDtype = getParamValue("elementDType", node, tensorMap, context); + const tensorList = context.getTensorList(gatherId.id); + return [tensorList.gather(gatherIndices, elementDtype, elementShape)]; + } + case "TensorListStack": { + const idTensor = getParamValue("tensorListId", node, tensorMap, context); + const elementShape = getParamValue("elementShape", node, tensorMap, context); + const elementDtype = getParamValue("elementDType", node, tensorMap, context); + const numElements = getParamValue("numElements", node, tensorMap, context); + const tensorList = context.getTensorList(idTensor.id); + return [tensorList.stack(elementShape, elementDtype, numElements)]; + } + case "TensorListFromTensor": { + const tensor17 = getParamValue("tensor", node, tensorMap, context); + const elementShape = getParamValue("elementShape", node, tensorMap, context); + const elementDtype = getParamValue("elementDType", node, tensorMap, context); + const tensorList = fromTensor(tensor17, elementShape, elementDtype); + context.addTensorList(tensorList); + return [tensorList.idTensor]; + } + case "TensorListConcat": { + const concatId = getParamValue("tensorListId", node, tensorMap, context); + const tensorList = context.getTensorList(concatId.id); + const concatDtype = getParamValue("dtype", node, tensorMap, context); + const elementShape = getParamValue("elementShape", node, tensorMap, context); + return [tensorList.concat(concatDtype, elementShape)]; + } + case "TensorListPushBack": { + const idTensor = getParamValue("tensorListId", node, tensorMap, context); + const writeTensor = getParamValue("tensor", node, tensorMap, context); + const tensorList = context.getTensorList(idTensor.id); + tensorList.pushBack(writeTensor); + return [tensorList.idTensor]; + } + case "TensorListPopBack": { + const idTensor = getParamValue("tensorListId", node, tensorMap, context); + const elementShape = getParamValue("elementShape", node, tensorMap, context); + const elementDType = getParamValue("elementDType", node, tensorMap, context); + const tensorList = context.getTensorList(idTensor.id); + return [tensorList.popBack(elementShape, elementDType)]; + } + case "TensorListSplit": { + const splitTensor = getParamValue("tensor", node, tensorMap, context); + const elementShape = getParamValue("elementShape", node, tensorMap, context); + const lengths = getParamValue("lengths", node, tensorMap, context); + const tensorList = split7(splitTensor, lengths, elementShape); + context.addTensorList(tensorList); + return [tensorList.idTensor]; + } + default: + throw TypeError(`Node type ${node.op} is not implemented`); + } + }; + + // node_modules/@tensorflow/tfjs-converter/dist/operations/executors/convolution_executor.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + function fusedConvAndDepthWiseParams(node, tensorMap, context) { + const [extraOp, activationFunc] = getParamValue("fusedOps", node, tensorMap, context); + const isBiasAdd = extraOp === "biasadd"; + const isPrelu = activationFunc === "prelu"; + const isBatchNorm = extraOp === "fusedbatchnorm"; + const numArgs = getParamValue("numArgs", node, tensorMap, context); + if (isBiasAdd) { + if (isPrelu && numArgs !== 2) { + throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha."); + } + if (!isPrelu && numArgs !== 1) { + throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias."); + } + } + if (isBatchNorm) { + throw new Error("FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported."); + } + const stride = getParamValue("strides", node, tensorMap, context); + const pad8 = getPadding(node, tensorMap, context); + const dataFormat = getParamValue("dataFormat", node, tensorMap, context).toUpperCase(); + const dilations = getParamValue("dilations", node, tensorMap, context); + const [biasArg, preluArg] = getParamValue("args", node, tensorMap, context); + return { + stride, + pad: pad8, + dataFormat, + dilations, + biasArg, + preluArg, + activationFunc + }; + } + const executeOp4 = (node, tensorMap, context) => { + switch (node.op) { + case "Conv1D": { + const stride = getParamValue("stride", node, tensorMap, context); + const pad8 = getParamValue("pad", node, tensorMap, context); + const dataFormat = getParamValue("dataFormat", node, tensorMap, context).toUpperCase(); + const dilation = getParamValue("dilation", node, tensorMap, context); + return [conv1d(getParamValue("x", node, tensorMap, context), getParamValue("filter", node, tensorMap, context), stride, pad8, dataFormat, dilation)]; + } + case "Conv2D": { + const stride = getParamValue("strides", node, tensorMap, context); + const pad8 = getPadding(node, tensorMap, context); + const dataFormat = getParamValue("dataFormat", node, tensorMap, context).toUpperCase(); + const dilations = getParamValue("dilations", node, tensorMap, context); + return [conv2d(getParamValue("x", node, tensorMap, context), getParamValue("filter", node, tensorMap, context), [stride[1], stride[2]], pad8, dataFormat, [dilations[1], dilations[2]])]; + } + case "_FusedConv2D": { + const {stride, pad: pad8, dataFormat, dilations, biasArg, preluArg, activationFunc} = fusedConvAndDepthWiseParams(node, tensorMap, context); + return [fused_ops_exports.conv2d({ + x: getParamValue("x", node, tensorMap, context), + filter: getParamValue("filter", node, tensorMap, context), + strides: [stride[1], stride[2]], + pad: pad8, + dataFormat, + dilations: [dilations[1], dilations[2]], + bias: biasArg, + activation: activationFunc, + preluActivationWeights: preluArg + })]; + } + case "FusedDepthwiseConv2dNative": { + const {stride, pad: pad8, dataFormat, dilations, biasArg, preluArg, activationFunc} = fusedConvAndDepthWiseParams(node, tensorMap, context); + return [fused_ops_exports.depthwiseConv2d({ + x: getParamValue("x", node, tensorMap, context), + filter: getParamValue("filter", node, tensorMap, context), + strides: [stride[1], stride[2]], + pad: pad8, + dataFormat, + dilations: [dilations[1], dilations[2]], + bias: biasArg, + activation: activationFunc, + preluActivationWeights: preluArg + })]; + } + case "Conv2DBackpropInput": + case "Conv2dTranspose": { + const shape = getParamValue("outputShape", node, tensorMap, context); + const stride = getParamValue("strides", node, tensorMap, context); + const pad8 = getPadding(node, tensorMap, context); + return [conv2dTranspose(getParamValue("x", node, tensorMap, context), getParamValue("filter", node, tensorMap, context), shape, [stride[1], stride[2]], pad8)]; + } + case "DepthwiseConv2dNative": + case "DepthwiseConv2d": { + const stride = getParamValue("strides", node, tensorMap, context); + const pad8 = getPadding(node, tensorMap, context); + const dilations = getParamValue("dilations", node, tensorMap, context); + const dataFormat = getParamValue("dataFormat", node, tensorMap, context).toUpperCase(); + return [depthwiseConv2d(getParamValue("input", node, tensorMap, context), getParamValue("filter", node, tensorMap, context), [stride[1], stride[2]], pad8, dataFormat, [dilations[1], dilations[2]])]; + } + case "Conv3D": { + const stride = getParamValue("strides", node, tensorMap, context); + const pad8 = getParamValue("pad", node, tensorMap, context); + const dataFormat = getParamValue("dataFormat", node, tensorMap, context).toUpperCase(); + const dilations = getParamValue("dilations", node, tensorMap, context); + return [conv3d(getParamValue("x", node, tensorMap, context), getParamValue("filter", node, tensorMap, context), [stride[1], stride[2], stride[3]], pad8, dataFormat, [dilations[1], dilations[2], dilations[3]])]; + } + case "AvgPool": { + const stride = getParamValue("strides", node, tensorMap, context); + const pad8 = getParamValue("pad", node, tensorMap, context); + const kernelSize = getParamValue("kernelSize", node, tensorMap, context); + return [avgPool(getParamValue("x", node, tensorMap, context), [kernelSize[1], kernelSize[2]], [stride[1], stride[2]], pad8)]; + } + case "MaxPool": { + const stride = getParamValue("strides", node, tensorMap, context); + const pad8 = getParamValue("pad", node, tensorMap, context); + const kernelSize = getParamValue("kernelSize", node, tensorMap, context); + return [maxPool(getParamValue("x", node, tensorMap, context), [kernelSize[1], kernelSize[2]], [stride[1], stride[2]], pad8)]; + } + case "MaxPoolWithArgmax": { + const stride = getParamValue("strides", node, tensorMap, context); + const pad8 = getParamValue("pad", node, tensorMap, context); + const kernelSize = getParamValue("kernelSize", node, tensorMap, context); + const includeBatchInIndex = getParamValue("includeBatchInIndex", node, tensorMap, context); + const {result, indexes} = maxPoolWithArgmax(getParamValue("x", node, tensorMap, context), [kernelSize[1], kernelSize[2]], [stride[1], stride[2]], pad8, includeBatchInIndex); + return [result, indexes]; + } + case "AvgPool3D": { + const stride = getParamValue("strides", node, tensorMap, context); + const pad8 = getParamValue("pad", node, tensorMap, context); + const kernelSize = getParamValue("kernelSize", node, tensorMap, context); + return [avgPool3d(getParamValue("x", node, tensorMap, context), [kernelSize[1], kernelSize[2], kernelSize[3]], [stride[1], stride[2], stride[3]], pad8)]; + } + case "MaxPool3D": { + const stride = getParamValue("strides", node, tensorMap, context); + const pad8 = getParamValue("pad", node, tensorMap, context); + const kernelSize = getParamValue("kernelSize", node, tensorMap, context); + return [maxPool3d(getParamValue("x", node, tensorMap, context), [kernelSize[1], kernelSize[2], kernelSize[3]], [stride[1], stride[2], stride[3]], pad8)]; + } + case "Dilation2D": { + const strides = getParamValue("strides", node, tensorMap, context); + const pad8 = getParamValue("pad", node, tensorMap, context); + const dilations = getParamValue("dilations", node, tensorMap, context); + const strideHeight = strides[1]; + const strideWidth = strides[2]; + const dilationHeight = dilations[1]; + const dilationWidth = dilations[2]; + return [dilation2d(getParamValue("x", node, tensorMap, context), getParamValue("filter", node, tensorMap, context), [strideHeight, strideWidth], pad8, [dilationHeight, dilationWidth], "NHWC")]; + } + default: + throw TypeError(`Node type ${node.op} is not implemented`); + } + }; + + // node_modules/@tensorflow/tfjs-converter/dist/operations/executors/creation_executor.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const executeOp5 = (node, tensorMap, context) => { + switch (node.op) { + case "Fill": { + const shape = getParamValue("shape", node, tensorMap, context); + const dtype = getParamValue("dtype", node, tensorMap, context); + const value = getParamValue("value", node, tensorMap, context); + return [fill(shape, value, dtype)]; + } + case "LinSpace": { + const start = getParamValue("start", node, tensorMap, context); + const stop = getParamValue("stop", node, tensorMap, context); + const num = getParamValue("num", node, tensorMap, context); + return [linspace(start, stop, num)]; + } + case "Multinomial": { + const logits = getParamValue("logits", node, tensorMap, context); + const numSamples = getParamValue("numSamples", node, tensorMap, context); + const seed = getParamValue("seed", node, tensorMap, context); + return [multinomial(logits, numSamples, seed)]; + } + case "OneHot": { + const indices = getParamValue("indices", node, tensorMap, context); + const depth = getParamValue("depth", node, tensorMap, context); + const onValue = getParamValue("onValue", node, tensorMap, context); + const offValue = getParamValue("offValue", node, tensorMap, context); + return [oneHot(indices, depth, onValue, offValue)]; + } + case "Ones": { + return [ones2(getParamValue("shape", node, tensorMap, context), getParamValue("dtype", node, tensorMap, context))]; + } + case "OnesLike": { + return [onesLike(getParamValue("x", node, tensorMap, context))]; + } + case "RandomUniform": { + return [randomUniform(getParamValue("shape", node, tensorMap, context), getParamValue("minval", node, tensorMap, context), getParamValue("maxval", node, tensorMap, context), getParamValue("dtype", node, tensorMap, context))]; + } + case "Range": { + const start = getParamValue("start", node, tensorMap, context); + const stop = getParamValue("stop", node, tensorMap, context); + const step7 = getParamValue("step", node, tensorMap, context); + return [range(start, stop, step7, getParamValue("dtype", node, tensorMap, context))]; + } + case "TruncatedNormal": { + const shape = getParamValue("shape", node, tensorMap, context); + const mean5 = getParamValue("mean", node, tensorMap, context); + const stdDev = getParamValue("stdDev", node, tensorMap, context); + const seed = getParamValue("seed", node, tensorMap, context); + return [truncatedNormal(shape, mean5, stdDev, getParamValue("dtype", node, tensorMap, context), seed)]; + } + case "Zeros": { + return [zeros(getParamValue("shape", node, tensorMap, context), getParamValue("dtype", node, tensorMap, context))]; + } + case "ZerosLike": { + return [zerosLike(getParamValue("x", node, tensorMap, context))]; + } + default: + throw TypeError(`Node type ${node.op} is not implemented`); + } + }; + + // node_modules/@tensorflow/tfjs-converter/dist/operations/executors/dynamic_executor.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + function nmsParams(node, tensorMap, context) { + const boxes = getParamValue("boxes", node, tensorMap, context); + const scores = getParamValue("scores", node, tensorMap, context); + const maxOutputSize = getParamValue("maxOutputSize", node, tensorMap, context); + const iouThreshold = getParamValue("iouThreshold", node, tensorMap, context); + const scoreThreshold = getParamValue("scoreThreshold", node, tensorMap, context); + const softNmsSigma = getParamValue("softNmsSigma", node, tensorMap, context); + return { + boxes, + scores, + maxOutputSize, + iouThreshold, + scoreThreshold, + softNmsSigma + }; + } + const executeOp6 = async (node, tensorMap, context) => { + switch (node.op) { + case "NonMaxSuppressionV5": { + const {boxes, scores, maxOutputSize, iouThreshold, scoreThreshold, softNmsSigma} = nmsParams(node, tensorMap, context); + const result = await image.nonMaxSuppressionWithScoreAsync(boxes, scores, maxOutputSize, iouThreshold, scoreThreshold, softNmsSigma); + return [result.selectedIndices, result.selectedScores]; + } + case "NonMaxSuppressionV4": { + const {boxes, scores, maxOutputSize, iouThreshold, scoreThreshold} = nmsParams(node, tensorMap, context); + const padToMaxOutputSize = getParamValue("padToMaxOutputSize", node, tensorMap, context); + const result = await image.nonMaxSuppressionPaddedAsync(boxes, scores, maxOutputSize, iouThreshold, scoreThreshold, padToMaxOutputSize); + return [result.selectedIndices, result.validOutputs]; + } + case "NonMaxSuppressionV3": + case "NonMaxSuppressionV2": { + const {boxes, scores, maxOutputSize, iouThreshold, scoreThreshold} = nmsParams(node, tensorMap, context); + return [await image.nonMaxSuppressionAsync(boxes, scores, maxOutputSize, iouThreshold, scoreThreshold)]; + } + case "Where": { + const condition = getParamValue("condition", node, tensorMap, context).asType("bool"); + const result = [await whereAsync(condition)]; + condition.dispose(); + return result; + } + case "ListDiff": { + return setdiff1dAsync(getParamValue("x", node, tensorMap, context), getParamValue("y", node, tensorMap, context)); + } + default: + throw TypeError(`Node type ${node.op} is not implemented`); + } + }; + + // node_modules/@tensorflow/tfjs-converter/dist/operations/executors/evaluation_executor.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const executeOp7 = (node, tensorMap, context) => { + switch (node.op) { + case "TopKV2": { + const x = getParamValue("x", node, tensorMap, context); + const k = getParamValue("k", node, tensorMap, context); + const sorted = getParamValue("sorted", node, tensorMap, context); + const result = topk(x, k, sorted); + return [result.values, result.indices]; + } + default: + throw TypeError(`Node type ${node.op} is not implemented`); + } + }; + + // node_modules/@tensorflow/tfjs-converter/dist/operations/executors/graph_executor.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const executeOp8 = (node, tensorMap, context) => { + switch (node.op) { + case "Const": { + return tensorMap[node.name]; + } + case "PlaceholderWithDefault": + const def = getParamValue("default", node, tensorMap, context); + return [getTensor(node.name, tensorMap, context) || def]; + case "Placeholder": + return [getTensor(node.name, tensorMap, context)]; + case "Identity": + case "StopGradient": + case "FakeQuantWithMinMaxVars": { + const data2 = getParamValue("x", node, tensorMap, context); + return [cloneTensor(data2)]; + } + case "IdentityN": + return getParamValue("x", node, tensorMap, context).map((t) => cloneTensor(t)); + case "Snapshot": + const snapshot = getParamValue("x", node, tensorMap, context); + return [cloneTensor(snapshot)]; + case "Shape": + return [tensor1d(getParamValue("x", node, tensorMap, context).shape, "int32")]; + case "ShapeN": + return getParamValue("x", node, tensorMap, context).map((t) => tensor1d(t.shape)); + case "Size": + return [scalar(getParamValue("x", node, tensorMap, context).size, "int32")]; + case "Rank": + return [scalar(getParamValue("x", node, tensorMap, context).rank, "int32")]; + case "NoOp": + return [scalar(1)]; + case "Print": + const input2 = getParamValue("x", node, tensorMap, context); + const data = getParamValue("data", node, tensorMap, context); + const message = getParamValue("message", node, tensorMap, context); + const summarize = getParamValue("summarize", node, tensorMap, context); + console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."); + console.log(message); + for (let i = 0; i < data.length; i++) { + console.log(Array.prototype.slice.call(data[i].dataSync()).slice(0, summarize)); + } + return [input2]; + default: + throw TypeError(`Node type ${node.op} is not implemented`); + } + }; + + // node_modules/@tensorflow/tfjs-converter/dist/operations/executors/image_executor.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const executeOp9 = (node, tensorMap, context) => { + switch (node.op) { + case "ResizeBilinear": { + const images = getParamValue("images", node, tensorMap, context); + const size = getParamValue("size", node, tensorMap, context); + const alignCorners = getParamValue("alignCorners", node, tensorMap, context); + return [image.resizeBilinear(images, [size[0], size[1]], alignCorners)]; + } + case "ResizeNearestNeighbor": { + const images = getParamValue("images", node, tensorMap, context); + const size = getParamValue("size", node, tensorMap, context); + const alignCorners = getParamValue("alignCorners", node, tensorMap, context); + return [image.resizeNearestNeighbor(images, [size[0], size[1]], alignCorners)]; + } + case "CropAndResize": { + const image3 = getParamValue("image", node, tensorMap, context); + const boxes = getParamValue("boxes", node, tensorMap, context); + const boxInd = getParamValue("boxInd", node, tensorMap, context); + const cropSize = getParamValue("cropSize", node, tensorMap, context); + const method = getParamValue("method", node, tensorMap, context); + const extrapolationValue = getParamValue("extrapolationValue", node, tensorMap, context); + return [image.cropAndResize(image3, boxes, boxInd, cropSize, method, extrapolationValue)]; + } + default: + throw TypeError(`Node type ${node.op} is not implemented`); + } + }; + + // node_modules/@tensorflow/tfjs-converter/dist/operations/executors/logical_executor.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const executeOp10 = (node, tensorMap, context) => { + switch (node.op) { + case "Equal": { + return [equal(getParamValue("a", node, tensorMap, context), getParamValue("b", node, tensorMap, context))]; + } + case "NotEqual": { + return [notEqual(getParamValue("a", node, tensorMap, context), getParamValue("b", node, tensorMap, context))]; + } + case "Greater": { + return [greater(getParamValue("a", node, tensorMap, context), getParamValue("b", node, tensorMap, context))]; + } + case "GreaterEqual": { + return [greaterEqual(getParamValue("a", node, tensorMap, context), getParamValue("b", node, tensorMap, context))]; + } + case "Less": { + return [less(getParamValue("a", node, tensorMap, context), getParamValue("b", node, tensorMap, context))]; + } + case "LessEqual": { + return [lessEqual(getParamValue("a", node, tensorMap, context), getParamValue("b", node, tensorMap, context))]; + } + case "LogicalAnd": { + return [logicalAnd(getParamValue("a", node, tensorMap, context), getParamValue("b", node, tensorMap, context))]; + } + case "LogicalNot": { + return [logicalNot(getParamValue("a", node, tensorMap, context))]; + } + case "LogicalOr": { + return [logicalOr(getParamValue("a", node, tensorMap, context), getParamValue("b", node, tensorMap, context))]; + } + case "Select": + case "SelectV2": { + return [where(getParamValue("condition", node, tensorMap, context), getParamValue("a", node, tensorMap, context), getParamValue("b", node, tensorMap, context))]; + } + default: + throw TypeError(`Node type ${node.op} is not implemented`); + } + }; + + // node_modules/@tensorflow/tfjs-converter/dist/operations/executors/matrices_executor.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const executeOp11 = (node, tensorMap, context) => { + switch (node.op) { + case "BatchMatMul": + case "BatchMatMulV2": + case "MatMul": + return [matMul(getParamValue("a", node, tensorMap, context), getParamValue("b", node, tensorMap, context), getParamValue("transposeA", node, tensorMap, context), getParamValue("transposeB", node, tensorMap, context))]; + case "Transpose": + return [transpose(getParamValue("x", node, tensorMap, context), getParamValue("perm", node, tensorMap, context))]; + case "_FusedMatMul": + const [extraOp, activationFunc] = getParamValue("fusedOps", node, tensorMap, context); + const isBiasAdd = extraOp === "biasadd"; + const isPrelu = activationFunc === "prelu"; + const numArgs = getParamValue("numArgs", node, tensorMap, context); + if (isBiasAdd) { + if (isPrelu && numArgs !== 2) { + throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha."); + } + if (!isPrelu && numArgs !== 1) { + throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias."); + } + } + const [biasArg, preluArg] = getParamValue("args", node, tensorMap, context); + return [fused_ops_exports.matMul({ + a: getParamValue("a", node, tensorMap, context), + b: getParamValue("b", node, tensorMap, context), + transposeA: getParamValue("transposeA", node, tensorMap, context), + transposeB: getParamValue("transposeB", node, tensorMap, context), + bias: biasArg, + activation: activationFunc, + preluActivationWeights: preluArg + })]; + default: + throw TypeError(`Node type ${node.op} is not implemented`); + } + }; + + // node_modules/@tensorflow/tfjs-converter/dist/operations/executors/normalization_executor.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const executeOp12 = (node, tensorMap, context) => { + switch (node.op) { + case "FusedBatchNorm": + case "FusedBatchNormV2": { + return [batchNorm(getParamValue("x", node, tensorMap, context), getParamValue("mean", node, tensorMap, context), getParamValue("variance", node, tensorMap, context), getParamValue("offset", node, tensorMap, context), getParamValue("scale", node, tensorMap, context), getParamValue("epsilon", node, tensorMap, context))]; + } + case "FusedBatchNormV3": { + return [batchNorm(getParamValue("x", node, tensorMap, context), getParamValue("mean", node, tensorMap, context), getParamValue("variance", node, tensorMap, context), getParamValue("offset", node, tensorMap, context), getParamValue("scale", node, tensorMap, context), getParamValue("epsilon", node, tensorMap, context))]; + } + case "LRN": { + return [localResponseNormalization(getParamValue("x", node, tensorMap, context), getParamValue("radius", node, tensorMap, context), getParamValue("bias", node, tensorMap, context), getParamValue("alpha", node, tensorMap, context), getParamValue("beta", node, tensorMap, context))]; + } + case "Softmax": { + return [softmax(getParamValue("x", node, tensorMap, context))]; + } + case "LogSoftmax": { + return [logSoftmax(getParamValue("x", node, tensorMap, context))]; + } + case "SparseToDense": { + return [sparseToDense(getParamValue("sparseIndices", node, tensorMap, context), getParamValue("outputShape", node, tensorMap, context), getParamValue("sparseValues", node, tensorMap, context), getParamValue("defaultValue", node, tensorMap, context))]; + } + default: + throw TypeError(`Node type ${node.op} is not implemented`); + } + }; + + // node_modules/@tensorflow/tfjs-converter/dist/operations/executors/reduction_executor.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const executeOp13 = (node, tensorMap, context) => { + switch (node.op) { + case "Max": { + const axis = getParamValue("axis", node, tensorMap, context); + const keepDims = getParamValue("keepDims", node, tensorMap, context); + return [max(getParamValue("x", node, tensorMap, context), axis, keepDims)]; + } + case "Mean": { + const axis = getParamValue("axis", node, tensorMap, context); + const keepDims = getParamValue("keepDims", node, tensorMap, context); + return [mean(getParamValue("x", node, tensorMap, context), axis, keepDims)]; + } + case "Min": { + const axis = getParamValue("axis", node, tensorMap, context); + const keepDims = getParamValue("keepDims", node, tensorMap, context); + return [min(getParamValue("x", node, tensorMap, context), axis, keepDims)]; + } + case "Sum": { + const axis = getParamValue("axis", node, tensorMap, context); + const keepDims = getParamValue("keepDims", node, tensorMap, context); + return [sum2(getParamValue("x", node, tensorMap, context), axis, keepDims)]; + } + case "All": { + const axis = getParamValue("axis", node, tensorMap, context); + const keepDims = getParamValue("keepDims", node, tensorMap, context); + return [all(getParamValue("x", node, tensorMap, context), axis, keepDims)]; + } + case "Any": { + const axis = getParamValue("axis", node, tensorMap, context); + const keepDims = getParamValue("keepDims", node, tensorMap, context); + return [any(getParamValue("x", node, tensorMap, context), axis, keepDims)]; + } + case "ArgMax": { + const axis = getParamValue("axis", node, tensorMap, context); + return [argMax(getParamValue("x", node, tensorMap, context), axis)]; + } + case "ArgMin": { + const axis = getParamValue("axis", node, tensorMap, context); + return [argMin(getParamValue("x", node, tensorMap, context), axis)]; + } + case "Prod": { + const axis = getParamValue("axis", node, tensorMap, context); + const keepDims = getParamValue("keepDims", node, tensorMap, context); + return [prod(getParamValue("x", node, tensorMap, context), axis, keepDims)]; + } + case "Cumsum": { + const axis = getParamValue("axis", node, tensorMap, context); + const exclusive = getParamValue("exclusive", node, tensorMap, context); + const reverse9 = getParamValue("reverse", node, tensorMap, context); + return [cumsum(getParamValue("x", node, tensorMap, context), axis, exclusive, reverse9)]; + } + default: + throw TypeError(`Node type ${node.op} is not implemented`); + } + }; + + // node_modules/@tensorflow/tfjs-converter/dist/operations/executors/slice_join_executor.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const executeOp14 = (node, tensorMap, context) => { + switch (node.op) { + case "ConcatV2": + case "Concat": { + const n = getParamValue("n", node, tensorMap, context); + const axis = getParamValue("axis", node, tensorMap, context); + let inputs = getParamValue("tensors", node, tensorMap, context); + inputs = inputs.slice(0, n); + return [concat(inputs, axis)]; + } + case "GatherV2": + case "Gather": { + const axis = getParamValue("axis", node, tensorMap, context); + const input2 = getParamValue("x", node, tensorMap, context); + const indices = getParamValue("indices", node, tensorMap, context); + return [gather(input2, indices.asType("int32"), axis)]; + } + case "ReverseV2": + case "Reverse": { + const axis = getParamValue("axis", node, tensorMap, context); + const input2 = getParamValue("x", node, tensorMap, context); + return [reverse(input2, axis)]; + } + case "Slice": { + const begin = getParamValue("begin", node, tensorMap, context); + const size = getParamValue("size", node, tensorMap, context); + return [slice(getParamValue("x", node, tensorMap, context), begin, size)]; + } + case "StridedSlice": { + const begin = getParamValue("begin", node, tensorMap, context); + const end = getParamValue("end", node, tensorMap, context); + const strides = getParamValue("strides", node, tensorMap, context); + const beginMask = getParamValue("beginMask", node, tensorMap, context); + const endMask = getParamValue("endMask", node, tensorMap, context); + const ellipsisMask = getParamValue("ellipsisMask", node, tensorMap, context); + const newAxisMask = getParamValue("newAxisMask", node, tensorMap, context); + const shrinkAxisMask = getParamValue("shrinkAxisMask", node, tensorMap, context); + const tensor17 = getParamValue("x", node, tensorMap, context); + return [stridedSlice(tensor17, begin, end, strides, beginMask, endMask, ellipsisMask, newAxisMask, shrinkAxisMask)]; + } + case "Pack": { + return tidy(() => { + const axis = getParamValue("axis", node, tensorMap, context); + const tensors = getParamValue("tensors", node, tensorMap, context); + const shape = tensors[0].shape; + const squeezedShape = tensors[0].squeeze().shape; + const mapped = tensors.map((tensor17) => { + const sameShape = util_exports.arraysEqual(tensor17.shape, shape); + if (!sameShape && !util_exports.arraysEqual(tensor17.squeeze().shape, squeezedShape)) { + throw new Error("the input tensors shape does not match"); + } + return sameShape ? tensor17 : tensor17.reshape(shape); + }); + return [stack(mapped, axis)]; + }); + } + case "Unpack": { + const axis = getParamValue("axis", node, tensorMap, context); + const tensor17 = getParamValue("tensor", node, tensorMap, context); + return unstack(tensor17, axis); + } + case "Tile": { + const reps = getParamValue("reps", node, tensorMap, context); + return [tile(getParamValue("x", node, tensorMap, context), reps)]; + } + case "Split": + case "SplitV": { + const axis = getParamValue("axis", node, tensorMap, context); + const numOrSizeSplits = getParamValue("numOrSizeSplits", node, tensorMap, context); + const tensor17 = getParamValue("x", node, tensorMap, context); + return split(tensor17, numOrSizeSplits, axis); + } + case "ScatterNd": { + const indices = getParamValue("indices", node, tensorMap, context); + const values = getParamValue("values", node, tensorMap, context); + const shape = getParamValue("shape", node, tensorMap, context); + return [scatterND(indices, values, shape)]; + } + case "GatherNd": { + const x = getParamValue("x", node, tensorMap, context); + const indices = getParamValue("indices", node, tensorMap, context); + return [gatherND(x, indices)]; + } + case "SparseToDense": { + const indices = getParamValue("sparseIndices", node, tensorMap, context); + const shape = getParamValue("outputShape", node, tensorMap, context); + const sparseValues = getParamValue("sparseValues", node, tensorMap, context); + const defaultValue = getParamValue("defaultValue", node, tensorMap, context); + return [sparseToDense(indices, sparseValues, shape, sparseValues.dtype === defaultValue.dtype ? defaultValue : defaultValue.asType(sparseValues.dtype))]; + } + default: + throw TypeError(`Node type ${node.op} is not implemented`); + } + }; + + // node_modules/@tensorflow/tfjs-converter/dist/operations/executors/spectral_executor.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const executeOp15 = (node, tensorMap, context) => { + switch (node.op) { + case "FFT": { + return [fft(getParamValue("x", node, tensorMap, context))]; + } + case "IFFT": { + return [ifft(getParamValue("x", node, tensorMap, context))]; + } + case "RFFT": { + return [rfft(getParamValue("x", node, tensorMap, context))]; + } + case "IRFFT": { + return [irfft(getParamValue("x", node, tensorMap, context))]; + } + default: + throw TypeError(`Node type ${node.op} is not implemented`); + } + }; + + // node_modules/@tensorflow/tfjs-converter/dist/operations/executors/transformation_executor.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const executeOp16 = (node, tensorMap, context) => { + switch (node.op) { + case "Cast": { + return [cast(getParamValue("x", node, tensorMap, context), getParamValue("dtype", node, tensorMap, context))]; + } + case "ExpandDims": { + const axis = getParamValue("axis", node, tensorMap, context); + return [expandDims(getParamValue("x", node, tensorMap, context), axis)]; + } + case "Squeeze": { + const axis = getParamValue("axis", node, tensorMap, context); + return [squeeze(getParamValue("x", node, tensorMap, context), axis)]; + } + case "Reshape": { + return [reshape(getParamValue("x", node, tensorMap, context), getParamValue("shape", node, tensorMap, context))]; + } + case "PadV2": + case "Pad": { + return [pad(getParamValue("x", node, tensorMap, context), getParamValue("padding", node, tensorMap, context), getParamValue("constantValue", node, tensorMap, context))]; + } + case "SpaceToBatchND": { + const blockShape = getParamValue("blockShape", node, tensorMap, context); + const paddings = getParamValue("paddings", node, tensorMap, context); + return [spaceToBatchND(getParamValue("x", node, tensorMap, context), blockShape, paddings)]; + } + case "BatchToSpaceND": { + const blockShape = getParamValue("blockShape", node, tensorMap, context); + const crops = getParamValue("crops", node, tensorMap, context); + return [batchToSpaceND(getParamValue("x", node, tensorMap, context), blockShape, crops)]; + } + case "DepthToSpace": { + const blockSize = getParamValue("blockSize", node, tensorMap, context); + const dataFormat = getParamValue("dataFormat", node, tensorMap, context).toUpperCase(); + return [depthToSpace(getParamValue("x", node, tensorMap, context), blockSize, dataFormat)]; + } + case "BroadcastTo": { + return [broadcastTo(getParamValue("x", node, tensorMap, context), getParamValue("shape", node, tensorMap, context))]; + } + default: + throw TypeError(`Node type ${node.op} is not implemented`); + } + }; + + // node_modules/@tensorflow/tfjs-converter/dist/operations/operation_executor.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + function executeOp17(node, tensorMap, context) { + const value = ((node2, tensorMap2, context2) => { + switch (node2.category) { + case "arithmetic": + return tidy(() => executeOp(node2, tensorMap2, context2)); + case "basic_math": + return tidy(() => executeOp2(node2, tensorMap2, context2)); + case "control": + return executeOp3(node2, tensorMap2, context2); + case "convolution": + return tidy(() => executeOp4(node2, tensorMap2, context2)); + case "creation": + return tidy(() => executeOp5(node2, tensorMap2, context2)); + case "dynamic": + return executeOp6(node2, tensorMap2, context2); + case "evaluation": + return tidy(() => executeOp7(node2, tensorMap2, context2)); + case "image": + return tidy(() => executeOp9(node2, tensorMap2, context2)); + case "graph": + return tidy(() => executeOp8(node2, tensorMap2, context2)); + case "logical": + return tidy(() => executeOp10(node2, tensorMap2, context2)); + case "matrices": + return tidy(() => executeOp11(node2, tensorMap2, context2)); + case "normalization": + return tidy(() => executeOp12(node2, tensorMap2, context2)); + case "reduction": + return tidy(() => executeOp13(node2, tensorMap2, context2)); + case "slice_join": + return tidy(() => executeOp14(node2, tensorMap2, context2)); + case "spectral": + return tidy(() => executeOp15(node2, tensorMap2, context2)); + case "transformation": + return tidy(() => executeOp16(node2, tensorMap2, context2)); + case "custom": + const opMapper = getRegisteredOp(node2.op); + if (opMapper && opMapper.customExecutor) { + return opMapper.customExecutor(new NodeValueImpl(node2, tensorMap2, context2)); + } else { + throw TypeError(`Custom op ${node2.op} is not registered.`); + } + default: + throw TypeError(`Unknown op '${node2.op}'. File an issue at https://github.com/tensorflow/tfjs/issues so we can add it, or register a custom execution with tf.registerOp()`); + } + })(node, tensorMap, context); + if (value instanceof Promise) { + return value.then((data) => [].concat(data)); + } + return [].concat(value); + } + + // node_modules/@tensorflow/tfjs-converter/dist/executor/execution_context.js + class ExecutionContext { + constructor(weightMap = {}, tensorArrayMap = {}, tensorListMap = {}, functionMap = {}) { + this.weightMap = weightMap; + this.tensorArrayMap = tensorArrayMap; + this.tensorListMap = tensorListMap; + this.functionMap = functionMap; + this.rootContext = {id: 0, frameName: "", iterationId: 0}; + this.contexts = [this.rootContext]; + this.lastId = 0; + this.generateCurrentContextIds(); + } + newFrame(id, frameName) { + return {id, frameName, iterationId: 0}; + } + set currentContext(contexts2) { + if (this.contexts !== contexts2) { + this.contexts = contexts2; + this.generateCurrentContextIds(); + } + } + get currentContext() { + return this.contexts; + } + get currentContextId() { + return this._currentContextIds[0]; + } + get currentContextIds() { + return this._currentContextIds; + } + generateCurrentContextIds() { + const names = []; + for (let i = 0; i < this.contexts.length - 1; i++) { + const contexts2 = this.contexts.slice(0, this.contexts.length - i); + names.push(this.contextIdforContexts(contexts2)); + } + names.push(""); + this._currentContextIds = names; + } + contextIdforContexts(contexts2) { + return contexts2 ? contexts2.map((context) => context.id === 0 && context.iterationId === 0 ? "" : `${context.frameName}-${context.iterationId}`).join("/") : ""; + } + enterFrame(frameId) { + if (this.contexts) { + this.lastId++; + this.contexts = this.contexts.slice(); + this.contexts.push(this.newFrame(this.lastId, frameId)); + this._currentContextIds.unshift(this.contextIdforContexts(this.contexts)); + } + } + exitFrame() { + if (this.contexts && this.contexts.length > 1) { + this.contexts = this.contexts.slice(); + this.contexts.splice(-1); + this.currentContextIds.shift(); + } else { + throw new Error("Cannot exit frame, the context is empty"); + } + } + nextIteration() { + if (this.contexts && this.contexts.length > 0) { + this.contexts = this.contexts.slice(); + this.lastId++; + const context = Object.assign({}, this.contexts[this.contexts.length - 1]); + context.iterationId += 1; + context.id = this.lastId; + this.contexts.splice(-1, 1, context); + this._currentContextIds.splice(0, 1, this.contextIdforContexts(this.contexts)); + } else { + throw new Error("Cannot increase frame iteration, the context is empty"); + } + } + getWeight(name) { + return this.weightMap[name]; + } + addTensorArray(tensorArray) { + this.tensorArrayMap[tensorArray.id] = tensorArray; + } + getTensorArray(id) { + return this.tensorArrayMap[id]; + } + addTensorList(tensorList) { + this.tensorListMap[tensorList.id] = tensorList; + } + getTensorList(id) { + return this.tensorListMap[id]; + } + dispose() { + for (const key in this.tensorArrayMap) { + this.tensorArrayMap[key].clearAndClose(); + } + for (const key in this.tensorListMap) { + this.tensorListMap[key].clearAndClose(); + } + } + } + + // node_modules/@tensorflow/tfjs-converter/dist/executor/model_analysis.js + /** + * @license + * Copyright 2019 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + function getExecutionSubgraph(inputs, outputs, weightMap) { + const usedNodes = new Set(); + const missingInputs = []; + let dynamicNode = null; + let syncInputs = null; + const seen = new Set(); + const inputNodeNames = Object.keys(inputs).map((name) => parseNodeName(name)[0]); + const frontier = [...outputs]; + while (frontier.length > 0) { + const node = frontier.pop(); + if (isControlFlow(node) || isDynamicShape(node)) { + if (dynamicNode == null) { + dynamicNode = node; + syncInputs = dynamicNode.children.map((child) => child.name).filter((name) => usedNodes.has(name)); + } + } + usedNodes.add(node.name); + if (weightMap[node.name] != null) { + continue; + } + if (inputNodeNames.indexOf(node.name) !== -1) { + continue; + } + if (node.inputs.length === 0) { + missingInputs.push(node.name); + continue; + } + node.inputs.forEach((input2) => { + if (seen.has(input2.name)) { + return; + } + seen.add(input2.name); + frontier.push(input2); + }); + } + return {inputs, outputs, usedNodes, missingInputs, dynamicNode, syncInputs}; + } + function getNodesInTopologicalOrder(graph2, weightMap, executionInfo) { + const {usedNodes, inputs} = executionInfo; + const frontier = []; + const inputNodes = Object.keys(inputs).map((name) => parseNodeName(name)[0]).map((name) => graph2.nodes[name]); + inputNodes.forEach((input2) => { + if (usedNodes.has(input2.name)) { + frontier.push(input2); + } + }); + graph2.weights.forEach((weight) => { + if (usedNodes.has(weight.name)) { + frontier.push(weight); + } + }); + const seen = new Set(); + const orderedNodes = []; + while (frontier.length > 0) { + const node = frontier.pop(); + seen.add(node.name); + if (!weightMap[node.name]) { + orderedNodes.push(node); + } + node.children.forEach((child) => { + if (!seen.has(child.name) && usedNodes.has(child.name) && child.inputs.every((input2) => seen.has(input2.name))) { + frontier.push(child); + } + }); + } + return orderedNodes; + } + const CONTROL_FLOW_OPS = [ + "Switch", + "Merge", + "Enter", + "Exit", + "NextIteration", + "StatelessIf", + "StatelessWhile", + "if", + "While" + ]; + const DYNAMIC_SHAPE_OPS = [ + "NonMaxSuppressionV2", + "NonMaxSuppressionV3", + "NonMaxSuppressionV5", + "Where" + ]; + function isControlFlow(node) { + return CONTROL_FLOW_OPS.indexOf(node.op) >= 0; + } + function isDynamicShape(node) { + return DYNAMIC_SHAPE_OPS.indexOf(node.op) >= 0; + } + + // node_modules/@tensorflow/tfjs-converter/dist/executor/graph_executor.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class GraphExecutor { + constructor(graph2, parent) { + this.graph = graph2; + this.parent = parent; + this.compiledMap = new Map(); + this._weightMap = {}; + this.SEPERATOR = ","; + this._functions = {}; + this._functionExecutorMap = {}; + this._outputs = graph2.outputs; + this._inputs = graph2.inputs; + this._signature = graph2.signature; + this._functions = graph2.functions; + if (graph2.functions != null) { + Object.keys(graph2.functions).forEach((name) => { + this._functionExecutorMap[name] = new GraphExecutor(graph2.functions[name], this); + }); + } + } + get weightIds() { + return this.parent ? this.parent.weightIds : this._weightIds; + } + get functionExecutorMap() { + return this.parent ? this.parent.functionExecutorMap : this._functionExecutorMap; + } + get weightMap() { + return this.parent ? this.parent.weightMap : this._weightMap; + } + set weightMap(weightMap) { + const weightIds = Object.keys(weightMap).map((key) => weightMap[key].map((tensor17) => tensor17.id)); + this._weightIds = [].concat(...weightIds); + this._weightMap = weightMap; + } + get inputs() { + return this._inputs.map((node) => { + return { + name: node.name, + shape: node.attrParams["shape"] ? node.attrParams["shape"].value : void 0, + dtype: node.attrParams["dtype"] ? node.attrParams["dtype"].value : void 0 + }; + }); + } + get outputs() { + return this._outputs.map((node) => { + return { + name: node.name, + shape: node.attrParams["shape"] ? node.attrParams["shape"].value : void 0, + dtype: node.attrParams["dtype"] ? node.attrParams["dtype"].value : void 0 + }; + }); + } + get inputNodes() { + return this._inputs.map((node) => node.signatureKey || node.name); + } + get outputNodes() { + return this._outputs.map((node) => { + const name = node.signatureKey || node.name; + return node.defaultOutput ? `${name}:${node.defaultOutput}` : name; + }); + } + get functions() { + return Object.keys(this._functions).reduce((map, key) => { + map[key] = this._functions[key].signature; + return map; + }, {}); + } + getCompilationKey(inputs, outputs) { + const sortedInputs = inputs.map((node) => node.name).sort(); + const sortedOutputs = outputs.map((node) => node.name).sort(); + return sortedInputs.join(this.SEPERATOR) + "--" + sortedOutputs.join(this.SEPERATOR); + } + compile(inputs, outputs) { + const executionInfo = getExecutionSubgraph(inputs, outputs, this.weightMap); + const {missingInputs, dynamicNode, syncInputs} = executionInfo; + if (dynamicNode != null) { + throw new Error(`This execution contains the node '${dynamicNode.name}', which has the dynamic op '${dynamicNode.op}'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs [${syncInputs}]`); + } + if (missingInputs.length > 0) { + const outNames = outputs.map((n) => n.name); + const inNames = Object.keys(inputs); + throw new Error(`Cannot compute the outputs [${outNames}] from the provided inputs [${inNames}]. Missing the following inputs: [${missingInputs}]`); + } + return getNodesInTopologicalOrder(this.graph, this.weightMap, executionInfo); + } + execute(inputs, outputs) { + inputs = this.mapInputs(inputs); + const names = Object.keys(inputs).sort(); + this.checkInputs(inputs); + this.checkInputShapeAndType(inputs); + outputs = this.mapOutputs(outputs); + this.checkOutputs(outputs); + const inputNodes = names.map((name) => this.graph.nodes[parseNodeName(name)[0]]); + const outputNodes = outputs.map((name) => this.graph.nodes[parseNodeName(name)[0]]); + const compilationKey = this.getCompilationKey(inputNodes, outputNodes); + let orderedNodes = this.compiledMap.get(compilationKey); + if (orderedNodes == null) { + orderedNodes = this.compile(inputs, outputNodes); + this.compiledMap.set(compilationKey, orderedNodes); + } + const tensorArrayMap = {}; + const tensorListMap = {}; + return tidy(() => { + const context = new ExecutionContext(this.weightMap, tensorArrayMap, tensorListMap, this.functionExecutorMap); + const tensorsMap = Object.assign({}, this.weightMap); + Object.keys(inputs).forEach((name) => { + const [nodeName, index] = parseNodeName(name); + const tensors = []; + tensors[index] = inputs[name]; + tensorsMap[nodeName] = tensors; + }); + const tensorsToKeep = this.getFrozenTensorIds(tensorsMap); + const intermediateTensorConsumerCount = {}; + for (let i = 0; i < orderedNodes.length; i++) { + const node = orderedNodes[i]; + if (!tensorsMap[node.name]) { + const tensors = executeOp17(node, tensorsMap, context); + if (tensors instanceof Promise) { + throw new Error(`The execution of the op '${node.op}' returned a promise. Please use model.executeAsync() instead.`); + } + tensorsMap[node.name] = tensors; + this.checkTensorForDisposal(node.name, node, tensorsMap, context, tensorsToKeep, outputs, intermediateTensorConsumerCount); + } + } + if (this.parent == null) { + context.dispose(); + } + return outputs.map((name) => getTensor(name, tensorsMap, context)); + }); + } + getFrozenTensorIds(tensorMap) { + const ids = [].concat.apply([], Object.keys(tensorMap).map((key) => tensorMap[key]).map((tensors) => tensors.map((tensor17) => tensor17.id))); + return new Set(ids); + } + checkTensorForDisposal(nodeName, node, tensorMap, context, tensorsToKeep, outputNames, intermediateTensorConsumerCount) { + if (node.category === "control" || outputNames.indexOf(nodeName) !== -1) { + return; + } + tensorMap[nodeName].forEach((tensor17) => { + if (tensor17 != null) { + intermediateTensorConsumerCount[tensor17.id] = (intermediateTensorConsumerCount[tensor17.id] || 0) + node.children.length; + } + }); + node.inputs.forEach((input2) => { + if (input2.category !== "control") { + const tensors = getTensorsForCurrentContenxt(input2.name, tensorMap, context); + if (tensors != null) { + tensors.forEach((tensor17) => { + if (tensor17 && !tensorsToKeep.has(tensor17.id)) { + const count2 = intermediateTensorConsumerCount[tensor17.id]; + if (count2 === 1) { + tensor17.dispose(); + delete intermediateTensorConsumerCount[tensor17.id]; + } else if (count2 != null) { + intermediateTensorConsumerCount[tensor17.id]--; + } + } + }); + } + } + }); + } + async executeAsync(inputs, outputs) { + return this._executeAsync(inputs, outputs); + } + async _executeAsync(inputs, outputs, isFunctionExecution = false, tensorArrayMap = {}, tensorListMap = {}) { + if (!isFunctionExecution) { + inputs = this.mapInputs(inputs); + this.checkInputs(inputs); + this.checkInputShapeAndType(inputs); + outputs = this.mapOutputs(outputs); + this.checkOutputs(outputs); + } + const context = new ExecutionContext(this.weightMap, tensorArrayMap, tensorListMap, this.functionExecutorMap); + const tensorMap = await this.executeWithControlFlow(inputs, context, outputs, isFunctionExecution); + const results = outputs.map((name) => getTensor(name, tensorMap, context)); + const outputIds = new Set(results.map((t) => t.id)); + const inputIds = new Set(Object.keys(inputs).map((name) => inputs[name].id)); + Object.keys(tensorMap).forEach((key) => { + const tensorArray = tensorMap[key]; + tensorArray.forEach((tensor17) => { + if (tensor17 && !tensor17.isDisposed && !outputIds.has(tensor17.id) && !inputIds.has(tensor17.id) && this.weightIds.indexOf(tensor17.id) === -1) { + tensor17.dispose(); + } + }); + }); + if (this.parent == null) { + context.dispose(); + } + return results; + } + async executeFunctionAsync(inputs, tensorArrayMap, tensorListMap) { + const mappedInputs = inputs.reduce((map, tensor17, index) => { + map[this.inputs[index].name] = tensor17; + return map; + }, {}); + return this._executeAsync(mappedInputs, this.outputNodes, true, tensorArrayMap, tensorListMap); + } + async executeWithControlFlow(inputs, context, outputNames, isFunctionExecution) { + const names = Object.keys(inputs); + const inputNodes = names.map((name) => this.graph.nodes[parseNodeName(name)[0]]); + const outputNodes = outputNames.map((name) => this.graph.nodes[parseNodeName(name)[0]]); + const {usedNodes, missingInputs, dynamicNode, syncInputs} = getExecutionSubgraph(inputs, outputNodes, this.weightMap); + const stack7 = [...inputNodes, ...this.graph.weights].map((node) => { + return {node, contexts: context.currentContext}; + }); + const tensorsMap = Object.assign({}, this.weightMap); + Object.keys(inputs).forEach((name) => { + const [nodeName, index] = parseNodeName(name); + const tensors = []; + tensors[index] = inputs[name]; + tensorsMap[nodeName] = tensors; + }); + const intermediateTensorConsumerCount = {}; + const tensorsToKeep = this.getFrozenTensorIds(tensorsMap); + const added = {}; + while (stack7.length > 0) { + const promises = this.processStack(inputNodes, stack7, context, tensorsMap, added, tensorsToKeep, outputNames, intermediateTensorConsumerCount, usedNodes); + await Promise.all(promises); + } + if (dynamicNode == null && !isFunctionExecution) { + console.warn(`This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.`); + } + const missingOutputs = outputNodes.filter((node) => !isControlFlow(node) && !getTensor(node.name, tensorsMap, context)).map((node) => node.name); + if (missingOutputs.length > 0) { + let alternativeMsg = ""; + if (dynamicNode != null) { + alternativeMsg = `Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${syncInputs}]`; + } + throw new Error(`Cannot compute the outputs [${missingOutputs}] from the provided inputs [${names}]. Consider providing the following inputs: [${missingInputs}]. ${alternativeMsg}`); + } + return tensorsMap; + } + processStack(inputNodes, stack7, context, tensorMap, added, tensorsToKeep, outputNames, intermediateTensorConsumerCount, usedNodes) { + const promises = []; + while (stack7.length > 0) { + const item = stack7.pop(); + context.currentContext = item.contexts; + let nodeName = ""; + if (item.node.op === "Enter" && getParamValue("isConstant", item.node, tensorMap, context)) { + [nodeName] = getNodeNameAndIndex(item.node.name, context); + } + if (inputNodes.indexOf(item.node) === -1) { + const tensors = executeOp17(item.node, tensorMap, context); + if (!nodeName) { + [nodeName] = getNodeNameAndIndex(item.node.name, context); + } + const currentContext = context.currentContext; + if (tensors instanceof Promise) { + promises.push(tensors.then((t) => { + tensorMap[nodeName] = t; + context.currentContext = currentContext; + this.checkTensorForDisposal(nodeName, item.node, tensorMap, context, tensorsToKeep, outputNames, intermediateTensorConsumerCount); + this.processChildNodes(item.node, stack7, context, tensorMap, added, usedNodes); + return t; + })); + } else { + tensorMap[nodeName] = tensors; + this.checkTensorForDisposal(nodeName, item.node, tensorMap, context, tensorsToKeep, outputNames, intermediateTensorConsumerCount); + this.processChildNodes(item.node, stack7, context, tensorMap, added, usedNodes); + } + } else { + this.processChildNodes(item.node, stack7, context, tensorMap, added, usedNodes); + } + } + return promises; + } + processChildNodes(node, stack7, context, tensorMap, added, usedNodes) { + node.children.forEach((childNode) => { + const [nodeName] = getNodeNameAndIndex(childNode.name, context); + if (added[nodeName] || !usedNodes.has(childNode.name)) { + return; + } + if (childNode.op === "Merge") { + if (childNode.inputNames.some((name) => { + return !!getTensor(name, tensorMap, context); + })) { + added[nodeName] = true; + stack7.push({contexts: context.currentContext, node: childNode}); + } + } else if (childNode.inputNames.every((name) => { + return !!getTensor(name, tensorMap, context); + })) { + added[nodeName] = true; + stack7.push({contexts: context.currentContext, node: childNode}); + } + }); + } + dispose() { + Object.keys(this.weightMap).forEach((key) => this.weightMap[key].forEach((tensor17) => tensor17.dispose())); + } + checkInputShapeAndType(inputs) { + Object.keys(inputs).forEach((name) => { + const input2 = inputs[name]; + const [nodeName] = parseNodeName(name); + const node = this.graph.nodes[nodeName]; + if (node.attrParams["shape"] && node.attrParams["shape"].value) { + const shape = node.attrParams["shape"].value; + const match = shape.length === input2.shape.length && input2.shape.every((dim, index) => shape[index] === -1 || shape[index] === dim); + util_exports.assert(match, () => `The shape of dict['${node.name}'] provided in model.execute(dict) must be [${shape}], but was [${input2.shape}]`); + } + if (node.attrParams["dtype"] && node.attrParams["dtype"].value) { + util_exports.assert(input2.dtype === node.attrParams["dtype"].value, () => `The dtype of dict['${node.name}'] provided in model.execute(dict) must be ${node.attrParams["dtype"].value}, but was ${input2.dtype}`); + } + }); + } + mapInputs(inputs) { + const result = {}; + for (const inputName in inputs) { + if (this._signature != null && this._signature.inputs != null && this._signature.inputs[inputName] != null) { + const tensor17 = this._signature.inputs[inputName]; + result[tensor17.name] = inputs[inputName]; + } else { + result[inputName] = inputs[inputName]; + } + } + return result; + } + checkInputs(inputs) { + const notInGraph = Object.keys(inputs).filter((name) => { + const [nodeName] = parseNodeName(name); + return this.graph.nodes[nodeName] == null; + }); + if (notInGraph.length > 0) { + throw new Error(`The dict provided in model.execute(dict) has keys: [${notInGraph}] that are not part of graph`); + } + } + mapOutputs(outputs) { + return outputs.map((name) => { + if (this._signature != null && this._signature.outputs != null && this._signature.outputs[name] != null) { + const tensor17 = this._signature.outputs[name]; + return tensor17.name; + } + return name; + }, {}); + } + checkOutputs(outputs) { + outputs.forEach((name) => { + const [normalizedName] = parseNodeName(name); + if (!this.graph.nodes[normalizedName]) { + throw new Error(`The output '${name}' is not found in the graph`); + } + }); + } + } + + // node_modules/@tensorflow/tfjs-converter/dist/executor/graph_model.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const TFHUB_SEARCH_PARAM = "?tfjs-format=file"; + const DEFAULT_MODEL_NAME = "model.json"; + class GraphModel { + constructor(modelUrl, loadOptions = {}) { + this.modelUrl = modelUrl; + this.loadOptions = loadOptions; + this.version = "n/a"; + if (loadOptions == null) { + this.loadOptions = {}; + } + } + get modelVersion() { + return this.version; + } + get inputNodes() { + return this.executor.inputNodes; + } + get outputNodes() { + return this.executor.outputNodes; + } + get inputs() { + return this.executor.inputs; + } + get outputs() { + return this.executor.outputs; + } + get weights() { + return this.executor.weightMap; + } + findIOHandler() { + const path = this.modelUrl; + if (path.load != null) { + this.handler = path; + } else if (this.loadOptions.requestInit != null) { + this.handler = io_exports.browserHTTPRequest(path, this.loadOptions); + } else { + const handlers = io_exports.getLoadHandlers(path, this.loadOptions); + if (handlers.length === 0) { + handlers.push(io_exports.browserHTTPRequest(path, this.loadOptions)); + } else if (handlers.length > 1) { + throw new Error(`Found more than one (${handlers.length}) load handlers for URL '${[path]}'`); + } + this.handler = handlers[0]; + } + } + async load() { + this.findIOHandler(); + if (this.handler.load == null) { + throw new Error("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented."); + } + const artifacts = await this.handler.load(); + return this.loadSync(artifacts); + } + loadSync(artifacts) { + this.artifacts = artifacts; + const graph2 = this.artifacts.modelTopology; + let signature = {}; + if (this.artifacts.userDefinedMetadata != null) { + signature = this.artifacts.userDefinedMetadata.signature; + } + this.version = `${graph2.versions.producer}.${graph2.versions.minConsumer}`; + const weightMap = io_exports.decodeWeights(this.artifacts.weightData, this.artifacts.weightSpecs); + this.executor = new GraphExecutor(OperationMapper.Instance.transformGraph(graph2, signature)); + this.executor.weightMap = this.convertTensorMapToTensorsMap(weightMap); + return true; + } + async save(handlerOrURL, config2) { + if (typeof handlerOrURL === "string") { + const handlers = io_exports.getSaveHandlers(handlerOrURL); + if (handlers.length === 0) { + throw new Error(`Cannot find any save handlers for URL '${handlerOrURL}'`); + } else if (handlers.length > 1) { + throw new Error(`Found more than one (${handlers.length}) save handlers for URL '${handlerOrURL}'`); + } + handlerOrURL = handlers[0]; + } + if (handlerOrURL.save == null) { + throw new Error("GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined."); + } + return handlerOrURL.save(this.artifacts); + } + predict(inputs, config2) { + return this.execute(inputs, this.outputNodes); + } + normalizeInputs(inputs) { + if (!(inputs instanceof Tensor) && !Array.isArray(inputs)) { + return inputs; + } + inputs = Array.isArray(inputs) ? inputs : [inputs]; + if (inputs.length !== this.inputNodes.length) { + throw new Error(`Input tensor count mismatch,the graph model has ${this.inputNodes.length} placeholders, while there are ${inputs.length} input tensors.`); + } + return this.inputNodes.reduce((map, inputName, i) => { + map[inputName] = inputs[i]; + return map; + }, {}); + } + normalizeOutputs(outputs) { + outputs = outputs || this.outputNodes; + return !Array.isArray(outputs) ? [outputs] : outputs; + } + execute(inputs, outputs) { + inputs = this.normalizeInputs(inputs); + outputs = this.normalizeOutputs(outputs); + const result = this.executor.execute(inputs, outputs); + return result.length > 1 ? result : result[0]; + } + async executeAsync(inputs, outputs) { + inputs = this.normalizeInputs(inputs); + outputs = this.normalizeOutputs(outputs); + const result = await this.executor.executeAsync(inputs, outputs); + return result.length > 1 ? result : result[0]; + } + convertTensorMapToTensorsMap(map) { + return Object.keys(map).reduce((newMap, key) => { + newMap[key] = [map[key]]; + return newMap; + }, {}); + } + dispose() { + this.executor.dispose(); + } + } + async function loadGraphModel(modelUrl, options = {}) { + if (modelUrl == null) { + throw new Error("modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model"); + } + if (options == null) { + options = {}; + } + if (options.fromTFHub) { + if (modelUrl.load == null) { + if (!modelUrl.endsWith("/")) { + modelUrl = modelUrl + "/"; + } + modelUrl = `${modelUrl}${DEFAULT_MODEL_NAME}${TFHUB_SEARCH_PARAM}`; + } + } + const model2 = new GraphModel(modelUrl, options); + await model2.load(); + return model2; + } + + // node_modules/@tensorflow/tfjs-converter/dist/version.js + /** @license See the LICENSE file. */ + const version6 = "2.3.0"; + + // node_modules/@tensorflow/tfjs-converter/dist/index.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + + // node_modules/@tensorflow/tfjs-data/dist/util/deep_map.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============================================================================= + */ + function deepMap(input2, mapFn) { + return deepMapInternal(input2, mapFn); + } + function deepMapInternal(input2, mapFn, seen = new Map(), containedIn = new Set()) { + if (input2 == null) { + return null; + } + if (containedIn.has(input2)) { + throw new Error("Circular references are not supported."); + } + if (seen.has(input2)) { + return seen.get(input2); + } + const result = mapFn(input2); + if (result.recurse && result.value !== null) { + throw new Error("A deep map function may not return both a value and recurse=true."); + } + if (!result.recurse) { + seen.set(input2, result.value); + return result.value; + } else if (isIterable2(input2)) { + const mappedIterable = Array.isArray(input2) ? [] : {}; + containedIn.add(input2); + for (const k in input2) { + const child = input2[k]; + const childResult = deepMapInternal(child, mapFn, seen, containedIn); + mappedIterable[k] = childResult; + } + containedIn.delete(input2); + return mappedIterable; + } else { + throw new Error(`Can't recurse into non-iterable type: ${input2}`); + } + } + function deepZip(inputs, zipFn = zipToList) { + return deepZipInternal(inputs, zipFn); + } + function deepZipInternal(inputs, zipFn, containedIn = new Set()) { + const input2 = inputs[0]; + if (containedIn.has(input2)) { + throw new Error("Circular references are not supported."); + } + const result = zipFn(inputs); + if (result.recurse && result.value !== null) { + throw new Error("A deep zip function may not return both a value and recurse=true."); + } + if (!result.recurse) { + return result.value; + } else if (isIterable2(input2)) { + const mappedIterable = Array.isArray(input2) ? [] : {}; + containedIn.add(input2); + for (const k in input2) { + const children = inputs.map((x) => x[k]); + const childResult = deepZipInternal(children, zipFn, containedIn); + mappedIterable[k] = childResult; + } + containedIn.delete(input2); + return mappedIterable; + } else { + throw new Error(`Can't recurse into non-iterable type: ${input2}`); + } + } + function zipToList(x) { + if (x === null) { + return null; + } + if (isIterable2(x[0])) { + return {value: null, recurse: true}; + } else { + return {value: x, recurse: false}; + } + } + async function deepMapAndAwaitAll(input2, mapFn) { + const seen = new Map(); + deepMapInternal(input2, mapFn, seen); + for (const key of Array.from(seen.keys())) { + const value = seen.get(key); + if (value instanceof Promise) { + const mappedValue = await value; + seen.set(key, mappedValue); + } + } + const result = deepMapInternal(input2, mapFn, seen); + return result; + } + function isIterable2(obj) { + return obj != null && !ArrayBuffer.isView(obj) && (Array.isArray(obj) || typeof obj === "object" && !(obj instanceof Tensor)); + } + function canTensorify(obj) { + return obj == null || isPrimitive(obj) || Array.isArray(obj) || typeof obj === "object" && obj instanceof Tensor || util_exports.isTypedArray(obj); + } + function isPrimitive(value) { + return value === null || typeof value !== "object" && typeof value !== "function"; + } + + // node_modules/@tensorflow/tfjs-data/dist/util/deep_clone.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============================================================================= + */ + function deepClone(container2) { + return deepMap(container2, cloneIfTensor); + } + function cloneIfTensor(item) { + if (item instanceof Tensor) { + return {value: item.clone(), recurse: false}; + } else if (isIterable2(item)) { + return {value: null, recurse: true}; + } else { + return {value: item, recurse: false}; + } + } + + // node_modules/@tensorflow/tfjs-data/dist/util/ring_buffer.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============================================================================= + */ + class RingBuffer { + constructor(capacity) { + this.capacity = capacity; + this.begin = 0; + this.end = 0; + if (capacity == null) { + throw new RangeError("Can't create a ring buffer of unknown capacity."); + } + if (capacity < 1) { + throw new RangeError("Can't create ring buffer of capacity < 1."); + } + this.data = new Array(capacity); + this.doubledCapacity = 2 * capacity; + } + wrap(index) { + while (index < 0) { + index += this.doubledCapacity; + } + return index % this.doubledCapacity; + } + get(index) { + if (index < 0) { + throw new RangeError("Can't get item at a negative index."); + } + return this.data[index % this.capacity]; + } + set(index, value) { + if (index < 0) { + throw new RangeError("Can't set item at a negative index."); + } + this.data[index % this.capacity] = value; + } + length() { + let length = this.end - this.begin; + if (length < 0) { + length = this.doubledCapacity + length; + } + return length; + } + isFull() { + return this.length() === this.capacity; + } + isEmpty() { + return this.length() === 0; + } + push(value) { + if (this.isFull()) { + throw new RangeError("Ring buffer is full."); + } + this.set(this.end, value); + this.end = this.wrap(this.end + 1); + } + pushAll(values) { + for (const value of values) { + this.push(value); + } + } + pop() { + if (this.isEmpty()) { + throw new RangeError("Ring buffer is empty."); + } + this.end = this.wrap(this.end - 1); + const result = this.get(this.end); + this.set(this.end, void 0); + return result; + } + unshift(value) { + if (this.isFull()) { + throw new RangeError("Ring buffer is full."); + } + this.begin = this.wrap(this.begin - 1); + this.set(this.begin, value); + } + shift() { + if (this.isEmpty()) { + throw new RangeError("Ring buffer is empty."); + } + const result = this.get(this.begin); + this.set(this.begin, void 0); + this.begin = this.wrap(this.begin + 1); + return result; + } + shuffleExcise(relativeIndex) { + if (this.isEmpty()) { + throw new RangeError("Ring buffer is empty."); + } + const index = this.wrap(this.begin + relativeIndex); + const result = this.get(index); + this.set(index, this.pop()); + return result; + } + } + + // node_modules/@tensorflow/tfjs-data/dist/util/growing_ring_buffer.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============================================================================= + */ + class GrowingRingBuffer extends RingBuffer { + constructor() { + super(GrowingRingBuffer.INITIAL_CAPACITY); + } + isFull() { + return false; + } + push(value) { + if (super.isFull()) { + this.expand(); + } + super.push(value); + } + unshift(value) { + if (super.isFull()) { + this.expand(); + } + super.unshift(value); + } + expand() { + const newCapacity = this.capacity * 2; + const newData = new Array(newCapacity); + const len = this.length(); + for (let i = 0; i < len; i++) { + newData[i] = this.get(this.wrap(this.begin + i)); + } + this.data = newData; + this.capacity = newCapacity; + this.doubledCapacity = 2 * this.capacity; + this.begin = 0; + this.end = len; + } + } + GrowingRingBuffer.INITIAL_CAPACITY = 32; + + // node_modules/@tensorflow/tfjs-data/dist/iterators/lazy_iterator.js + const seedrandom2 = __toModule(require_seedrandom2()); + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============================================================================= + */ + function iteratorFromItems(items) { + return new ArrayIterator(items); + } + function iteratorFromFunction(func2) { + return new FunctionCallIterator(func2); + } + function iteratorFromConcatenated(baseIterators, baseErrorHandler) { + return new ChainedIterator(baseIterators, baseErrorHandler); + } + function iteratorFromZipped(iterators, mismatchMode = ZipMismatchMode.FAIL) { + return new ZipIterator(iterators, mismatchMode); + } + class LazyIterator { + async toArray() { + const result = []; + let x = await this.next(); + while (!x.done) { + result.push(x.value); + x = await this.next(); + } + return result; + } + async toArrayForTest() { + const stream = this.prefetch(100); + const result = []; + let x = await stream.next(); + while (!x.done) { + result.push(x.value); + x = await stream.next(); + } + return result; + } + async resolveFully() { + let x = await this.next(); + while (!x.done) { + x = await this.next(); + } + } + async resolveWhile(predicate) { + let x = await this.next(); + let shouldContinue = predicate(x.value); + while (!x.done && shouldContinue) { + x = await this.next(); + shouldContinue = predicate(x.value); + } + } + handleErrors(handler) { + return new ErrorHandlingLazyIterator(this, handler); + } + filter(predicate) { + return new FilterIterator(this, predicate); + } + map(transform) { + return new MapIterator(this, transform); + } + mapAsync(transform) { + return new AsyncMapIterator(this, transform); + } + serialMapAsync(transform) { + return new AsyncMapIterator(this, transform).serial(); + } + flatmap(transform) { + return new FlatmapIterator(this, transform); + } + async forEachAsync(f) { + return this.map(f).resolveFully(); + } + async serialForEach(f) { + return this.serialMapAsync(f).resolveWhile((x) => x === true); + } + rowMajorBatch(batchSize, smallLastBatch = true) { + return new RowMajorBatchIterator(this, batchSize, smallLastBatch); + } + columnMajorBatch(batchSize, smallLastBatch = true, zipFn = zipToList) { + const rowBatches = this.rowMajorBatch(batchSize, smallLastBatch); + return rowBatches.map((x) => deepZip(x, zipFn)); + } + concatenate(iterator, baseErrorHandler) { + return new ChainedIterator(iteratorFromItems([this, iterator]), baseErrorHandler); + } + take(count2) { + if (count2 < 0 || count2 == null) { + return this; + } + return new TakeIterator(this, count2); + } + skip(count2) { + if (count2 < 0 || count2 == null) { + return this; + } + return new SkipIterator(this, count2); + } + prefetch(bufferSize) { + return new PrefetchIterator(this, bufferSize); + } + shuffle(windowSize, seed) { + return new ShuffleIterator(this, windowSize, seed); + } + serial() { + return new SerialIterator(this); + } + } + class ArrayIterator extends LazyIterator { + constructor(items) { + super(); + this.items = items; + this.trav = 0; + } + summary() { + return `Array of ${this.items.length} items`; + } + async next() { + if (this.trav >= this.items.length) { + return {value: null, done: true}; + } + const item = this.items[this.trav]; + this.trav++; + return {value: deepClone(item), done: false}; + } + } + class FunctionCallIterator extends LazyIterator { + constructor(nextFn) { + super(); + this.nextFn = nextFn; + } + summary() { + return `Function call`; + } + async next() { + try { + return this.nextFn(); + } catch (e) { + e.message = `Error thrown while iterating through a dataset: ${e.message}`; + throw e; + } + } + } + class SerialIterator extends LazyIterator { + constructor(upstream) { + super(); + this.upstream = upstream; + this.lastRead = Promise.resolve({value: null, done: false}); + } + summary() { + return `${this.upstream.summary()} -> Serial`; + } + async next() { + this.lastRead = this.lastRead.then(() => this.serialNext()); + return this.lastRead; + } + async serialNext() { + return this.upstream.next(); + } + } + class SkipIterator extends LazyIterator { + constructor(upstream, maxCount) { + super(); + this.upstream = upstream; + this.maxCount = maxCount; + this.count = 0; + this.lastRead = Promise.resolve({value: null, done: false}); + } + summary() { + return `${this.upstream.summary()} -> Skip`; + } + async next() { + this.lastRead = this.lastRead.then(() => this.serialNext()); + return this.lastRead; + } + async serialNext() { + while (this.count++ < this.maxCount) { + const skipped = await this.upstream.next(); + if (skipped.done) { + return skipped; + } + dispose(skipped.value); + } + return this.upstream.next(); + } + } + class TakeIterator extends LazyIterator { + constructor(upstream, maxCount) { + super(); + this.upstream = upstream; + this.maxCount = maxCount; + this.count = 0; + } + summary() { + return `${this.upstream.summary()} -> Take`; + } + async next() { + if (this.count++ >= this.maxCount) { + return {value: null, done: true}; + } + return this.upstream.next(); + } + } + class RowMajorBatchIterator extends LazyIterator { + constructor(upstream, batchSize, enableSmallLastBatch = true) { + super(); + this.upstream = upstream; + this.batchSize = batchSize; + this.enableSmallLastBatch = enableSmallLastBatch; + this.lastRead = Promise.resolve({value: null, done: false}); + } + summary() { + return `${this.upstream.summary()} -> RowMajorBatch`; + } + async next() { + this.lastRead = this.lastRead.then(() => this.serialNext()); + return this.lastRead; + } + async serialNext() { + const batch = []; + while (batch.length < this.batchSize) { + const item = await this.upstream.next(); + if (item.done) { + if (this.enableSmallLastBatch && batch.length > 0) { + return {value: batch, done: false}; + } + return {value: null, done: true}; + } + batch.push(item.value); + } + return {value: batch, done: false}; + } + } + class FilterIterator extends LazyIterator { + constructor(upstream, predicate) { + super(); + this.upstream = upstream; + this.predicate = predicate; + this.lastRead = Promise.resolve({value: null, done: false}); + } + summary() { + return `${this.upstream.summary()} -> Filter`; + } + async next() { + this.lastRead = this.lastRead.then(() => this.serialNext()); + return this.lastRead; + } + async serialNext() { + while (true) { + const item = await this.upstream.next(); + if (item.done || this.predicate(item.value)) { + return item; + } + dispose(item.value); + } + } + } + class MapIterator extends LazyIterator { + constructor(upstream, transform) { + super(); + this.upstream = upstream; + this.transform = transform; + } + summary() { + return `${this.upstream.summary()} -> Map`; + } + async next() { + const item = await this.upstream.next(); + if (item.done) { + return {value: null, done: true}; + } + const inputTensors = tensor_util_exports.getTensorsInContainer(item.value); + const mapped = this.transform(item.value); + const outputTensors = tensor_util_exports.getTensorsInContainer(mapped); + for (const t of inputTensors) { + if (!tensor_util_exports.isTensorInList(t, outputTensors)) { + t.dispose(); + } + } + return {value: mapped, done: false}; + } + } + class ErrorHandlingLazyIterator extends LazyIterator { + constructor(upstream, handler) { + super(); + this.upstream = upstream; + this.handler = handler; + this.count = 0; + this.lastRead = Promise.resolve({value: null, done: false}); + } + summary() { + return `${this.upstream.summary()} -> handleErrors`; + } + async next() { + this.lastRead = this.lastRead.then(() => this.serialNext()); + return this.lastRead; + } + async serialNext() { + while (true) { + try { + return await this.upstream.next(); + } catch (e) { + if (!this.handler(e)) { + return {value: null, done: true}; + } + } + } + } + } + class AsyncMapIterator extends LazyIterator { + constructor(upstream, transform) { + super(); + this.upstream = upstream; + this.transform = transform; + } + summary() { + return `${this.upstream.summary()} -> AsyncMap`; + } + async next() { + const item = await this.upstream.next(); + if (item.done) { + return {value: null, done: true}; + } + const inputTensors = tensor_util_exports.getTensorsInContainer(item.value); + const mapped = await this.transform(item.value); + const outputTensors = tensor_util_exports.getTensorsInContainer(mapped); + for (const t of inputTensors) { + if (!tensor_util_exports.isTensorInList(t, outputTensors)) { + t.dispose(); + } + } + return {value: mapped, done: false}; + } + } + class OneToManyIterator extends LazyIterator { + constructor() { + super(); + this.outputQueue = new GrowingRingBuffer(); + this.lastRead = Promise.resolve({value: null, done: false}); + } + async next() { + this.lastRead = this.lastRead.then(() => this.serialNext()); + return this.lastRead; + } + async serialNext() { + while (this.outputQueue.length() === 0) { + if (!await this.pump()) { + return {value: null, done: true}; + } + } + return {value: this.outputQueue.shift(), done: false}; + } + } + class FlatmapIterator extends OneToManyIterator { + constructor(upstream, transform) { + super(); + this.upstream = upstream; + this.transform = transform; + } + summary() { + return `${this.upstream.summary()} -> Flatmap`; + } + async pump() { + const item = await this.upstream.next(); + if (item.done) { + return false; + } + const inputTensors = tensor_util_exports.getTensorsInContainer(item.value); + const mappedArray = this.transform(item.value); + const outputTensors = tensor_util_exports.getTensorsInContainer(mappedArray); + this.outputQueue.pushAll(mappedArray); + for (const t of inputTensors) { + if (!tensor_util_exports.isTensorInList(t, outputTensors)) { + t.dispose(); + } + } + return true; + } + } + class ChainedIterator extends LazyIterator { + constructor(iterators, baseErrorHandler) { + super(); + this.baseErrorHandler = baseErrorHandler; + this.lastRead = null; + this.iterator = null; + this.moreIterators = iterators; + } + summary() { + const upstreamSummaries = "TODO: fill in upstream of chained summaries"; + return `${upstreamSummaries} -> Chained`; + } + async next() { + this.lastRead = this.readFromChain(this.lastRead); + return this.lastRead; + } + async readFromChain(lastRead) { + await lastRead; + if (this.iterator == null) { + const iteratorResult = await this.moreIterators.next(); + if (iteratorResult.done) { + return {value: null, done: true}; + } + this.iterator = iteratorResult.value; + if (this.baseErrorHandler != null) { + this.iterator = this.iterator.handleErrors(this.baseErrorHandler); + } + } + const itemResult = await this.iterator.next(); + if (itemResult.done) { + this.iterator = null; + return this.readFromChain(lastRead); + } + return itemResult; + } + } + var ZipMismatchMode; + (function(ZipMismatchMode2) { + ZipMismatchMode2[ZipMismatchMode2["FAIL"] = 0] = "FAIL"; + ZipMismatchMode2[ZipMismatchMode2["SHORTEST"] = 1] = "SHORTEST"; + ZipMismatchMode2[ZipMismatchMode2["LONGEST"] = 2] = "LONGEST"; + })(ZipMismatchMode || (ZipMismatchMode = {})); + class ZipIterator extends LazyIterator { + constructor(iterators, mismatchMode = ZipMismatchMode.FAIL) { + super(); + this.iterators = iterators; + this.mismatchMode = mismatchMode; + this.count = 0; + this.currentPromise = null; + } + summary() { + const upstreamSummaries = "TODO: fill in upstream of zip summaries"; + return `{${upstreamSummaries}} -> Zip`; + } + async nextState(afterState) { + await afterState; + let numIterators = 0; + let iteratorsDone = 0; + function getNext(container2) { + if (container2 instanceof LazyIterator) { + const result = container2.next(); + return { + value: result.then((x) => { + numIterators++; + if (x.done) { + iteratorsDone++; + } + return x.value; + }), + recurse: false + }; + } else { + return {value: null, recurse: true}; + } + } + const mapped = await deepMapAndAwaitAll(this.iterators, getNext); + if (numIterators === iteratorsDone) { + return {value: null, done: true}; + } + if (iteratorsDone > 0) { + switch (this.mismatchMode) { + case ZipMismatchMode.FAIL: + throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`); + case ZipMismatchMode.SHORTEST: + return {value: null, done: true}; + case ZipMismatchMode.LONGEST: + default: + } + } + this.count++; + return {value: mapped, done: false}; + } + async next() { + this.currentPromise = this.nextState(this.currentPromise); + return this.currentPromise; + } + } + class PrefetchIterator extends LazyIterator { + constructor(upstream, bufferSize) { + super(); + this.upstream = upstream; + this.bufferSize = bufferSize; + this.buffer = new RingBuffer(bufferSize); + } + summary() { + return `${this.upstream.summary()} -> Prefetch`; + } + refill() { + while (!this.buffer.isFull()) { + const v = this.upstream.next(); + this.buffer.push(v); + } + } + next() { + this.refill(); + return this.buffer.shift(); + } + } + class ShuffleIterator extends PrefetchIterator { + constructor(upstream, windowSize, seed) { + super(upstream, windowSize); + this.upstream = upstream; + this.windowSize = windowSize; + this.upstreamExhausted = false; + this.random = seedrandom2.alea(seed || util_exports.now().toString()); + this.lastRead = Promise.resolve({value: null, done: false}); + } + async next() { + this.lastRead = this.lastRead.then(() => this.serialNext()); + return this.lastRead; + } + randomInt(max8) { + return Math.floor(this.random() * max8); + } + chooseIndex() { + return this.randomInt(this.buffer.length()); + } + async serialNext() { + if (!this.upstreamExhausted) { + this.refill(); + } + while (!this.buffer.isEmpty()) { + const chosenIndex = this.chooseIndex(); + const result = await this.buffer.shuffleExcise(chosenIndex); + if (result.done) { + this.upstreamExhausted = true; + } else { + this.refill(); + return result; + } + } + return {value: null, done: true}; + } + } + + // node_modules/@tensorflow/tfjs-data/dist/dataset.js + const seedrandom3 = __toModule(require_seedrandom2()); + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============================================================================= + */ + class Dataset { + constructor() { + this.size = null; + } + batch(batchSize, smallLastBatch = true) { + const base = this; + util_exports.assert(batchSize > 0, () => `batchSize needs to be positive, but it is + ${batchSize}`); + let size; + if (this.size === Infinity || this.size == null) { + size = this.size; + } else if (smallLastBatch) { + size = Math.ceil(this.size / batchSize); + } else { + size = Math.floor(this.size / batchSize); + } + return datasetFromIteratorFn(async () => { + return (await base.iterator()).columnMajorBatch(batchSize, smallLastBatch, deepBatchConcat); + }, size); + } + concatenate(dataset5) { + const base = this; + let size; + if (this.size === Infinity || dataset5.size === Infinity) { + size = Infinity; + } else if (this.size != null && dataset5.size != null) { + size = this.size + dataset5.size; + } else { + size = null; + } + return datasetFromIteratorFn(async () => (await base.iterator()).concatenate(await dataset5.iterator()), size); + } + filter(predicate) { + const base = this; + let size; + if (this.size === Infinity) { + size = Infinity; + } else { + size = null; + } + return datasetFromIteratorFn(async () => { + return (await base.iterator()).filter((x) => tidy(() => predicate(x))); + }, size); + } + async forEachAsync(f) { + return (await this.iterator()).forEachAsync(f); + } + map(transform) { + const base = this; + return datasetFromIteratorFn(async () => { + return (await base.iterator()).map((x) => tidy(() => transform(x))); + }, this.size); + } + mapAsync(transform) { + const base = this; + return datasetFromIteratorFn(async () => { + return (await base.iterator()).mapAsync(transform); + }, this.size); + } + prefetch(bufferSize) { + if (bufferSize == null) { + throw new RangeError("`Dataset.prefetch()` requires bufferSize to be specified."); + } + const base = this; + return datasetFromIteratorFn(async () => (await base.iterator()).prefetch(bufferSize), this.size); + } + repeat(count2) { + const base = this; + let size; + if (this.size != null && count2 > 0) { + size = this.size * count2; + } else if (count2 === 0) { + size = 0; + } else if (this.size != null && (count2 === void 0 || count2 < 0)) { + size = Infinity; + } else { + size = null; + } + return datasetFromIteratorFn(async () => { + const iteratorIterator = iteratorFromFunction(async () => ({value: await base.iterator(), done: false})); + return iteratorFromConcatenated(iteratorIterator.take(count2)); + }, size); + } + skip(count2) { + const base = this; + let size; + if (this.size != null && count2 >= 0 && this.size >= count2) { + size = this.size - count2; + } else if (this.size != null && (this.size < count2 || count2 === void 0 || count2 < 0)) { + size = 0; + } else { + size = null; + } + return datasetFromIteratorFn(async () => (await base.iterator()).skip(count2), size); + } + shuffle(bufferSize, seed, reshuffleEachIteration = true) { + if (bufferSize == null || bufferSize < 0) { + if (this.size == null) { + throw new RangeError("`Dataset.shuffle()` requires bufferSize to be specified."); + } else { + throw new RangeError(`\`Dataset.shuffle()\` requires bufferSize to be specified. If your data fits in main memory (for regular JS objects), and/or GPU memory (for \`tf.Tensor\`s), consider setting bufferSize to the dataset size (${this.size} elements)`); + } + } + const base = this; + const random = seedrandom3.alea(seed || util_exports.now().toString()); + return datasetFromIteratorFn(async () => { + let seed2 = random.int32(); + if (reshuffleEachIteration) { + seed2 += random.int32(); + } + return (await base.iterator()).shuffle(bufferSize, seed2.toString()); + }, this.size); + } + take(count2) { + const base = this; + let size; + if (this.size != null && this.size > count2) { + size = count2; + } else if (this.size != null && this.size <= count2) { + size = this.size; + } else { + size = null; + } + return datasetFromIteratorFn(async () => (await base.iterator()).take(count2), size); + } + async toArray() { + if (this.size === Infinity) { + throw new Error("Can not convert infinite data stream to array."); + } + return (await this.iterator()).toArray(); + } + async toArrayForTest() { + if (this.size === Infinity) { + throw new Error("Can not convert infinite data stream to array."); + } + return (await this.iterator()).toArrayForTest(); + } + } + Dataset.MAX_BUFFER_SIZE = 1e4; + function datasetFromIteratorFn(iteratorFn, size = null) { + return new class extends Dataset { + constructor() { + super(...arguments); + this.size = size; + } + async iterator() { + return iteratorFn(); + } + }(); + } + function array(items) { + return datasetFromIteratorFn(async () => iteratorFromItems(items), items.length); + } + function zip(datasets) { + if (!isIterable2(datasets)) { + throw new Error("The argument to zip() must be an object or array."); + } + let size; + if (Array.isArray(datasets)) { + for (let i = 0; i < datasets.length; i++) { + size = size == null ? datasets[i].size : Math.min(size, datasets[i].size); + } + } else if (datasets instanceof Object) { + for (const ds in datasets) { + size = size == null ? datasets[ds].size : Math.min(size, datasets[ds].size); + } + } + return datasetFromIteratorFn(async () => { + const streams = await deepMapAndAwaitAll(datasets, (d) => { + if (d instanceof Dataset) { + return {value: d.iterator(), recurse: false}; + } else if (isIterable2(d)) { + return {value: null, recurse: true}; + } else { + throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives."); + } + }); + return iteratorFromZipped(streams, ZipMismatchMode.SHORTEST); + }, size); + } + function deepBatchConcat(rows) { + if (rows === null) { + return null; + } + const exampleRow = rows[0]; + if (canTensorify(exampleRow)) { + const value = batchConcat(rows); + return {value, recurse: false}; + } + return {value: null, recurse: true}; + } + function batchConcat(arrays) { + if (arrays.length === 0) { + throw new Error("Can't make a batch of zero elements."); + } + if (arrays[0] instanceof Tensor) { + return stack(arrays); + } else { + return tensor5(arrays); + } + } + + // node_modules/@tensorflow/tfjs-data/dist/datasets/text_line_dataset.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============================================================================= + */ + class TextLineDataset extends Dataset { + constructor(input2) { + super(); + this.input = input2; + } + async iterator() { + const inputIterator = await this.input.iterator(); + const utf8Iterator = inputIterator.decodeUTF8(); + const lineIterator = utf8Iterator.split("\n").map((line) => { + if (line.endsWith("\r")) { + line = line.slice(0, -1); + } + return line; + }); + return lineIterator; + } + } + + // node_modules/@tensorflow/tfjs-data/dist/datasets/csv_dataset.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============================================================================= + */ + const CODE_QUOTE = '"'; + const STATE_OUT = Symbol("out"); + const STATE_FIELD = Symbol("field"); + const STATE_QUOTE = Symbol("quote"); + const STATE_QUOTE_AFTER_QUOTE = Symbol("quoteafterquote"); + const STATE_WITHIN_QUOTE_IN_QUOTE = Symbol("quoteinquote"); + class CSVDataset extends Dataset { + constructor(input2, csvConfig) { + super(); + this.input = input2; + this.hasHeader = true; + this.fullColumnNames = null; + this.columnNamesValidated = false; + this.columnConfigs = null; + this.configuredColumnsOnly = false; + this.delimiter = ","; + this.delimWhitespace = false; + this.base = new TextLineDataset(input2); + if (!csvConfig) { + csvConfig = {}; + } + this.hasHeader = csvConfig.hasHeader === false ? false : true; + this.fullColumnNames = csvConfig.columnNames; + this.columnConfigs = csvConfig.columnConfigs; + this.configuredColumnsOnly = csvConfig.configuredColumnsOnly; + if (csvConfig.delimWhitespace) { + util_exports.assert(csvConfig.delimiter == null, () => "Delimiter should not be provided when delimWhitespace is true."); + this.delimWhitespace = true; + this.delimiter = " "; + } else { + this.delimiter = csvConfig.delimiter ? csvConfig.delimiter : ","; + } + } + async columnNames() { + if (!this.columnNamesValidated) { + await this.setColumnNames(); + } + return this.configuredColumnsOnly ? Object.keys(this.columnConfigs) : this.fullColumnNames; + } + async setColumnNames() { + const columnNamesFromFile = await this.maybeReadHeaderLine(); + if (!this.fullColumnNames && !columnNamesFromFile) { + throw new Error("Column names must be provided if there is no header line."); + } else if (this.fullColumnNames && columnNamesFromFile) { + util_exports.assert(columnNamesFromFile.length === this.fullColumnNames.length, () => "The length of provided columnNames (" + this.fullColumnNames.length.toString() + ") does not match the length of the header line read from file (" + columnNamesFromFile.length.toString() + ")."); + } + if (!this.fullColumnNames) { + this.fullColumnNames = columnNamesFromFile; + } + const counts = this.fullColumnNames.reduce((countAcc, name) => { + countAcc[name] = countAcc[name] + 1 || 1; + return countAcc; + }, {}); + const duplicateNames = Object.keys(counts).filter((name) => counts[name] > 1); + util_exports.assert(duplicateNames.length === 0, () => "Duplicate column names found: " + duplicateNames.toString()); + if (this.columnConfigs) { + for (const key of Object.keys(this.columnConfigs)) { + const index = this.fullColumnNames.indexOf(key); + if (index === -1) { + throw new Error('The key "' + key + '" provided in columnConfigs does not match any of the column names (' + this.fullColumnNames.toString() + ")."); + } + } + } + this.columnNamesValidated = true; + } + async maybeReadHeaderLine() { + if (this.hasHeader) { + const iter = await this.base.iterator(); + const firstElement = await iter.next(); + if (firstElement.done) { + throw new Error("No data was found for CSV parsing."); + } + const firstLine = firstElement.value; + const headers = this.parseRow(firstLine, false); + return headers; + } else { + return null; + } + } + async iterator() { + if (!this.columnNamesValidated) { + await this.setColumnNames(); + } + let lines = await this.base.iterator(); + if (this.hasHeader) { + lines = lines.skip(1); + } + return lines.map((x) => this.makeDataElement(x)); + } + makeDataElement(line) { + const values = this.parseRow(line); + const features = {}; + const labels = {}; + for (let i = 0; i < this.fullColumnNames.length; i++) { + const key = this.fullColumnNames[i]; + const config2 = this.columnConfigs ? this.columnConfigs[key] : null; + if (this.configuredColumnsOnly && !config2) { + continue; + } else { + const value = values[i]; + let parsedValue = null; + if (value === "") { + if (config2 && config2.default !== void 0) { + parsedValue = config2.default; + } else if (config2 && (config2.required || config2.isLabel)) { + throw new Error(`Required column ${key} is empty in this line: ${line}`); + } else { + parsedValue = void 0; + } + } else { + const valueAsNum = Number(value); + if (isNaN(valueAsNum)) { + if (config2 && config2.dtype === "bool") { + parsedValue = this.getBoolean(value); + } else { + parsedValue = value; + } + } else if (!config2 || !config2.dtype) { + parsedValue = valueAsNum; + } else { + switch (config2.dtype) { + case "float32": + parsedValue = valueAsNum; + break; + case "int32": + parsedValue = Math.floor(valueAsNum); + break; + case "bool": + parsedValue = this.getBoolean(value); + break; + default: + parsedValue = valueAsNum; + } + } + } + config2 && config2.isLabel ? labels[key] = parsedValue : features[key] = parsedValue; + } + } + if (Object.keys(labels).length === 0) { + return features; + } else { + return {xs: features, ys: labels}; + } + } + getBoolean(value) { + if (value === "1" || value.toLowerCase() === "true") { + return 1; + } else { + return 0; + } + } + parseRow(line, validateElementCount = true) { + const result = []; + let readOffset = 0; + const readLength = line.length; + let currentState = STATE_OUT; + for (let i = 0; i < readLength; i++) { + switch (currentState) { + case STATE_OUT: + switch (line.charAt(i)) { + case CODE_QUOTE: + readOffset = i + 1; + currentState = STATE_QUOTE; + break; + case this.delimiter: + readOffset = i + 1; + if (this.delimiter === " " && this.delimWhitespace) { + break; + } + result.push(""); + currentState = STATE_OUT; + break; + default: + currentState = STATE_FIELD; + readOffset = i; + break; + } + break; + case STATE_FIELD: + switch (line.charAt(i)) { + case this.delimiter: + result.push(line.substring(readOffset, i)); + currentState = STATE_OUT; + readOffset = i + 1; + break; + default: + } + break; + case STATE_QUOTE: + switch (line.charAt(i)) { + case CODE_QUOTE: + currentState = STATE_QUOTE_AFTER_QUOTE; + break; + default: + } + break; + case STATE_QUOTE_AFTER_QUOTE: + switch (line.charAt(i)) { + case this.delimiter: + result.push(line.substring(readOffset, i - 1)); + currentState = STATE_OUT; + readOffset = i + 1; + break; + case CODE_QUOTE: + currentState = STATE_QUOTE; + break; + default: + currentState = STATE_WITHIN_QUOTE_IN_QUOTE; + break; + } + break; + case STATE_WITHIN_QUOTE_IN_QUOTE: + switch (line.charAt(i)) { + case CODE_QUOTE: + currentState = STATE_QUOTE; + break; + default: + } + break; + default: + } + } + if (currentState === STATE_QUOTE_AFTER_QUOTE) { + result.push(line.substring(readOffset, readLength - 1)); + } else { + result.push(line.substring(readOffset)); + } + if (validateElementCount && result.length !== this.fullColumnNames.length) { + throw new Error(`Invalid row in csv file. Should have ${this.fullColumnNames.length} elements in a row, but got ${result}`); + } + return result; + } + } + + // node_modules/@tensorflow/tfjs-data/dist/iterators/microphone_iterator.js + /** + * @license + * Copyright 2019 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============================================================================= + */ + class MicrophoneIterator extends LazyIterator { + constructor(microphoneConfig) { + super(); + this.microphoneConfig = microphoneConfig; + this.isClosed = false; + this.fftSize = microphoneConfig.fftSize || 1024; + const fftSizeLog2 = Math.log2(this.fftSize); + if (this.fftSize < 0 || fftSizeLog2 < 4 || fftSizeLog2 > 14 || !Number.isInteger(fftSizeLog2)) { + throw new Error(`Invalid fftSize: it must be a power of 2 between 2 to 4 and 2 to 14, but got ${this.fftSize}`); + } + this.numFrames = microphoneConfig.numFramesPerSpectrogram || 43; + this.sampleRateHz = microphoneConfig.sampleRateHz; + this.columnTruncateLength = microphoneConfig.columnTruncateLength || this.fftSize; + this.audioTrackConstraints = microphoneConfig.audioTrackConstraints; + this.smoothingTimeConstant = microphoneConfig.smoothingTimeConstant || 0; + this.includeSpectrogram = microphoneConfig.includeSpectrogram === false ? false : true; + this.includeWaveform = microphoneConfig.includeWaveform === true ? true : false; + if (!this.includeSpectrogram && !this.includeWaveform) { + throw new Error("Both includeSpectrogram and includeWaveform are false. At least one type of data should be returned."); + } + } + summary() { + return `microphone`; + } + static async create(microphoneConfig = {}) { + if (env().get("IS_NODE")) { + throw new Error("microphone API is only supported in browser environment."); + } + const microphoneIterator = new MicrophoneIterator(microphoneConfig); + await microphoneIterator.start(); + return microphoneIterator; + } + async start() { + try { + this.stream = await navigator.mediaDevices.getUserMedia({ + audio: this.audioTrackConstraints == null ? true : this.audioTrackConstraints, + video: false + }); + } catch (e) { + throw new Error(`Error thrown while initializing video stream: ${e.message}`); + } + if (!this.stream) { + throw new Error("Could not obtain audio from microphone."); + } + const ctxConstructor = window.AudioContext || window.webkitAudioContext; + this.audioContext = new ctxConstructor(); + if (!this.sampleRateHz) { + this.sampleRateHz = this.audioContext.sampleRate; + } else if (this.audioContext.sampleRate !== this.sampleRateHz) { + throw new Error(`Mismatch in sampling rate: Expected: ${this.sampleRateHz}; Actual: ${this.audioContext.sampleRate}`); + } + const streamSource = this.audioContext.createMediaStreamSource(this.stream); + this.analyser = this.audioContext.createAnalyser(); + this.analyser.fftSize = this.fftSize * 2; + this.analyser.smoothingTimeConstant = this.smoothingTimeConstant; + streamSource.connect(this.analyser); + this.freqData = new Float32Array(this.fftSize); + this.timeData = new Float32Array(this.fftSize); + return; + } + async next() { + if (this.isClosed) { + return {value: null, done: true}; + } + let spectrogramTensor; + let waveformTensor; + const audioDataQueue = await this.getAudioData(); + if (this.includeSpectrogram) { + const freqData = this.flattenQueue(audioDataQueue.freqDataQueue); + spectrogramTensor = this.getTensorFromAudioDataArray(freqData, [this.numFrames, this.columnTruncateLength, 1]); + } + if (this.includeWaveform) { + const timeData = this.flattenQueue(audioDataQueue.timeDataQueue); + waveformTensor = this.getTensorFromAudioDataArray(timeData, [this.numFrames * this.fftSize, 1]); + } + return { + value: {spectrogram: spectrogramTensor, waveform: waveformTensor}, + done: false + }; + } + async capture() { + return (await this.next()).value; + } + async getAudioData() { + const freqDataQueue = []; + const timeDataQueue = []; + let currentFrames = 0; + return new Promise((resolve) => { + const intervalID = setInterval(() => { + if (this.includeSpectrogram) { + this.analyser.getFloatFrequencyData(this.freqData); + if (this.freqData[0] === -Infinity) { + resolve({freqDataQueue, timeDataQueue}); + } + freqDataQueue.push(this.freqData.slice(0, this.columnTruncateLength)); + } + if (this.includeWaveform) { + this.analyser.getFloatTimeDomainData(this.timeData); + timeDataQueue.push(this.timeData.slice()); + } + if (++currentFrames === this.numFrames) { + clearInterval(intervalID); + resolve({freqDataQueue, timeDataQueue}); + } + }, this.fftSize / this.sampleRateHz * 1e3); + }); + } + stop() { + if (!this.isClosed) { + this.isClosed = true; + this.analyser.disconnect(); + this.audioContext.close(); + if (this.stream != null && this.stream.getTracks().length > 0) { + this.stream.getTracks()[0].stop(); + } + } + } + toArray() { + throw new Error("Can not convert infinite audio stream to array."); + } + getSampleRate() { + return this.sampleRateHz; + } + flattenQueue(queue) { + const frameSize = queue[0].length; + const freqData = new Float32Array(queue.length * frameSize); + queue.forEach((data, i) => freqData.set(data, i * frameSize)); + return freqData; + } + getTensorFromAudioDataArray(freqData, shape) { + const vals = new Float32Array(util_exports.sizeFromShape(shape)); + vals.set(freqData, vals.length - freqData.length); + return tensor5(vals, shape); + } + } + + // node_modules/@tensorflow/tfjs-data/dist/iterators/webcam_iterator.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============================================================================= + */ + class WebcamIterator extends LazyIterator { + constructor(webcamVideoElement, webcamConfig) { + super(); + this.webcamVideoElement = webcamVideoElement; + this.webcamConfig = webcamConfig; + this.isClosed = true; + this.resize = false; + if (this.needToResize()) { + this.resize = true; + this.cropSize = [this.webcamConfig.resizeHeight, this.webcamConfig.resizeWidth]; + this.cropBoxInd = tensor1d([0], "int32"); + if (this.webcamConfig.centerCrop) { + const widthCroppingRatio = this.webcamConfig.resizeWidth * 1 / this.webcamVideoElement.width; + const heightCroppingRatio = this.webcamConfig.resizeHeight * 1 / this.webcamVideoElement.height; + const widthCropStart = (1 - widthCroppingRatio) / 2; + const heightCropStart = (1 - heightCroppingRatio) / 2; + const widthCropEnd = widthCropStart + widthCroppingRatio; + const heightCropEnd = heightCroppingRatio + heightCropStart; + this.cropBox = tensor2d([heightCropStart, widthCropStart, heightCropEnd, widthCropEnd], [1, 4]); + } else { + this.cropBox = tensor2d([0, 0, 1, 1], [1, 4]); + } + } + } + summary() { + return `webcam`; + } + static async create(webcamVideoElement, webcamConfig = {}) { + if (env().get("IS_NODE")) { + throw new Error("tf.data.webcam is only supported in browser environment."); + } + if (!webcamVideoElement) { + webcamVideoElement = document.createElement("video"); + if (!webcamConfig.resizeWidth || !webcamConfig.resizeHeight) { + throw new Error("Please provide webcam video element, or resizeWidth and resizeHeight to create a hidden video element."); + } + webcamVideoElement.width = webcamConfig.resizeWidth; + webcamVideoElement.height = webcamConfig.resizeHeight; + } + const webcamIterator = new WebcamIterator(webcamVideoElement, webcamConfig); + await webcamIterator.start(); + return webcamIterator; + } + async start() { + if (this.webcamConfig.facingMode) { + util_exports.assert(this.webcamConfig.facingMode === "user" || this.webcamConfig.facingMode === "environment", () => `Invalid webcam facing mode: ${this.webcamConfig.facingMode}. Please provide 'user' or 'environment'`); + } + try { + this.stream = await navigator.mediaDevices.getUserMedia({ + video: { + deviceId: this.webcamConfig.deviceId, + facingMode: this.webcamConfig.facingMode ? this.webcamConfig.facingMode : "user", + width: this.webcamVideoElement.width, + height: this.webcamVideoElement.height + } + }); + } catch (e) { + e.message = `Error thrown while initializing video stream: ${e.message}`; + throw e; + } + if (!this.stream) { + throw new Error("Could not obtain video from webcam."); + } + try { + this.webcamVideoElement.srcObject = this.stream; + } catch (error) { + console.log(error); + this.webcamVideoElement.src = window.URL.createObjectURL(this.stream); + } + this.webcamVideoElement.play(); + this.isClosed = false; + return new Promise((resolve) => { + this.webcamVideoElement.onloadedmetadata = () => { + resolve(); + }; + }); + } + async next() { + if (this.isClosed) { + return {value: null, done: true}; + } + let img; + try { + img = browser_exports.fromPixels(this.webcamVideoElement); + } catch (e) { + throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(e)}`); + } + if (this.resize) { + try { + return {value: this.cropAndResizeFrame(img), done: false}; + } catch (e) { + throw new Error(`Error thrown cropping the video: ${e.message}`); + } finally { + img.dispose(); + } + } else { + return {value: img, done: false}; + } + } + needToResize() { + if (this.webcamConfig.resizeWidth && this.webcamConfig.resizeHeight && (this.webcamVideoElement.width !== this.webcamConfig.resizeWidth || this.webcamVideoElement.height !== this.webcamConfig.resizeHeight)) { + return true; + } + return false; + } + cropAndResizeFrame(img) { + return tidy(() => { + const expandedImage = img.toFloat().expandDims(0); + let resizedImage; + resizedImage = image.cropAndResize(expandedImage, this.cropBox, this.cropBoxInd, this.cropSize, "bilinear"); + const shape = resizedImage.shape; + return resizedImage.reshape(shape.slice(1)); + }); + } + async capture() { + return (await this.next()).value; + } + stop() { + const tracks = this.stream.getTracks(); + tracks.forEach((track) => track.stop()); + try { + this.webcamVideoElement.srcObject = null; + } catch (error) { + console.log(error); + this.webcamVideoElement.src = null; + } + this.isClosed = true; + } + toArray() { + throw new Error("Can not convert infinite video stream to array."); + } + } + + // node_modules/@tensorflow/tfjs-data/dist/datasource.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============================================================================= + */ + class DataSource { + } + + // node_modules/@tensorflow/tfjs-data/dist/iterators/string_iterator.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============================================================================= + */ + class StringIterator extends LazyIterator { + split(separator) { + return new SplitIterator(this, separator); + } + } + class SplitIterator extends StringIterator { + constructor(upstream, separator) { + super(); + this.upstream = upstream; + this.impl = new SplitIteratorImpl(upstream, separator); + } + summary() { + return this.impl.summary(); + } + async next() { + return this.impl.next(); + } + } + class SplitIteratorImpl extends OneToManyIterator { + constructor(upstream, separator) { + super(); + this.upstream = upstream; + this.separator = separator; + this.carryover = ""; + } + summary() { + return `${this.upstream.summary()} -> Split('${this.separator}')`; + } + async pump() { + const chunkResult = await this.upstream.next(); + if (chunkResult.done) { + if (this.carryover === "") { + return false; + } + this.outputQueue.push(this.carryover); + this.carryover = ""; + return true; + } + const lines = chunkResult.value.split(this.separator); + lines[0] = this.carryover + lines[0]; + for (const line of lines.slice(0, -1)) { + this.outputQueue.push(line); + } + this.carryover = lines[lines.length - 1]; + return true; + } + } + + // node_modules/@tensorflow/tfjs-data/dist/iterators/byte_chunk_iterator.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============================================================================= + */ + class ByteChunkIterator extends LazyIterator { + decodeUTF8() { + return new Utf8Iterator(this); + } + } + class Utf8Iterator extends StringIterator { + constructor(upstream) { + super(); + this.upstream = upstream; + this.impl = new Utf8IteratorImpl(upstream); + } + summary() { + return this.impl.summary(); + } + async next() { + return this.impl.next(); + } + } + class Utf8IteratorImpl extends OneToManyIterator { + constructor(upstream) { + super(); + this.upstream = upstream; + if (env().get("IS_BROWSER")) { + this.decoder = new TextDecoder("utf-8"); + } else { + const {StringDecoder} = require_string_decoder(); + this.decoder = new StringDecoder("utf8"); + } + } + summary() { + return `${this.upstream.summary()} -> Utf8`; + } + async pump() { + const chunkResult = await this.upstream.next(); + let chunk; + if (chunkResult.done) { + return false; + } else { + chunk = chunkResult.value; + } + let text; + if (env().get("IS_BROWSER")) { + text = this.decoder.decode(chunk, {stream: true}); + } else { + text = this.decoder.write(Buffer.from(chunk.buffer)); + } + this.outputQueue.push(text); + return true; + } + } + + // node_modules/@tensorflow/tfjs-data/dist/iterators/file_chunk_iterator.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============================================================================= + */ + class FileChunkIterator extends ByteChunkIterator { + constructor(file, options = {}) { + super(); + this.file = file; + this.options = options; + util_exports.assert(file instanceof Uint8Array || (env().get("IS_BROWSER") ? file instanceof File || file instanceof Blob : false), () => "FileChunkIterator only supports File, Blob and Uint8Array right now."); + this.offset = options.offset || 0; + this.chunkSize = options.chunkSize || 1024 * 1024; + } + summary() { + return `FileChunks ${this.file}`; + } + async next() { + if (this.offset >= (this.file instanceof Uint8Array ? this.file.byteLength : this.file.size)) { + return {value: null, done: true}; + } + const chunk = new Promise((resolve, reject) => { + const end = this.offset + this.chunkSize; + if (this.file instanceof Uint8Array) { + resolve(new Uint8Array(this.file.slice(this.offset, end))); + } else { + const fileReader = new FileReader(); + fileReader.onload = (event) => { + let data = fileReader.result; + if (data instanceof ArrayBuffer) { + data = new Uint8Array(data); + } + if (!(data instanceof Uint8Array)) { + return reject(new TypeError("FileReader returned unknown type.")); + } + resolve(data); + }; + fileReader.onabort = (event) => { + return reject(new Error("Aborted")); + }; + fileReader.onerror = (event) => { + return reject(new Error(event.type)); + }; + const slice17 = this.file.slice(this.offset, end); + fileReader.readAsArrayBuffer(slice17); + } + this.offset = end; + }); + return {value: await chunk, done: false}; + } + } + + // node_modules/@tensorflow/tfjs-data/dist/iterators/url_chunk_iterator.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============================================================================= + */ + async function urlChunkIterator(url, options = {}) { + let urlString; + let requestInit; + if (typeof url === "string") { + urlString = url; + } else { + urlString = url.url; + requestInit = getRequestInitFromRequest(url); + } + const response = await util_exports.fetch(urlString, requestInit); + if (response.ok) { + const uint8Array = new Uint8Array(await response.arrayBuffer()); + return new FileChunkIterator(uint8Array, options); + } else { + throw new Error(response.statusText); + } + } + const getRequestInitFromRequest = (request) => { + const init = { + method: request.method, + headers: request.headers, + body: request.body, + mode: request.mode, + credentials: request.credentials, + cache: request.cache, + redirect: request.redirect, + referrer: request.referrer, + integrity: request.integrity + }; + return init; + }; + + // node_modules/@tensorflow/tfjs-data/dist/util/source_util.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============================================================================= + */ + function isLocalPath(source) { + return typeof source === "string" && source.substr(0, 7) === "file://"; + } + + // node_modules/@tensorflow/tfjs-data/dist/sources/file_data_source.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============================================================================= + */ + class FileDataSource extends DataSource { + constructor(input2, options = {}) { + super(); + this.input = input2; + this.options = options; + } + async iterator() { + if (isLocalPath(this.input) && env().get("IS_NODE")) { + const fs = require_disabled_fs(); + this.input = fs.readFileSync(this.input.substr(7)); + } + return new FileChunkIterator(this.input, this.options); + } + } + + // node_modules/@tensorflow/tfjs-data/dist/sources/url_data_source.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============================================================================= + */ + class URLDataSource extends DataSource { + constructor(url, fileOptions = {}) { + super(); + this.url = url; + this.fileOptions = fileOptions; + } + async iterator() { + if (isLocalPath(this.url)) { + return new FileDataSource(this.url, this.fileOptions).iterator(); + } else { + return urlChunkIterator(this.url, this.fileOptions); + } + } + } + + // node_modules/@tensorflow/tfjs-data/dist/readers.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============================================================================= + */ + function csv(source, csvConfig = {}) { + return new CSVDataset(new URLDataSource(source), csvConfig); + } + function func(f) { + const iter = iteratorFromFunction(f); + return datasetFromIteratorFn(async () => iter); + } + function generator(generator2) { + return datasetFromIteratorFn(async () => { + const gen = await generator2(); + return iteratorFromFunction(() => gen.next()); + }); + } + async function webcam(webcamVideoElement, webcamConfig) { + return WebcamIterator.create(webcamVideoElement, webcamConfig); + } + async function microphone(microphoneConfig) { + return MicrophoneIterator.create(microphoneConfig); + } + + // node_modules/@tensorflow/tfjs-data/dist/version.js + /** @license See the LICENSE file. */ + const version8 = "2.3.0"; + + // node_modules/@tensorflow/tfjs-data/dist/index.js const dist_exports = {}; __export(dist_exports, { + CSVDataset: () => CSVDataset, + Dataset: () => Dataset, + FileDataSource: () => FileDataSource, + TextLineDataset: () => TextLineDataset, + URLDataSource: () => URLDataSource, + array: () => array, + csv: () => csv, + func: () => func, + generator: () => generator, + microphone: () => microphone, + version_data: () => version8, + webcam: () => webcam, + zip: () => zip + }); + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + + // node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js + /** + * @license + * Copyright 2019 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + function assertNotComplex(tensor17, opName) { + if (!Array.isArray(tensor17)) { + tensor17 = [tensor17]; + } + tensor17.forEach((t) => { + if (t != null) { + util_exports.assert(t.dtype !== "complex64", () => `${opName} does not support complex64 tensors in the CPU backend.`); + } + }); + } + + // node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/pool_utils.js + /** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + function pool3(xValues, xShape, dtype, strides, convInfo, poolType) { + const strideHeight = convInfo.strideHeight; + const strideWidth = convInfo.strideWidth; + const dilationHeight = convInfo.dilationHeight; + const dilationWidth = convInfo.dilationWidth; + const effectiveFilterHeight = convInfo.effectiveFilterHeight; + const effectiveFilterWidth = convInfo.effectiveFilterWidth; + const padTop = convInfo.padInfo.top; + const padLeft = convInfo.padInfo.left; + const initialValue = poolType === "max" ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY; + const output = buffer(convInfo.outShape, dtype); + const outputVals = output.values; + const outputBatchStrides = convInfo.outShape[1] * convInfo.outShape[2] * convInfo.outShape[3]; + const outputRowStrides = convInfo.outShape[2] * convInfo.outShape[3]; + const outputColStrides = convInfo.outShape[3]; + for (let b = 0; b < convInfo.batchSize; ++b) { + const outputBatchOffset = b * outputBatchStrides; + const inputBatchOffset = b * strides[0]; + for (let d = 0; d < convInfo.inChannels; ++d) { + for (let yR = 0; yR < convInfo.outHeight; ++yR) { + const xRCorner = yR * strideHeight - padTop; + const xRMin = Math.max(0, xRCorner); + const xRMax = Math.min(convInfo.inHeight, effectiveFilterHeight + xRCorner); + const outputRowOffset = outputBatchOffset + yR * outputRowStrides; + for (let yC = 0; yC < convInfo.outWidth; ++yC) { + const xCCorner = yC * strideWidth - padLeft; + const xCMin = Math.max(0, xCCorner); + const xCMax = Math.min(convInfo.inWidth, effectiveFilterWidth + xCCorner); + let minMaxValue = initialValue; + let avgValue = 0; + let count2 = 0; + for (let xR = xRMin; xR < xRMax; xR += dilationHeight) { + const xROffset = inputBatchOffset + xR * strides[1]; + for (let xC = xCMin; xC < xCMax; xC += dilationWidth) { + const xCOffset = xROffset + xC * strides[2]; + const pixel = xValues[xCOffset + d]; + if (poolType === "max" && pixel > minMaxValue) { + minMaxValue = pixel; + } else if (poolType === "avg") { + avgValue += pixel; + count2++; + } + } + if (isNaN(minMaxValue)) { + break; + } + } + const outputOffset = outputRowOffset + yC * outputColStrides + d; + outputVals[outputOffset] = poolType === "avg" ? avgValue / count2 : minMaxValue; + } + } + } + } + return output; + } + function maxPoolPositions(xValues, xShape, dtype, convInfo, flattenPositions = false, includeBatchInIndex = false) { + const maxPositions = buffer(convInfo.outShape, "int32"); + const strideHeight = convInfo.strideHeight; + const strideWidth = convInfo.strideWidth; + const dilationHeight = convInfo.dilationHeight; + const dilationWidth = convInfo.dilationWidth; + const effectiveFilterHeight = convInfo.effectiveFilterHeight; + const effectiveFilterWidth = convInfo.effectiveFilterWidth; + const padTop = convInfo.padInfo.top; + const padLeft = convInfo.padInfo.left; + const xBuf = buffer(xShape, dtype, xValues); + for (let b = 0; b < convInfo.batchSize; ++b) { + for (let d = 0; d < convInfo.inChannels; ++d) { + for (let yR = 0; yR < convInfo.outHeight; ++yR) { + const xRCorner = yR * strideHeight - padTop; + let xRMin = xRCorner; + while (xRMin < 0) { + xRMin += dilationHeight; + } + const xRMax = Math.min(convInfo.inHeight, effectiveFilterHeight + xRCorner); + for (let yC = 0; yC < convInfo.outWidth; ++yC) { + const xCCorner = yC * strideWidth - padLeft; + let xCMin = xCCorner; + while (xCMin < 0) { + xCMin += dilationWidth; + } + const xCMax = Math.min(convInfo.inWidth, effectiveFilterWidth + xCCorner); + let maxValue = Number.NEGATIVE_INFINITY; + let maxPosition = -1; + for (let xR = xRMin; xR < xRMax; xR += dilationHeight) { + const wR = xR - xRCorner; + for (let xC = xCMin; xC < xCMax; xC += dilationWidth) { + const wC = xC - xCCorner; + const pixel = xBuf.get(b, xR, xC, d); + if (pixel > maxValue) { + maxValue = pixel; + if (flattenPositions) { + maxPosition = includeBatchInIndex ? ((b * convInfo.inHeight + xR) * convInfo.inWidth + xC) * convInfo.inChannels + d : (xR * convInfo.inWidth + xC) * convInfo.inChannels + d; + } else { + maxPosition = wR * effectiveFilterWidth + wC; + } + } + } + } + maxPositions.set(maxPosition, b, yR, yC, d); + } + } + } + } + return maxPositions; + } + + // node_modules/@tensorflow/tfjs-backend-cpu/dist/backend_cpu.js + const seedrandom4 = __toModule(require_seedrandom2()); + /** + * @license + * Copyright 2017 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const nonMaxSuppressionV3Impl2 = kernel_impls_exports.nonMaxSuppressionV3Impl; + const split8 = kernel_impls_exports.split; + const tile7 = kernel_impls_exports.tile; + const topkImpl2 = kernel_impls_exports.topkImpl; + const whereImpl2 = kernel_impls_exports.whereImpl; + function mapActivation(backend2, x, activation2, preluActivationWeights) { + if (activation2 === "linear") { + return backend2.linear(x); + } else if (activation2 === "relu") { + return backend2.relu(x); + } else if (activation2 === "elu") { + return backend2.elu(x); + } else if (activation2 === "relu6") { + return backend2.relu6(x); + } else if (activation2 === "prelu") { + return backend2.prelu(x, preluActivationWeights); + } + throw new Error(`Activation ${activation2} has not been implemented for the CPU backend.`); + } + class MathBackendCPU extends KernelBackend { + constructor() { + super(); + this.blockSize = 48; + this.firstUse = true; + this.data = new DataStorage(this, engine22()); + } + write(values, shape, dtype) { + if (this.firstUse) { + this.firstUse = false; + if (env().get("IS_NODE")) { + backend_util_exports.warn("\n============================\nHi there 👋. Looks like you are running TensorFlow.js in Node.js. To speed things up dramatically, install our node backend, which binds to TensorFlow C++, by running npm i @tensorflow/tfjs-node, or npm i @tensorflow/tfjs-node-gpu if you have CUDA. Then call require('@tensorflow/tfjs-node'); (-gpu suffix for CUDA) at the start of your program. Visit https://github.com/tensorflow/tfjs-node for more details.\n============================"); + } + } + const dataId = {}; + this.data.set(dataId, {values, dtype}); + return dataId; + } + move(dataId, values, shape, dtype) { + this.data.set(dataId, {values, dtype}); + } + numDataIds() { + return this.data.numDataIds(); + } + async read(dataId) { + return this.readSync(dataId); + } + readSync(dataId) { + const {dtype, complexTensors} = this.data.get(dataId); + if (dtype === "complex64") { + const realValues = this.readSync(complexTensors.real.dataId); + const imagValues = this.readSync(complexTensors.imag.dataId); + return backend_util_exports.mergeRealAndImagArrays(realValues, imagValues); + } + return this.data.get(dataId).values; + } + bufferSync(t) { + const data = this.readSync(t.dataId); + let decodedData = data; + if (t.dtype === "string") { + try { + decodedData = data.map((d) => util_exports.decodeString(d)); + } catch (_a) { + throw new Error("Failed to decode encoded string bytes into utf-8"); + } + } + return buffer(t.shape, t.dtype, decodedData); + } + makeOutput(values, shape, dtype) { + const dataId = this.write(values, shape, dtype); + return engine22().makeTensorFromDataId(dataId, shape, dtype, this); + } + disposeData(dataId) { + if (this.data.has(dataId)) { + const {complexTensors} = this.data.get(dataId); + if (complexTensors != null) { + complexTensors.real.dispose(); + complexTensors.imag.dispose(); + } + this.data.delete(dataId); + } + } + async time(f) { + const start = util_exports.now(); + f(); + const kernelMs = util_exports.now() - start; + return {kernelMs}; + } + memory() { + return { + unreliable: true, + reasons: ["The reported memory is an upper bound. Due to automatic garbage collection, the true allocated memory may be less."] + }; + } + complex(real6, imag6) { + const result = this.makeOutput(null, real6.shape, "complex64"); + const resultData = this.data.get(result.dataId); + resultData.complexTensors = { + real: engine22().keep(real6.clone()), + imag: engine22().keep(imag6.clone()) + }; + return result; + } + real(input2) { + const resultData = this.data.get(input2.dataId); + return resultData.complexTensors.real.clone(); + } + imag(input2) { + const resultData = this.data.get(input2.dataId); + return resultData.complexTensors.imag.clone(); + } + slice(x, begin, size) { + assertNotComplex(x, "slice"); + const isContinous = slice_util_exports.isSliceContinous(x.shape, begin, size); + if (isContinous) { + const flatOffset = slice_util_exports.computeFlatOffset(begin, x.strides); + const length = util_exports.sizeFromShape(size); + const vals = this.readSync(x.dataId); + return tensor5(vals.subarray(flatOffset, flatOffset + length), size, x.dtype); + } + const buffer10 = buffer(size, x.dtype); + const xBuf = this.bufferSync(x); + for (let i = 0; i < buffer10.size; ++i) { + const loc = buffer10.indexToLoc(i); + const xLoc = loc.map((idx, j) => idx + begin[j]); + buffer10.values[i] = xBuf.get(...xLoc); + } + return buffer10.toTensor(); + } + stridedSlice(x, begin, end, strides) { + assertNotComplex(x, "stridedSlice"); + const outShape = slice_util_exports.computeOutShape(begin, end, strides); + if (outShape.some((axis) => axis === 0)) { + return tensor5([], outShape); + } + const buffer10 = buffer(outShape, x.dtype); + const xBuf = this.bufferSync(x); + for (let i = 0; i < buffer10.size; i++) { + const loc = buffer10.indexToLoc(i); + const newLoc = new Array(loc.length); + for (let j = 0; j < newLoc.length; j++) { + newLoc[j] = loc[j] * strides[j] + begin[j]; + } + buffer10.set(xBuf.get(...newLoc), ...loc); + } + return buffer10.toTensor(); + } + diag(x) { + const xVals = this.readSync(x.dataId); + const buffer10 = buffer([x.size, x.size], x.dtype); + const vals = buffer10.values; + for (let i = 0; i < xVals.length; i++) { + vals[i * x.size + i] = xVals[i]; + } + return buffer10.toTensor(); + } + unstack(x, axis) { + const num = x.shape[axis]; + const outShape = new Array(x.rank - 1); + let outIndex = 0; + for (let i = 0; i < x.rank; i++) { + if (i !== axis) { + outShape[outIndex++] = x.shape[i]; + } + } + const begin = new Array(x.rank).fill(0); + const size = x.shape.slice(); + size[axis] = 1; + const res = new Array(num); + for (let i = 0; i < res.length; i++) { + begin[axis] = i; + res[i] = this.slice(x, begin, size).reshape(outShape); + } + return res; + } + reverse(x, axis) { + assertNotComplex(x, "reverse"); + const buffer10 = buffer(x.shape, x.dtype); + const xBuf = this.bufferSync(x); + for (let i = 0; i < buffer10.size; i++) { + const outLoc = buffer10.indexToLoc(i); + const inLoc = outLoc.slice(); + axis.forEach((ax) => inLoc[ax] = x.shape[ax] - 1 - inLoc[ax]); + buffer10.set(xBuf.get(...inLoc), ...outLoc); + } + return buffer10.toTensor(); + } + concat(tensors, axis) { + if (tensors[0].dtype === "complex64") { + const reals = tensors.map((t) => real(t)); + const imags = tensors.map((t) => imag(t)); + return complex(this.concat(reals, axis), this.concat(imags, axis)); + } + const tensors2D = tensors.map((t) => { + const innerSize = util_exports.sizeFromShape(t.shape.slice(axis)); + return t.as2D(-1, innerSize); + }); + const outShape = backend_util_exports.computeOutShape(tensors2D.map((t) => t.shape), 1); + const values = buffer(outShape, tensors[0].dtype).values; + if (tensors2D[0].shape[0] === 1) { + let offset = 0; + tensors2D.forEach((t) => { + values.set(this.readSync(t.dataId), offset); + offset += t.size; + }); + } else { + let colOffset = 0; + tensors2D.forEach((t) => { + const tVals = this.readSync(t.dataId); + let tIdx = 0; + for (let row = 0; row < t.shape[0]; ++row) { + const resIdx = row * outShape[1] + colOffset; + for (let col = 0; col < t.shape[1]; ++col) { + values[resIdx + col] = tVals[tIdx++]; + } + } + colOffset += t.shape[1]; + }); + } + const finalOutShape = backend_util_exports.computeOutShape(tensors.map((t) => t.shape), axis); + return tensor5(values, finalOutShape, tensors[0].dtype); + } + neg(x) { + assertNotComplex(x, "neg"); + return this.multiply(scalar(-1), x); + } + add(a, b) { + if (a.dtype === "complex64" || b.dtype === "complex64") { + return this.broadcastedBinaryComplexOp(a.cast("complex64"), b.cast("complex64"), (aReal, aImag, bReal, bImag) => { + return {real: aReal + bReal, imag: aImag + bImag}; + }); + } + return this.broadcastedBinaryOp(a, b, upcastType(a.dtype, b.dtype), (aValue, bValue) => aValue + bValue); + } + addN(tensors) { + assertNotComplex(tensors, "addN"); + const vals = tensors.map((t) => this.readSync(t.dataId)); + const result = buffer(tensors[0].shape, tensors[0].dtype); + const resultVals = result.values; + for (let i = 0; i < tensors.length; i++) { + const currVals = vals[i]; + for (let j = 0; j < resultVals.length; j++) { + resultVals[j] += currVals[j]; + } + } + return result.toTensor(); + } + softmax(logits, dim) { + const axes = util_exports.parseAxisParam([dim], logits.shape); + const maxLogit = max(logits, axes); + const expandedShape = backend_util_exports.expandShapeToKeepDim(maxLogit.shape, axes); + const a = this.subtract(logits, maxLogit.reshape(expandedShape)); + const b = this.exp(a); + const sumExp = this.sum(b, axes).reshape(expandedShape); + return div(b, sumExp); + } + subtract(a, b) { + if (a.dtype === "complex64" || b.dtype === "complex64") { + return this.broadcastedBinaryComplexOp(a.cast("complex64"), b.cast("complex64"), (aReal, aImag, bReal, bImag) => { + return {real: aReal - bReal, imag: aImag - bImag}; + }); + } + return this.broadcastedBinaryOp(a, b, upcastType(a.dtype, b.dtype), (aValue, bValue) => aValue - bValue); + } + pow(a, b) { + assertNotComplex([a, b], "pow"); + return this.broadcastedBinaryOp(a, b, a.dtype, (aValue, bValue) => Math.pow(aValue, bValue)); + } + batchMatMul(a, b, transposeA, transposeB) { + assertNotComplex([a, b], "matMul"); + const sharedDim = transposeA ? a.shape[1] : a.shape[2]; + const leftDim = transposeA ? a.shape[2] : a.shape[1]; + const rightDim = transposeB ? b.shape[1] : b.shape[2]; + const batchDim = a.shape[0]; + const aValues = this.readSync(a.dataId); + const bValues = this.readSync(b.dataId); + const [aBatch, aOuterStep, aInnerStep] = transposeA ? [a.strides[0], 1, a.strides[1]] : [a.strides[0], a.strides[1], 1]; + const [bInnerStep, bOuterStep, bBatch] = transposeB ? [1, b.strides[1], b.strides[0]] : [b.strides[1], 1, b.strides[0]]; + const size = leftDim * rightDim; + const result = buffer([batchDim, leftDim, rightDim], a.dtype); + const resVals = result.values; + const blockSize = this.blockSize; + for (let b2 = 0; b2 < batchDim; b2++) { + for (let i0 = 0; i0 < leftDim; i0 += blockSize) { + for (let j0 = 0; j0 < rightDim; j0 += blockSize) { + for (let k0 = 0; k0 < sharedDim; k0 += blockSize) { + const iBlock = Math.min(i0 + blockSize, leftDim); + const jBlock = Math.min(j0 + blockSize, rightDim); + const kBlock = Math.min(k0 + blockSize, sharedDim); + for (let i = i0; i < iBlock; i++) { + for (let j = j0; j < jBlock; j++) { + let sum26 = 0; + for (let k = k0; k < kBlock; k++) { + sum26 += aValues[b2 * aBatch + i * aOuterStep + k * aInnerStep] * bValues[k * bInnerStep + j * bOuterStep + b2 * bBatch]; + } + resVals[b2 * size + (i * rightDim + j)] += sum26; + } + } + } + } + } + } + return result.toTensor(); + } + fusedBatchMatMul({a, b, transposeA, transposeB, bias, activation: activation2, preluActivationWeights}) { + let result = this.batchMatMul(a, b, transposeA, transposeB); + if (bias) { + result = this.add(result, bias); + } + if (activation2) { + result = mapActivation(this, result, activation2, preluActivationWeights); + } + return result; + } + multiply(a, b) { + if (a.dtype === "complex64" || b.dtype === "complex64") { + return this.broadcastedBinaryComplexOp(a.cast("complex64"), b.cast("complex64"), (aReal, aImag, bReal, bImag) => { + return { + real: aReal * bReal - aImag * bImag, + imag: aReal * bImag + aImag * bReal + }; + }); + } + return this.broadcastedBinaryOp(a, b, upcastType(a.dtype, b.dtype), (aValue, bValue) => aValue * bValue); + } + floorDiv(a, b) { + assertNotComplex([a, b], "floorDiv"); + const op2 = (a2, b2) => Math.floor(a2 / b2); + const outputDtype = "int32"; + return this.broadcastedBinaryOp(a, b, outputDtype, op2); + } + sum(x, axes) { + assertNotComplex(x, "sum"); + backend_util_exports.assertAxesAreInnerMostDims("sum", axes, x.rank); + const [outShape, reduceShape] = backend_util_exports.computeOutAndReduceShapes(x.shape, axes); + const resultDtype = upcastType(x.dtype, "int32"); + const result = zeros(outShape, resultDtype); + const reduceSize = util_exports.sizeFromShape(reduceShape); + const vals = this.readSync(result.dataId); + const aVals = this.readSync(x.dataId); + for (let i = 0; i < vals.length; ++i) { + const offset = i * reduceSize; + let sum26 = 0; + for (let j = 0; j < reduceSize; ++j) { + sum26 += aVals[offset + j]; + } + vals[i] = sum26; + } + return result; + } + prod(x, axes) { + assertNotComplex(x, "sum"); + const [outShape, reduceShape] = backend_util_exports.computeOutAndReduceShapes(x.shape, axes); + const resultDtype = upcastType(x.dtype, "int32"); + const result = zeros(outShape, resultDtype); + const reduceSize = util_exports.sizeFromShape(reduceShape); + const vals = this.readSync(result.dataId); + const aVals = this.readSync(x.dataId); + for (let i = 0; i < vals.length; ++i) { + const offset = i * reduceSize; + let prod3 = 1; + for (let j = 0; j < reduceSize; ++j) { + prod3 *= aVals[offset + j]; + } + vals[i] = prod3; + } + return result; + } + unsortedSegmentSum(x, segmentIds, numSegments) { + assertNotComplex(x, "unsortedSegmentSum"); + const res = []; + const numIters = x.rank - segmentIds.rank; + for (let i = 0; i < numIters; ++i) { + segmentIds = segmentIds.expandDims(i + 1); + } + for (let i = 0; i < numSegments; ++i) { + const segmentId = scalar(i, "int32"); + const mask = equal(segmentId, segmentIds).asType("float32"); + const sum26 = mask.mul(x).sum(0); + res.push(sum26); + } + return stack(res); + } + argMin(x, axis) { + assertNotComplex(x, "argMin"); + const axes = [axis]; + backend_util_exports.assertAxesAreInnerMostDims("argMin", axes, x.rank); + const [outShape, reduceShape] = backend_util_exports.computeOutAndReduceShapes(x.shape, axes); + const result = zeros(outShape, "int32"); + const reduceSize = util_exports.sizeFromShape(reduceShape); + const vals = this.readSync(result.dataId); + const aVals = this.readSync(x.dataId); + for (let i = 0; i < vals.length; ++i) { + const offset = i * reduceSize; + let min6 = aVals[offset]; + let minIndex = 0; + for (let j = 0; j < reduceSize; ++j) { + const value = aVals[offset + j]; + if (value < min6) { + min6 = value; + minIndex = j; + } + } + vals[i] = minIndex; + } + return result; + } + argMax(x, axis) { + assertNotComplex(x, "argMax"); + const axes = [axis]; + backend_util_exports.assertAxesAreInnerMostDims("argMax", axes, x.rank); + const [outShape, reduceShape] = backend_util_exports.computeOutAndReduceShapes(x.shape, axes); + const result = zeros(outShape, "int32"); + const reduceSize = util_exports.sizeFromShape(reduceShape); + const vals = this.readSync(result.dataId); + const aVals = this.readSync(x.dataId); + for (let i = 0; i < vals.length; ++i) { + const offset = i * reduceSize; + let max8 = aVals[offset]; + let maxIndex = 0; + for (let j = 0; j < reduceSize; ++j) { + const value = aVals[offset + j]; + if (value > max8) { + max8 = value; + maxIndex = j; + } + } + vals[i] = maxIndex; + } + return result; + } + cumsum(x, axis, exclusive, reverse9) { + assertNotComplex(x, "cumsum"); + if (axis !== x.rank - 1) { + throw new Error(`backend.cumsum in CPU expects an inner-most axis=${x.rank - 1} but got axis=${axis}`); + } + const resultDtype = upcastType(x.dtype, "int32"); + const result = zeros(x.shape, resultDtype); + const vals = this.readSync(result.dataId); + const aVals = this.readSync(x.dataId); + const finalDim = x.shape[x.rank - 1]; + const indexAdjuster = reverse9 ? (i, j) => i + finalDim - j - 1 : (i, j) => i + j; + for (let i = 0; i < aVals.length; i += finalDim) { + for (let j = 0; j < finalDim; j++) { + const idx = indexAdjuster(i, j); + if (j === 0) { + vals[idx] = exclusive ? 0 : aVals[idx]; + } else { + const prevIdx = indexAdjuster(i, j - 1); + vals[idx] = exclusive ? aVals[prevIdx] + vals[prevIdx] : aVals[idx] + vals[prevIdx]; + } + } + } + return result; + } + equal(a, b) { + assertNotComplex([a, b], "equal"); + return this.broadcastedBinaryOp(a, b, "bool", (aVal, bVal) => { + return aVal === bVal ? 1 : 0; + }); + } + notEqual(a, b) { + assertNotComplex([a, b], "notEqual"); + return this.broadcastedBinaryOp(a, b, "bool", (aVal, bVal) => { + return aVal !== bVal ? 1 : 0; + }); + } + less(a, b) { + assertNotComplex([a, b], "less"); + return this.broadcastedBinaryOp(a, b, "bool", (aVal, bVal) => { + return aVal < bVal ? 1 : 0; + }); + } + lessEqual(a, b) { + assertNotComplex([a, b], "lessEqual"); + return this.broadcastedBinaryOp(a, b, "bool", (aVal, bVal) => { + return aVal <= bVal ? 1 : 0; + }); + } + greater(a, b) { + assertNotComplex([a, b], "greater"); + return this.broadcastedBinaryOp(a, b, "bool", (aVal, bVal) => { + return aVal > bVal ? 1 : 0; + }); + } + greaterEqual(a, b) { + assertNotComplex([a, b], "greaterEqual"); + return this.broadcastedBinaryOp(a, b, "bool", (aVal, bVal) => { + return aVal >= bVal ? 1 : 0; + }); + } + logicalNot(x) { + assertNotComplex(x, "logicalNot"); + const values = this.readSync(x.dataId); + const newValues = new Uint8Array(values.length); + for (let i = 0; i < values.length; ++i) { + newValues[i] = values[i] ? 0 : 1; + } + return this.makeOutput(newValues, x.shape, "bool"); + } + logicalAnd(a, b) { + assertNotComplex([a, b], "logicalAnd"); + return this.broadcastedBinaryOp(a, b, "bool", (aVal, bVal) => { + return aVal && bVal; + }); + } + logicalOr(a, b) { + assertNotComplex([a, b], "logicalOr"); + return this.broadcastedBinaryOp(a, b, "bool", (aVal, bVal) => { + return aVal || bVal; + }); + } + select(condition, a, b) { + assertNotComplex([condition, a, b], "select"); + const values = this.readSync(condition.dataId); + const aValues = this.readSync(a.dataId); + const bValues = this.readSync(b.dataId); + const result = zeros(a.shape, upcastType(a.dtype, b.dtype)); + const newValues = this.readSync(result.dataId); + let index = 0; + const offset = condition.rank === 0 || condition.rank > 1 || a.rank === 1 ? 1 : util_exports.sizeFromShape(a.shape.slice(1)); + for (let i = 0; i < values.length; i++) { + for (let j = 0; j < offset; j++) { + if (values[i] === 1) { + newValues[index++] = aValues[i]; + } else { + newValues[index++] = bValues[i]; + } + } + } + return result; + } + where(condition) { + assertNotComplex([condition], "where"); + const condVals = this.readSync(condition.dataId); + return whereImpl2(condition.shape, condVals); + } + topk(x, k, sorted) { + assertNotComplex(x, "topk"); + const xVals = this.readSync(x.dataId); + return topkImpl2(xVals, x.shape, x.dtype, k, sorted); + } + min(x, axes) { + assertNotComplex(x, "min"); + backend_util_exports.assertAxesAreInnerMostDims("min", axes, x.rank); + const [outShape, reduceShape] = backend_util_exports.computeOutAndReduceShapes(x.shape, axes); + const result = zeros(outShape, x.dtype); + const reduceSize = util_exports.sizeFromShape(reduceShape); + const vals = this.readSync(result.dataId); + const aVals = this.readSync(x.dataId); + for (let i = 0; i < vals.length; ++i) { + const offset = i * reduceSize; + let min6 = aVals[offset]; + for (let j = 0; j < reduceSize; ++j) { + const value = aVals[offset + j]; + if (value < min6) { + min6 = value; + } + } + vals[i] = min6; + } + return result; + } + minimum(a, b) { + assertNotComplex([a, b], "minimum"); + return this.broadcastedBinaryOp(a, b, a.dtype, (aVal, bVal) => Math.min(aVal, bVal)); + } + mod(a, b) { + assertNotComplex([a, b], "mod"); + return this.broadcastedBinaryOp(a, b, a.dtype, (aVal, bVal) => { + const rem = aVal % bVal; + if (aVal < 0 && bVal < 0 || aVal >= 0 && bVal >= 0) { + return rem; + } else { + return (rem + bVal) % bVal; + } + }); + } + maximum(a, b) { + assertNotComplex([a, b], "maximum"); + return this.broadcastedBinaryOp(a, b, a.dtype, (aVal, bVal) => Math.max(aVal, bVal)); + } + all(x, axes) { + assertNotComplex(x, "all"); + backend_util_exports.assertAxesAreInnerMostDims("all", axes, x.rank); + const [outShape, reduceShape] = backend_util_exports.computeOutAndReduceShapes(x.shape, axes); + const result = zeros(outShape, x.dtype); + const reduceSize = util_exports.sizeFromShape(reduceShape); + const vals = this.readSync(result.dataId); + const aVals = this.readSync(x.dataId); + for (let i = 0; i < vals.length; ++i) { + const offset = i * reduceSize; + let all3 = aVals[offset]; + for (let j = 0; j < reduceSize; ++j) { + const value = aVals[offset + j]; + all3 = all3 && value; + } + vals[i] = all3; + } + return result; + } + any(x, axes) { + assertNotComplex(x, "any"); + backend_util_exports.assertAxesAreInnerMostDims("any", axes, x.rank); + const [outShape, reduceShape] = backend_util_exports.computeOutAndReduceShapes(x.shape, axes); + const result = zeros(outShape, x.dtype); + const reduceSize = util_exports.sizeFromShape(reduceShape); + const vals = this.readSync(result.dataId); + const aVals = this.readSync(x.dataId); + for (let i = 0; i < vals.length; ++i) { + const offset = i * reduceSize; + let anyVal = aVals[offset]; + for (let j = 0; j < reduceSize; ++j) { + const value = aVals[offset + j]; + anyVal = anyVal || value; + } + vals[i] = anyVal; + } + return result; + } + squaredDifference(a, b) { + assertNotComplex([a, b], "squaredDifference"); + return this.broadcastedBinaryOp(a, b, a.dtype, (aVal, bVal) => { + const diff = aVal - bVal; + return diff * diff; + }); + } + ceil(x) { + assertNotComplex(x, "ceil"); + const values = this.readSync(x.dataId); + const newValues = new Float32Array(values.length); + for (let i = 0; i < values.length; ++i) { + newValues[i] = Math.ceil(values[i]); + } + return this.makeOutput(newValues, x.shape, "float32"); + } + floor(x) { + assertNotComplex(x, "floor"); + const values = this.readSync(x.dataId); + const newValues = new Float32Array(values.length); + for (let i = 0; i < values.length; ++i) { + newValues[i] = Math.floor(values[i]); + } + return this.makeOutput(newValues, x.shape, "float32"); + } + sign(x) { + assertNotComplex(x, "x"); + const values = this.readSync(x.dataId); + const newValues = new Float32Array(values.length); + for (let i = 0; i < values.length; ++i) { + if (values[i] < 0) { + newValues[i] = -1; + } else if (values[i] > 0) { + newValues[i] = 1; + } else { + newValues[i] = 0; + } + } + return this.makeOutput(newValues, x.shape, "float32"); + } + isNaN(x) { + assertNotComplex(x, "x"); + const values = this.readSync(x.dataId); + const newValues = new Uint8Array(values.length); + for (let i = 0; i < values.length; ++i) { + if (Number.isNaN(values[i])) { + newValues[i] = 1; + } + } + return this.makeOutput(newValues, x.shape, "bool"); + } + isInf(x) { + assertNotComplex(x, "x"); + const values = this.readSync(x.dataId); + const newValues = new Uint8Array(values.length); + for (let i = 0; i < values.length; ++i) { + if (Math.abs(values[i]) === Infinity) { + newValues[i] = 1; + } + } + return this.makeOutput(newValues, x.shape, "bool"); + } + isFinite(x) { + assertNotComplex(x, "x"); + const values = this.readSync(x.dataId); + const newValues = new Uint8Array(values.length); + for (let i = 0; i < values.length; ++i) { + if (Number.isFinite(values[i])) { + newValues[i] = 1; + } + } + return this.makeOutput(newValues, x.shape, "bool"); + } + round(x) { + assertNotComplex(x, "round"); + const values = this.readSync(x.dataId); + const newValues = new Float32Array(values.length); + for (let i = 0; i < values.length; ++i) { + const base = Math.floor(values[i]); + if (values[i] - base < 0.5) { + newValues[i] = Math.floor(values[i]); + } else if (values[i] - base > 0.5) { + newValues[i] = Math.ceil(values[i]); + } else { + if (base % 2 === 0) { + newValues[i] = base; + } else { + newValues[i] = base + 1; + } + } + } + return this.makeOutput(newValues, x.shape, "float32"); + } + exp(x) { + assertNotComplex(x, "exp"); + const values = this.readSync(x.dataId); + const newValues = new Float32Array(values.length); + for (let i = 0; i < values.length; ++i) { + newValues[i] = Math.exp(values[i]); + } + return this.makeOutput(newValues, x.shape, "float32"); + } + expm1(x) { + assertNotComplex(x, "expm1"); + const values = this.readSync(x.dataId); + const newValues = new Float32Array(values.length); + for (let i = 0; i < values.length; ++i) { + newValues[i] = Math.expm1(values[i]); + } + return this.makeOutput(newValues, x.shape, "float32"); + } + log(x) { + assertNotComplex(x, "log"); + const values = this.readSync(x.dataId); + const newValues = new Float32Array(values.length); + for (let i = 0; i < values.length; ++i) { + const value = values[i]; + newValues[i] = Math.log(value); + } + return this.makeOutput(newValues, x.shape, "float32"); + } + log1p(x) { + assertNotComplex(x, "log1p"); + const values = this.readSync(x.dataId); + const newValues = new Float32Array(values.length); + for (let i = 0; i < values.length; ++i) { + const value = values[i]; + newValues[i] = Math.log1p(value); + } + return this.makeOutput(newValues, x.shape, "float32"); + } + sqrt(x) { + assertNotComplex(x, "sqrt"); + const values = this.readSync(x.dataId); + const newValues = new Float32Array(values.length); + for (let i = 0; i < values.length; ++i) { + const value = values[i]; + newValues[i] = Math.sqrt(value); + } + return this.makeOutput(newValues, x.shape, "float32"); + } + rsqrt(x) { + assertNotComplex(x, "rsqrt"); + const values = this.readSync(x.dataId); + const newValues = new Float32Array(values.length); + for (let i = 0; i < values.length; ++i) { + const value = values[i]; + newValues[i] = 1 / Math.sqrt(value); + } + return this.makeOutput(newValues, x.shape, "float32"); + } + reciprocal(x) { + assertNotComplex(x, "reciprocal"); + const values = this.readSync(x.dataId); + const newValues = new Float32Array(values.length); + for (let i = 0; i < values.length; ++i) { + newValues[i] = 1 / values[i]; + } + return this.makeOutput(newValues, x.shape, "float32"); + } + linear(x) { + return x; + } + relu(x) { + assertNotComplex(x, "relu"); + const res = zeros(x.shape, x.dtype); + const resVals = this.readSync(res.dataId); + const inVals = this.readSync(x.dataId); + for (let i = 0; i < inVals.length; ++i) { + resVals[i] = Math.max(0, inVals[i]); + } + return res; + } + relu6(x) { + assertNotComplex(x, "relu"); + const res = zeros(x.shape, x.dtype); + const resVals = this.readSync(res.dataId); + const inVals = this.readSync(x.dataId); + for (let i = 0; i < inVals.length; ++i) { + resVals[i] = Math.min(Math.max(0, inVals[i]), 6); + } + return res; + } + prelu(x, a) { + assertNotComplex([x, a], "prelu"); + return this.broadcastedBinaryOp(x, a, x.dtype, (xValue, aValue) => xValue < 0 ? aValue * xValue : xValue); + } + elu(x) { + assertNotComplex(x, "elu"); + const resultValues = new Float32Array(x.size); + const values = this.readSync(x.dataId); + for (let i = 0; i < values.length; ++i) { + const v = values[i]; + if (v >= 0) { + resultValues[i] = v; + } else { + resultValues[i] = Math.exp(v) - 1; + } + } + return this.makeOutput(resultValues, x.shape, "float32"); + } + eluDer(dy, y) { + assertNotComplex([dy, y], "eluDer"); + const resultValues = new Float32Array(y.size); + const values = this.readSync(y.dataId); + const dyValues = this.readSync(dy.dataId); + for (let i = 0; i < values.length; ++i) { + const v = values[i]; + if (v >= 1) { + resultValues[i] = dyValues[i]; + } else { + resultValues[i] = dyValues[i] * (v + 1); + } + } + return this.makeOutput(resultValues, y.shape, "float32"); + } + selu(x) { + assertNotComplex(x, "selu"); + const scaleAlpha = backend_util_exports.SELU_SCALEALPHA; + const scale2 = backend_util_exports.SELU_SCALE; + const resultValues = new Float32Array(x.size); + const values = this.readSync(x.dataId); + for (let i = 0; i < values.length; ++i) { + const v = values[i]; + if (v >= 0) { + resultValues[i] = scale2 * v; + } else { + resultValues[i] = scaleAlpha * (Math.exp(v) - 1); + } + } + return this.makeOutput(resultValues, x.shape, "float32"); + } + clip(x, min6, max8) { + assertNotComplex(x, "clip"); + const resultValues = new Float32Array(x.size); + const values = this.readSync(x.dataId); + for (let i = 0; i < values.length; ++i) { + const v = values[i]; + resultValues[i] = v > max8 ? max8 : v < min6 ? min6 : v; + } + return this.makeOutput(resultValues, x.shape, "float32"); + } + abs(x) { + const resultValues = new Float32Array(x.size); + const values = this.readSync(x.dataId); + for (let i = 0; i < values.length; ++i) { + resultValues[i] = Math.abs(values[i]); + } + return this.makeOutput(resultValues, x.shape, "float32"); + } + complexAbs(x) { + const resultValues = new Float32Array(x.size); + const values = this.readSync(x.dataId); + for (let i = 0; i < x.size; ++i) { + const real6 = values[i * 2]; + const imag6 = values[i * 2 + 1]; + resultValues[i] = Math.hypot(real6, imag6); + } + return this.makeOutput(resultValues, x.shape, "float32"); + } + int(x) { + assertNotComplex(x, "int"); + const resultValues = new Int32Array(x.size); + const values = this.readSync(x.dataId); + for (let i = 0; i < values.length; ++i) { + resultValues[i] = values[i]; + } + return this.makeOutput(resultValues, x.shape, "int32"); + } + sigmoid(x) { + assertNotComplex(x, "sigmoid"); + const resultValues = new Float32Array(x.size); + const values = this.readSync(x.dataId); + for (let i = 0; i < values.length; ++i) { + resultValues[i] = 1 / (1 + Math.exp(-values[i])); + } + return this.makeOutput(resultValues, x.shape, "float32"); + } + softplus(x) { + assertNotComplex(x, "softplus"); + const epsilon2 = 11920928955078125e-23; + const threshold = Math.log(epsilon2) + 2; + const resultValues = new Float32Array(x.size); + const values = this.readSync(x.dataId); + for (let i = 0; i < values.length; ++i) { + const tooLarge = values[i] > -threshold; + const tooSmall = values[i] < threshold; + const expX = Math.exp(values[i]); + let result; + if (tooSmall) { + result = expX; + } else if (tooLarge) { + result = values[i]; + } else { + result = Math.log(1 + expX); + } + resultValues[i] = result; + } + return this.makeOutput(resultValues, x.shape, "float32"); + } + sin(x) { + assertNotComplex(x, "sin"); + const resultValues = new Float32Array(x.size); + const values = this.readSync(x.dataId); + for (let i = 0; i < values.length; ++i) { + resultValues[i] = Math.sin(values[i]); + } + return this.makeOutput(resultValues, x.shape, "float32"); + } + cos(x) { + assertNotComplex(x, "cos"); + const resultValues = new Float32Array(x.size); + const values = this.readSync(x.dataId); + for (let i = 0; i < values.length; ++i) { + resultValues[i] = Math.cos(values[i]); + } + return this.makeOutput(resultValues, x.shape, "float32"); + } + tan(x) { + assertNotComplex(x, "tan"); + const resultValues = new Float32Array(x.size); + const values = this.readSync(x.dataId); + for (let i = 0; i < values.length; ++i) { + resultValues[i] = Math.tan(values[i]); + } + return this.makeOutput(resultValues, x.shape, "float32"); + } + asin(x) { + assertNotComplex(x, "asin"); + const resultValues = new Float32Array(x.size); + const values = this.readSync(x.dataId); + for (let i = 0; i < values.length; ++i) { + resultValues[i] = Math.asin(values[i]); + } + return this.makeOutput(resultValues, x.shape, "float32"); + } + acos(x) { + assertNotComplex(x, "acos"); + const resultValues = new Float32Array(x.size); + const values = this.readSync(x.dataId); + for (let i = 0; i < values.length; ++i) { + resultValues[i] = Math.acos(values[i]); + } + return this.makeOutput(resultValues, x.shape, "float32"); + } + atan(x) { + assertNotComplex(x, "atan"); + const resultValues = new Float32Array(x.size); + const values = this.readSync(x.dataId); + for (let i = 0; i < values.length; ++i) { + resultValues[i] = Math.atan(values[i]); + } + return this.makeOutput(resultValues, x.shape, "float32"); + } + atan2(a, b) { + assertNotComplex([a, b], "atan2"); + return this.broadcastedBinaryOp(a, b, a.dtype, (aValue, bValue) => Math.atan2(aValue, bValue)); + } + sinh(x) { + assertNotComplex(x, "sinh"); + const resultValues = new Float32Array(x.size); + const values = this.readSync(x.dataId); + for (let i = 0; i < values.length; ++i) { + resultValues[i] = Math.sinh(values[i]); + } + return this.makeOutput(resultValues, x.shape, "float32"); + } + cosh(x) { + assertNotComplex(x, "cosh"); + const resultValues = new Float32Array(x.size); + const values = this.readSync(x.dataId); + for (let i = 0; i < values.length; ++i) { + resultValues[i] = Math.cosh(values[i]); + } + return this.makeOutput(resultValues, x.shape, "float32"); + } + tanh(x) { + assertNotComplex(x, "tanh"); + const resultValues = new Float32Array(x.size); + const values = this.readSync(x.dataId); + for (let i = 0; i < values.length; ++i) { + resultValues[i] = util_exports.tanh(values[i]); + } + return this.makeOutput(resultValues, x.shape, "float32"); + } + asinh(x) { + assertNotComplex(x, "asinh"); + const resultValues = new Float32Array(x.size); + const values = this.readSync(x.dataId); + for (let i = 0; i < values.length; ++i) { + resultValues[i] = Math.asinh(values[i]); + } + return this.makeOutput(resultValues, x.shape, "float32"); + } + acosh(x) { + assertNotComplex(x, "acosh"); + const resultValues = new Float32Array(x.size); + const values = this.readSync(x.dataId); + for (let i = 0; i < values.length; ++i) { + resultValues[i] = Math.acosh(values[i]); + } + return this.makeOutput(resultValues, x.shape, "float32"); + } + atanh(x) { + assertNotComplex(x, "atanh"); + const resultValues = new Float32Array(x.size); + const values = this.readSync(x.dataId); + for (let i = 0; i < values.length; ++i) { + resultValues[i] = Math.atanh(values[i]); + } + return this.makeOutput(resultValues, x.shape, "float32"); + } + erf(x) { + assertNotComplex(x, "erf"); + const resultValues = new Float32Array(x.size); + const values = this.readSync(x.dataId); + const p = backend_util_exports.ERF_P; + const a1 = backend_util_exports.ERF_A1; + const a2 = backend_util_exports.ERF_A2; + const a3 = backend_util_exports.ERF_A3; + const a4 = backend_util_exports.ERF_A4; + const a5 = backend_util_exports.ERF_A5; + for (let i = 0; i < values.length; ++i) { + const sign3 = Math.sign(values[i]); + const v = Math.abs(values[i]); + const t = 1 / (1 + p * v); + resultValues[i] = sign3 * (1 - ((((a5 * t + a4) * t + a3) * t + a2) * t + a1) * t * Math.exp(-v * v)); + } + return this.makeOutput(resultValues, x.shape, "float32"); + } + step(x, alpha = 0) { + assertNotComplex(x, "step"); + const resultValues = new Float32Array(x.size); + const values = this.readSync(x.dataId); + for (let i = 0; i < values.length; ++i) { + const value = values[i]; + if (isNaN(value)) { + resultValues[i] = NaN; + } else { + resultValues[i] = value > 0 ? 1 : alpha; + } + } + return this.makeOutput(resultValues, x.shape, "float32"); + } + fusedConv2d({input: input2, filter, convInfo, bias, activation: activation2, preluActivationWeights}) { + let result = this.conv2d(input2, filter, convInfo); + if (bias) { + result = this.add(result, bias); + } + if (activation2) { + result = mapActivation(this, result, activation2, preluActivationWeights); + } + return result; + } + conv2d(x, filter, convInfo) { + assertNotComplex([x, filter], "conv2d"); + const filterHeight = convInfo.filterHeight; + const filterWidth = convInfo.filterWidth; + const dilationHeight = convInfo.dilationHeight; + const dilationWidth = convInfo.dilationWidth; + const padLeft = convInfo.padInfo.left; + const padTop = convInfo.padInfo.top; + const isChannelsLast = convInfo.dataFormat === "channelsLast"; + const y = buffer(convInfo.outShape, x.dtype); + const xBatchStride = x.strides[0]; + const xRowStride = isChannelsLast ? x.strides[1] : x.strides[2]; + const xColStride = isChannelsLast ? x.strides[2] : 1; + const xChannelStride = isChannelsLast ? 1 : x.strides[1]; + const yBatchStride = y.strides[0]; + const yRowStride = isChannelsLast ? y.strides[1] : y.strides[2]; + const yColStride = isChannelsLast ? y.strides[2] : 1; + const yChannelStride = isChannelsLast ? 1 : y.strides[1]; + const xVals = this.readSync(x.dataId); + const wVals = this.readSync(filter.dataId); + const yVals = y.values; + for (let b = 0; b < convInfo.batchSize; ++b) { + const xOffset1 = b * xBatchStride; + const yOffset1 = b * yBatchStride; + for (let yR = 0; yR < convInfo.outHeight; ++yR) { + const yOffset2 = yOffset1 + yR * yRowStride; + const xRCorner = yR * convInfo.strideHeight - padTop; + for (let wR = 0; wR < filterHeight; wR++) { + const xR = xRCorner + wR * dilationHeight; + if (xR < 0 || xR >= convInfo.inHeight) { + continue; + } + const wOffset1 = wR * filter.strides[0]; + const xOffset2 = xOffset1 + xR * xRowStride; + for (let yC = 0; yC < convInfo.outWidth; ++yC) { + const yOffset3 = yOffset2 + yC * yColStride; + const xCCorner = yC * convInfo.strideWidth - padLeft; + for (let wC = 0; wC < filterWidth; wC++) { + const xC = xCCorner + wC * dilationWidth; + if (xC < 0 || xC >= convInfo.inWidth) { + continue; + } + const wOffset2 = wOffset1 + wC * filter.strides[1]; + const xOffset3 = xOffset2 + xC * xColStride; + let wOffset3 = wOffset2; + for (let d1 = 0; d1 < convInfo.inChannels; ++d1) { + const xVal = xVals[xOffset3 + d1 * xChannelStride]; + for (let d2 = 0; d2 < convInfo.outChannels; ++d2) { + yVals[yOffset3 + d2 * yChannelStride] += xVal * wVals[wOffset3 + d2]; + } + wOffset3 += convInfo.outChannels; + } + } + } + } + } + } + return y.toTensor(); + } + conv3d(x, filter, convInfo) { + const filterDepth = convInfo.filterDepth; + const filterHeight = convInfo.filterHeight; + const filterWidth = convInfo.filterWidth; + const dilationDepth = convInfo.dilationDepth; + const dilationHeight = convInfo.dilationHeight; + const dilationWidth = convInfo.dilationWidth; + const padFront = convInfo.padInfo.front; + const padLeft = convInfo.padInfo.left; + const padTop = convInfo.padInfo.top; + const y = buffer(convInfo.outShape, x.dtype); + const xVals = this.readSync(x.dataId); + const wVals = this.readSync(filter.dataId); + const yVals = y.values; + for (let b = 0; b < convInfo.batchSize; ++b) { + const xOffset1 = b * x.strides[0]; + const yOffset1 = b * y.strides[0]; + for (let yF = 0; yF < convInfo.outDepth; ++yF) { + const yOffset2 = yOffset1 + yF * y.strides[1]; + const xFCorner = yF * convInfo.strideDepth - padFront; + for (let wF = 0; wF < filterDepth; wF++) { + const xF = xFCorner + wF * dilationDepth; + if (xF < 0 || xF >= convInfo.inDepth) { + continue; + } + const wOffset1 = wF * filter.strides[0]; + const xOffset2 = xOffset1 + xF * x.strides[1]; + for (let yR = 0; yR < convInfo.outHeight; ++yR) { + const yOffset3 = yOffset2 + yR * y.strides[2]; + const xRCorner = yR * convInfo.strideHeight - padTop; + for (let wR = 0; wR < filterHeight; wR++) { + const xR = xRCorner + wR * dilationHeight; + if (xR < 0 || xR >= convInfo.inHeight) { + continue; + } + const wOffset2 = wOffset1 + wR * filter.strides[1]; + const xOffset3 = xOffset2 + xR * x.strides[2]; + for (let yC = 0; yC < convInfo.outWidth; ++yC) { + const yOffset4 = yOffset3 + yC * convInfo.outChannels; + const xCCorner = yC * convInfo.strideWidth - padLeft; + for (let wC = 0; wC < filterWidth; wC++) { + const xC = xCCorner + wC * dilationWidth; + if (xC < 0 || xC >= convInfo.inWidth) { + continue; + } + const wOffset3 = wOffset2 + wC * filter.strides[2]; + const xOffset4 = xOffset3 + xC * convInfo.inChannels; + let wOffset4 = wOffset3; + for (let d1 = 0; d1 < convInfo.inChannels; ++d1) { + const xVal = xVals[xOffset4 + d1]; + for (let d2 = 0; d2 < convInfo.outChannels; ++d2) { + yVals[yOffset4 + d2] += xVal * wVals[wOffset4 + d2]; + } + wOffset4 += convInfo.outChannels; + } + } + } + } + } + } + } + } + return y.toTensor(); + } + conv2dDerInput(dy, filter, convInfo) { + assertNotComplex([dy, filter], "conv2dDerInput"); + const dx = buffer(convInfo.inShape, "float32"); + const dxValues = dx.values; + const dyValues = this.readSync(dy.dataId); + const fltValues = this.readSync(filter.dataId); + const [fltS0, fltS1, fltS2] = filter.strides; + const {batchSize, filterHeight, filterWidth, inChannels, inHeight, inWidth, outChannels, outHeight, outWidth, strideHeight, strideWidth, dataFormat} = convInfo; + const topPad = filterHeight - 1 - convInfo.padInfo.top; + const leftPad = filterWidth - 1 - convInfo.padInfo.left; + const isChannelsLast = dataFormat === "channelsLast"; + const xBatchStride = dx.strides[0]; + const xRowStride = isChannelsLast ? dx.strides[1] : dx.strides[2]; + const xColStride = isChannelsLast ? dx.strides[2] : 1; + const xChannelStride = isChannelsLast ? 1 : dx.strides[1]; + const yBatchStride = dy.strides[0]; + const yRowStride = isChannelsLast ? dy.strides[1] : dy.strides[2]; + const yColStride = isChannelsLast ? dy.strides[2] : 1; + const yChannelStride = isChannelsLast ? 1 : dy.strides[1]; + for (let b = 0; b < batchSize; ++b) { + for (let d1 = 0; d1 < inChannels; ++d1) { + for (let xR = 0; xR < inHeight; ++xR) { + const xRCorner = xR - topPad; + const xRMin = Math.max(0, Math.ceil(xRCorner / strideHeight)); + const yRMax = Math.min(outHeight, (filterHeight + xRCorner) / strideHeight); + for (let xC = 0; xC < inWidth; ++xC) { + const xCCorner = xC - leftPad; + const xCMin = Math.max(0, Math.ceil(xCCorner / strideWidth)); + const yCMax = Math.min(outWidth, (filterWidth + xCCorner) / strideWidth); + let dotProd = 0; + for (let yR = xRMin; yR < yRMax; ++yR) { + const wR = yR * strideHeight - xRCorner; + for (let yC = xCMin; yC < yCMax; ++yC) { + const wC = yC * strideWidth - xCCorner; + const dyOffset = yBatchStride * b + yRowStride * yR + yColStride * yC; + const fltOffset = fltS0 * (filterHeight - 1 - wR) + fltS1 * (filterWidth - 1 - wC) + fltS2 * d1; + for (let d2 = 0; d2 < outChannels; ++d2) { + const pixel = dyValues[dyOffset + yChannelStride * d2]; + const weight = fltValues[fltOffset + d2]; + dotProd += pixel * weight; + } + } + } + const dxOffset = xBatchStride * b + xRowStride * xR + xColStride * xC + xChannelStride * d1; + dxValues[dxOffset] = dotProd; + } + } + } + } + return dx.toTensor(); + } + conv3dDerInput(dy, filter, convInfo) { + const dx = buffer(convInfo.inShape, "float32"); + const dxValues = dx.values; + const [dxS0, dxS1, dxS2, dxS3] = dx.strides; + const dyValues = this.readSync(dy.dataId); + const [dyS0, dyS1, dyS2, dyS3] = dy.strides; + const fltValues = this.readSync(filter.dataId); + const [fltS0, fltS1, fltS2, fltS3] = filter.strides; + const {batchSize, filterDepth, filterHeight, filterWidth, inChannels, inDepth, inHeight, inWidth, outChannels, outDepth, outHeight, outWidth, strideDepth, strideHeight, strideWidth} = convInfo; + const frontPad = filterDepth - 1 - convInfo.padInfo.front; + const topPad = filterHeight - 1 - convInfo.padInfo.top; + const leftPad = filterWidth - 1 - convInfo.padInfo.left; + for (let b = 0; b < batchSize; ++b) { + for (let d1 = 0; d1 < inChannels; ++d1) { + for (let xF = 0; xF < inDepth; ++xF) { + const xFCorner = xF - frontPad; + const xFMin = Math.max(0, Math.ceil(xFCorner / strideDepth)); + const yFMax = Math.min(outDepth, (filterDepth + xFCorner) / strideDepth); + for (let xR = 0; xR < inHeight; ++xR) { + const xRCorner = xR - topPad; + const xRMin = Math.max(0, Math.ceil(xRCorner / strideHeight)); + const yRMax = Math.min(outHeight, (filterHeight + xRCorner) / strideHeight); + for (let xC = 0; xC < inWidth; ++xC) { + const xCCorner = xC - leftPad; + const xCMin = Math.max(0, Math.ceil(xCCorner / strideWidth)); + const yCMax = Math.min(outWidth, (filterWidth + xCCorner) / strideWidth); + let dotProd = 0; + for (let yF = xFMin; yF < yFMax; ++yF) { + const wF = yF * strideDepth - xFCorner; + for (let yR = xRMin; yR < yRMax; ++yR) { + const wR = yR * strideHeight - xRCorner; + for (let yC = xCMin; yC < yCMax; ++yC) { + const wC = yC * strideWidth - xCCorner; + const dyOffset = dyS0 * b + dyS1 * yF + dyS2 * yR + dyS3 * yC; + const fltOffset = fltS0 * (filterDepth - 1 - wF) + fltS1 * (filterHeight - 1 - wR) + fltS2 * (filterWidth - 1 - wC) + fltS3 * d1; + for (let d2 = 0; d2 < outChannels; ++d2) { + const pixel = dyValues[dyOffset + d2]; + const weight = fltValues[fltOffset + d2]; + dotProd += pixel * weight; + } + } + } + } + dxValues[dxS0 * b + dxS1 * xF + dxS2 * xR + dxS3 * xC + d1] = dotProd; + } + } + } + } + } + return dx.toTensor(); + } + conv2dDerFilter(x, dy, convInfo) { + assertNotComplex([x, dy], "conv2dDerFilter"); + const strideHeight = convInfo.strideHeight; + const strideWidth = convInfo.strideWidth; + const filterHeight = convInfo.filterHeight; + const filterWidth = convInfo.filterWidth; + const isChannelsLast = convInfo.dataFormat === "channelsLast"; + const dW = buffer(convInfo.filterShape, "float32"); + const leftPad = convInfo.padInfo.left; + const topPad = convInfo.padInfo.top; + const xBuf = this.bufferSync(x); + const dyBuf = this.bufferSync(dy); + for (let wR = 0; wR < filterHeight; ++wR) { + const yRMin = Math.max(0, Math.ceil((topPad - wR) / strideHeight)); + const yRMax = Math.min(convInfo.outHeight, (convInfo.inHeight + topPad - wR) / strideHeight); + for (let wC = 0; wC < filterWidth; ++wC) { + const yCMin = Math.max(0, Math.ceil((leftPad - wC) / strideWidth)); + const yCMax = Math.min(convInfo.outWidth, (convInfo.inWidth + leftPad - wC) / strideWidth); + for (let d1 = 0; d1 < convInfo.inChannels; ++d1) { + for (let d2 = 0; d2 < convInfo.outChannels; ++d2) { + let dotProd = 0; + for (let b = 0; b < convInfo.batchSize; ++b) { + for (let yR = yRMin; yR < yRMax; ++yR) { + const xR = wR + yR * strideHeight - topPad; + for (let yC = yCMin; yC < yCMax; ++yC) { + const xC = wC + yC * strideWidth - leftPad; + if (isChannelsLast) { + dotProd += xBuf.get(b, xR, xC, d1) * dyBuf.get(b, yR, yC, d2); + } else { + dotProd += xBuf.get(b, d1, xR, xC) * dyBuf.get(b, d2, yR, yC); + } + } + } + } + dW.set(dotProd, wR, wC, d1, d2); + } + } + } + } + return dW.toTensor(); + } + conv3dDerFilter(x, dy, convInfo) { + const strideDepth = convInfo.strideDepth; + const strideHeight = convInfo.strideHeight; + const strideWidth = convInfo.strideWidth; + const filterDepth = convInfo.filterDepth; + const filterHeight = convInfo.filterHeight; + const filterWidth = convInfo.filterWidth; + const dw = buffer(convInfo.filterShape, "float32"); + const dwValues = dw.values; + const [dwS0, dwS1, dwS2, dwS3] = dw.strides; + const dyValues = this.readSync(dy.dataId); + const [dyS0, dyS1, dyS2, dyS3] = dy.strides; + const xValues = this.readSync(x.dataId); + const [xS0, xS1, xS2, xS3] = x.strides; + const frontPad = convInfo.padInfo.front; + const leftPad = convInfo.padInfo.left; + const topPad = convInfo.padInfo.top; + for (let wF = 0; wF < filterDepth; ++wF) { + const yFMin = Math.max(0, Math.ceil((frontPad - wF) / strideDepth)); + const yFMax = Math.min(convInfo.outDepth, (convInfo.inDepth + frontPad - wF) / strideDepth); + const wOffset1 = wF * dwS0; + for (let wR = 0; wR < filterHeight; ++wR) { + const yRMin = Math.max(0, Math.ceil((topPad - wR) / strideHeight)); + const yRMax = Math.min(convInfo.outHeight, (convInfo.inHeight + topPad - wR) / strideHeight); + const wOffset2 = wR * dwS1 + wOffset1; + for (let wC = 0; wC < filterWidth; ++wC) { + const yCMin = Math.max(0, Math.ceil((leftPad - wC) / strideWidth)); + const yCMax = Math.min(convInfo.outWidth, (convInfo.inWidth + leftPad - wC) / strideWidth); + const wOffset3 = wC * dwS2 + wOffset2; + for (let d1 = 0; d1 < convInfo.inChannels; ++d1) { + const wOffset4 = d1 * dwS3 + wOffset3; + for (let d2 = 0; d2 < convInfo.outChannels; ++d2) { + let dotProd = 0; + for (let b = 0; b < convInfo.batchSize; ++b) { + const xOffset1 = b * xS0; + const yOffset1 = b * dyS0; + for (let yF = yFMin; yF < yFMax; ++yF) { + const xF = wF + yF * strideDepth - frontPad; + const xOffset2 = xF * xS1 + xOffset1; + const yOffset2 = yF * dyS1 + yOffset1; + for (let yR = yRMin; yR < yRMax; ++yR) { + const xR = wR + yR * strideHeight - topPad; + const xOffset3 = xR * xS2 + xOffset2; + const yOffset3 = yR * dyS2 + yOffset2; + for (let yC = yCMin; yC < yCMax; ++yC) { + const xC = wC + yC * strideWidth - leftPad; + const xOffset4 = xC * xS3 + xOffset3; + const yOffset4 = yC * dyS3 + yOffset3; + dotProd += xValues[xOffset4 + d1] * dyValues[yOffset4 + d2]; + } + } + } + } + dwValues[wOffset4 + d2] = dotProd; + } + } + } + } + } + return dw.toTensor(); + } + fusedDepthwiseConv2D({input: input2, filter, convInfo, bias, activation: activation2, preluActivationWeights}) { + let result = this.depthwiseConv2D(input2, filter, convInfo); + if (bias) { + result = this.add(result, bias); + } + if (activation2) { + result = mapActivation(this, result, activation2, preluActivationWeights); + } + return result; + } + depthwiseConv2D(x, filter, convInfo) { + assertNotComplex([x, filter], "depthwiseConv2D"); + const filterHeight = convInfo.filterHeight; + const filterWidth = convInfo.filterWidth; + const dilationHeight = convInfo.dilationHeight; + const dilationWidth = convInfo.dilationWidth; + const padLeft = convInfo.padInfo.left; + const padTop = convInfo.padInfo.top; + const chMul = convInfo.outChannels / convInfo.inChannels; + const y = buffer(convInfo.outShape, x.dtype); + const xVals = this.readSync(x.dataId); + const wVals = this.readSync(filter.dataId); + const yVals = y.values; + for (let b = 0; b < convInfo.batchSize; ++b) { + const xOffset1 = b * x.strides[0]; + const yOffset1 = b * y.strides[0]; + for (let yR = 0; yR < convInfo.outHeight; ++yR) { + const yOffset2 = yOffset1 + yR * y.strides[1]; + const xRCorner = yR * convInfo.strideHeight - padLeft; + for (let wR = 0; wR < filterHeight; ++wR) { + const xR = xRCorner + wR * dilationHeight; + if (xR < 0 || xR >= convInfo.inHeight) { + continue; + } + const wOffset1 = wR * filter.strides[0]; + const xOffset2 = xOffset1 + xR * x.strides[1]; + for (let yC = 0; yC < convInfo.outWidth; ++yC) { + const yOffset3 = yOffset2 + yC * y.strides[2]; + const xCCorner = yC * convInfo.strideWidth - padTop; + for (let wC = 0; wC < filterWidth; ++wC) { + const xC = xCCorner + wC * dilationWidth; + if (xC < 0 || xC >= convInfo.inWidth) { + continue; + } + const wOffset2 = wOffset1 + wC * filter.strides[1]; + const xOffset3 = xOffset2 + xC * convInfo.inChannels; + let yOffset4 = yOffset3; + let wOffset3 = wOffset2; + for (let d1 = 0; d1 < convInfo.inChannels; ++d1) { + const xVal = xVals[xOffset3 + d1]; + for (let q = 0; q < chMul; ++q) { + yVals[yOffset4 + q] += xVal * wVals[wOffset3 + q]; + } + yOffset4 += chMul; + wOffset3 += chMul; + } + } + } + } + } + } + return y.toTensor(); + } + depthwiseConv2DDerInput(dy, filter, convInfo) { + assertNotComplex([dy, filter], "depthwiseConv2DDerInput"); + const dx = buffer(convInfo.inShape, "float32"); + const dxValues = dx.values; + const [dxS0, dxS1, dxS2] = dx.strides; + const dyValues = this.readSync(dy.dataId); + const [dyS0, dyS1, dyS2] = dy.strides; + const fltValues = this.readSync(filter.dataId); + const [fltS0, fltS1, fltS2] = filter.strides; + const {batchSize, filterHeight, filterWidth, inChannels, inHeight, inWidth, outChannels, outHeight, outWidth, strideHeight, strideWidth} = convInfo; + const topPad = filterHeight - 1 - convInfo.padInfo.top; + const leftPad = filterWidth - 1 - convInfo.padInfo.left; + const chMul = outChannels / inChannels; + for (let b = 0; b < batchSize; ++b) { + for (let d1 = 0; d1 < inChannels; ++d1) { + for (let xR = 0; xR < inHeight; ++xR) { + const xRCorner = xR - topPad; + const xRMin = Math.max(0, Math.ceil(xRCorner / strideHeight)); + const yRMax = Math.min(outHeight, (filterHeight + xRCorner) / strideHeight); + for (let xC = 0; xC < inWidth; ++xC) { + const xCCorner = xC - leftPad; + const xCMin = Math.max(0, Math.ceil(xCCorner / strideWidth)); + const yCMax = Math.min(outWidth, (filterWidth + xCCorner) / strideWidth); + let dotProd = 0; + for (let yR = xRMin; yR < yRMax; ++yR) { + const wR = yR * strideHeight - xRCorner; + for (let yC = xCMin; yC < yCMax; ++yC) { + const wC = yC * strideWidth - xCCorner; + const dyOffset = dyS0 * b + dyS1 * yR + dyS2 * yC; + const fltOffset = fltS0 * (filterHeight - 1 - wR) + fltS1 * (filterWidth - 1 - wC) + fltS2 * d1; + for (let dm = 0; dm < chMul; ++dm) { + const d2 = d1 * chMul + dm; + const pixel = dyValues[dyOffset + d2]; + const weight = fltValues[fltOffset + dm]; + dotProd += pixel * weight; + } + } + } + dxValues[dxS0 * b + dxS1 * xR + dxS2 * xC + d1] = dotProd; + } + } + } + } + return dx.toTensor(); + } + depthwiseConv2DDerFilter(x, dy, convInfo) { + assertNotComplex([x, dy], "depthwiseConv2DDerFilter"); + const strideHeight = convInfo.strideHeight; + const strideWidth = convInfo.strideWidth; + const filterHeight = convInfo.filterHeight; + const filterWidth = convInfo.filterWidth; + const dW = buffer(convInfo.filterShape, "float32"); + const leftPad = convInfo.padInfo.left; + const topPad = convInfo.padInfo.top; + const chMul = convInfo.outChannels / convInfo.inChannels; + const xBuf = this.bufferSync(x); + const dyBuf = this.bufferSync(dy); + for (let wR = 0; wR < filterHeight; ++wR) { + const yRMin = Math.max(0, Math.ceil((topPad - wR) / strideHeight)); + const yRMax = Math.min(convInfo.outHeight, (convInfo.inHeight + topPad - wR) / strideHeight); + for (let wC = 0; wC < filterWidth; ++wC) { + const yCMin = Math.max(0, Math.ceil((leftPad - wC) / strideWidth)); + const yCMax = Math.min(convInfo.outWidth, (convInfo.inWidth + leftPad - wC) / strideWidth); + for (let d2 = 0; d2 < convInfo.outChannels; ++d2) { + const d1 = Math.trunc(d2 / chMul); + const dm = d2 % chMul; + let dotProd = 0; + for (let b = 0; b < convInfo.batchSize; ++b) { + for (let yR = yRMin; yR < yRMax; ++yR) { + const xR = wR + yR * strideHeight - topPad; + for (let yC = yCMin; yC < yCMax; ++yC) { + const xC = wC + yC * strideWidth - leftPad; + dotProd += xBuf.get(b, xR, xC, d1) * dyBuf.get(b, yR, yC, d2); + } + } + } + dW.set(dotProd, wR, wC, d1, dm); + } + } + } + return dW.toTensor(); + } + tile(x, reps) { + assertNotComplex(x, "tile"); + return tile7(this.bufferSync(x), reps); + } + pad(x, paddings, constantValue) { + assertNotComplex(x, "pad"); + const outShape = paddings.map((p, i) => p[0] + x.shape[i] + p[1]); + const start = paddings.map((p) => p[0]); + const xBuffer = this.bufferSync(x); + const buffer10 = buffer(outShape, x.dtype); + if (constantValue !== 0) { + buffer10.values.fill(constantValue); + } + for (let i = 0; i < x.size; i++) { + const coords2 = xBuffer.indexToLoc(i); + const outCoords = coords2.map((c, i2) => c + start[i2]); + buffer10.set(xBuffer.get(...coords2), ...outCoords); + } + return buffer10.toTensor(); + } + gather(x, indices, axis) { + assertNotComplex([x, indices], "gather"); + const newShape = x.shape.slice(); + const indicesValues = this.readSync(indices.dataId); + newShape[axis] = indicesValues.length; + const result = buffer(newShape, x.dtype); + const xBuf = this.bufferSync(x); + for (let i = 0; i < result.size; ++i) { + const newLoc = result.indexToLoc(i); + const originalLoc = newLoc.slice(); + originalLoc[axis] = indicesValues[newLoc[axis]]; + const originalIndex = xBuf.locToIndex(originalLoc); + result.values[i] = xBuf.values[originalIndex]; + } + return result.toTensor(); + } + batchToSpaceND(x, blockShape, crops) { + assertNotComplex([x], "batchToSpaceND"); + const prod3 = blockShape.reduce((a, b) => a * b); + const reshaped = backend_util_exports.getReshaped(x.shape, blockShape, prod3); + const permuted = backend_util_exports.getPermuted(reshaped.length, blockShape.length); + const reshapedPermuted = backend_util_exports.getReshapedPermuted(x.shape, blockShape, prod3); + const sliceBeginCoords = backend_util_exports.getSliceBeginCoords(crops, blockShape.length); + const sliceSize = backend_util_exports.getSliceSize(reshapedPermuted, crops, blockShape.length); + return transpose(x.reshape(reshaped), permuted).reshape(reshapedPermuted).slice(sliceBeginCoords, sliceSize); + } + spaceToBatchND(x, blockShape, paddings) { + assertNotComplex([x], "spaceToBatchND"); + const prod3 = blockShape.reduce((a, b) => a * b); + const completePaddings = [[0, 0]]; + completePaddings.push(...paddings); + for (let i = 1 + blockShape.length; i < x.shape.length; ++i) { + completePaddings.push([0, 0]); + } + const paddedX = x.pad(completePaddings); + const reshapedPaddedShape = backend_util_exports.getReshaped(paddedX.shape, blockShape, prod3, false); + const permutedReshapedPaddedPermutation = backend_util_exports.getPermuted(reshapedPaddedShape.length, blockShape.length, false); + const flattenShape = backend_util_exports.getReshapedPermuted(paddedX.shape, blockShape, prod3, false); + const paddedXT = transpose(paddedX.reshape(reshapedPaddedShape), permutedReshapedPaddedPermutation); + return reshape(paddedXT, flattenShape); + } + maxPool(x, convInfo) { + assertNotComplex(x, "maxPool"); + const xValues = this.readSync(x.dataId); + return pool3(xValues, x.shape, x.dtype, x.strides, convInfo, "max").toTensor(); + } + maxPoolBackprop(dy, x, y, convInfo) { + assertNotComplex([x, y], "maxPoolBackprop"); + const xValues = this.readSync(x.dataId); + const maxPosBuf = buffer(convInfo.outShape, x.dtype, maxPoolPositions(xValues, x.shape, x.dtype, convInfo).values); + const strideHeight = convInfo.strideHeight; + const strideWidth = convInfo.strideWidth; + const dilationHeight = convInfo.dilationHeight; + const dilationWidth = convInfo.dilationWidth; + const effectiveFilterHeight = convInfo.effectiveFilterHeight; + const effectiveFilterWidth = convInfo.effectiveFilterWidth; + const padLeft = effectiveFilterWidth - 1 - convInfo.padInfo.left; + const padTop = effectiveFilterHeight - 1 - convInfo.padInfo.top; + const dx = buffer(x.shape, "float32"); + const dyBuf = this.bufferSync(dy); + for (let b = 0; b < convInfo.batchSize; ++b) { + for (let d = 0; d < convInfo.inChannels; ++d) { + for (let dxR = 0; dxR < convInfo.inHeight; ++dxR) { + for (let dxC = 0; dxC < convInfo.inWidth; ++dxC) { + const dyRCorner = dxR - padTop; + const dyCCorner = dxC - padLeft; + let dotProd = 0; + for (let wR = 0; wR < effectiveFilterHeight; wR += dilationHeight) { + const dyR = (dyRCorner + wR) / strideHeight; + if (dyR < 0 || dyR >= convInfo.outHeight || Math.floor(dyR) !== dyR) { + continue; + } + for (let wC = 0; wC < effectiveFilterWidth; wC += dilationWidth) { + const dyC = (dyCCorner + wC) / strideWidth; + if (dyC < 0 || dyC >= convInfo.outWidth || Math.floor(dyC) !== dyC) { + continue; + } + const maxPos = effectiveFilterHeight * effectiveFilterWidth - 1 - maxPosBuf.get(b, dyR, dyC, d); + const curPos = wR * effectiveFilterWidth + wC; + const mask = maxPos === curPos ? 1 : 0; + if (mask === 0) { + continue; + } + const pixel = dyBuf.get(b, dyR, dyC, d); + dotProd += pixel * mask; + } + } + dx.set(dotProd, b, dxR, dxC, d); + } + } + } + } + return dx.toTensor(); + } + avgPoolBackprop(dy, x, convInfo) { + assertNotComplex([dy, x], "avgPoolBackprop"); + const strideHeight = convInfo.strideHeight; + const strideWidth = convInfo.strideWidth; + const filterHeight = convInfo.filterHeight; + const filterWidth = convInfo.filterWidth; + const dilationHeight = convInfo.dilationHeight; + const dilationWidth = convInfo.dilationWidth; + const effectiveFilterHeight = convInfo.effectiveFilterHeight; + const effectiveFilterWidth = convInfo.effectiveFilterWidth; + const padLeft = effectiveFilterWidth - 1 - convInfo.padInfo.left; + const padTop = effectiveFilterHeight - 1 - convInfo.padInfo.top; + const dx = buffer(x.shape, "float32"); + const avgMultiplier = 1 / (filterHeight * filterWidth); + const dyBuf = this.bufferSync(dy); + for (let b = 0; b < convInfo.batchSize; ++b) { + for (let d = 0; d < convInfo.inChannels; ++d) { + for (let dxR = 0; dxR < convInfo.inHeight; ++dxR) { + for (let dxC = 0; dxC < convInfo.inWidth; ++dxC) { + const dyRCorner = dxR - padTop; + const dyCCorner = dxC - padLeft; + let dotProd = 0; + for (let wR = 0; wR < effectiveFilterHeight; wR += dilationHeight) { + const dyR = (dyRCorner + wR) / strideHeight; + if (dyR < 0 || dyR >= convInfo.outHeight || Math.floor(dyR) !== dyR) { + continue; + } + for (let wC = 0; wC < effectiveFilterWidth; wC += dilationWidth) { + const dyC = (dyCCorner + wC) / strideWidth; + if (dyC < 0 || dyC >= convInfo.outWidth || Math.floor(dyC) !== dyC) { + continue; + } + const pixel = dyBuf.get(b, dyR, dyC, d); + dotProd += pixel; + } + } + dx.set(dotProd * avgMultiplier, b, dxR, dxC, d); + } + } + } + } + return dx.toTensor(); + } + pool3d(x, convInfo, poolType) { + assertNotComplex(x, "pool3d"); + const strideDepth = convInfo.strideDepth; + const strideHeight = convInfo.strideHeight; + const strideWidth = convInfo.strideWidth; + const dilationDepth = convInfo.dilationDepth; + const dilationHeight = convInfo.dilationHeight; + const dilationWidth = convInfo.dilationWidth; + const effectiveFilterDepth = convInfo.effectiveFilterDepth; + const effectiveFilterHeight = convInfo.effectiveFilterHeight; + const effectiveFilterWidth = convInfo.effectiveFilterWidth; + const padFront = convInfo.padInfo.front; + const padTop = convInfo.padInfo.top; + const padLeft = convInfo.padInfo.left; + const initialValue = poolType === "max" ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY; + const xValues = this.readSync(x.dataId); + const output = buffer(convInfo.outShape, x.dtype); + const outputVals = output.values; + const outputBatchStrides = convInfo.outShape[1] * convInfo.outShape[2] * convInfo.outShape[3] * convInfo.outShape[4]; + const outputDepthStrides = convInfo.outShape[2] * convInfo.outShape[3] * convInfo.outShape[4]; + const outputRowStrides = convInfo.outShape[3] * convInfo.outShape[4]; + const outputColStrides = convInfo.outShape[4]; + for (let batch = 0; batch < convInfo.batchSize; ++batch) { + const outputBatchOffset = batch * outputBatchStrides; + const inputBatchOffset = batch * x.strides[0]; + for (let channel = 0; channel < convInfo.inChannels; ++channel) { + for (let yDepth = 0; yDepth < convInfo.outDepth; ++yDepth) { + const xDepthCorner = yDepth * strideDepth - padFront; + let xDepthMin = xDepthCorner; + while (xDepthMin < 0) { + xDepthMin += dilationDepth; + } + const xDepthMax = Math.min(convInfo.inDepth, effectiveFilterDepth + xDepthCorner); + const outputDepthOffset = outputBatchOffset + yDepth * outputDepthStrides; + for (let yRow = 0; yRow < convInfo.outHeight; ++yRow) { + const xRowCorner = yRow * strideHeight - padTop; + let xRowMin = xRowCorner; + while (xRowMin < 0) { + xRowMin += dilationHeight; + } + const xRowMax = Math.min(convInfo.inHeight, effectiveFilterHeight + xRowCorner); + const outputRowOffset = outputDepthOffset + yRow * outputRowStrides; + for (let yCol = 0; yCol < convInfo.outWidth; ++yCol) { + const xColCorner = yCol * strideWidth - padLeft; + let xColMin = xColCorner; + while (xColMin < 0) { + xColMin += dilationWidth; + } + const xColMax = Math.min(convInfo.inWidth, effectiveFilterWidth + xColCorner); + const outputColOffset = outputRowOffset + yCol * outputColStrides; + let minMaxValue = initialValue; + let avgValue = 0; + let count2 = 0; + for (let xDepth = xDepthMin; xDepth < xDepthMax; xDepth += dilationDepth) { + const xDepthOffset = inputBatchOffset + xDepth * x.strides[1]; + for (let xRow = xRowMin; xRow < xRowMax; xRow += dilationHeight) { + const xRowOffset = xDepthOffset + xRow * x.strides[2]; + for (let xCol = xColMin; xCol < xColMax; xCol += dilationWidth) { + const xColOffset = xRowOffset + xCol * x.strides[3]; + const pixel = xValues[xColOffset + channel]; + if (poolType === "max" && pixel > minMaxValue) { + minMaxValue = pixel; + } else if (poolType === "avg") { + avgValue += pixel; + count2++; + } + if (isNaN(minMaxValue)) { + break; + } + } + if (isNaN(minMaxValue)) { + break; + } + } + if (isNaN(minMaxValue)) { + break; + } + } + const outputOffset = outputColOffset + channel; + outputVals[outputOffset] = poolType === "avg" ? avgValue / count2 : minMaxValue; + } + } + } + } + } + return output.toTensor(); + } + avgPool3d(x, convInfo) { + assertNotComplex(x, "avgPool3d"); + return this.pool3d(x, convInfo, "avg").toFloat(); + } + avgPool3dBackprop(dy, x, convInfo) { + assertNotComplex([dy, x], "avgPool3dBackprop"); + const strideDepth = convInfo.strideDepth; + const strideHeight = convInfo.strideHeight; + const strideWidth = convInfo.strideWidth; + const filterDepth = convInfo.filterDepth; + const filterHeight = convInfo.filterHeight; + const filterWidth = convInfo.filterWidth; + const dilationDepth = convInfo.dilationDepth; + const dilationHeight = convInfo.dilationHeight; + const dilationWidth = convInfo.dilationWidth; + const effectiveFilterDepth = convInfo.effectiveFilterDepth; + const effectiveFilterHeight = convInfo.effectiveFilterHeight; + const effectiveFilterWidth = convInfo.effectiveFilterWidth; + const padFront = effectiveFilterDepth - 1 - convInfo.padInfo.front; + const padLeft = effectiveFilterWidth - 1 - convInfo.padInfo.left; + const padTop = effectiveFilterHeight - 1 - convInfo.padInfo.top; + const dx = buffer(x.shape, "float32"); + const avgMultiplier = 1 / (filterDepth * filterHeight * filterWidth); + const dyBuf = this.bufferSync(dy); + for (let batch = 0; batch < convInfo.batchSize; ++batch) { + for (let channel = 0; channel < convInfo.inChannels; ++channel) { + for (let dxDepth = 0; dxDepth < convInfo.inDepth; ++dxDepth) { + for (let dxRow = 0; dxRow < convInfo.inHeight; ++dxRow) { + for (let dxCol = 0; dxCol < convInfo.inWidth; ++dxCol) { + const dyDepthCorner = dxDepth - padFront; + const dyRowCorner = dxRow - padTop; + const dyColCorner = dxCol - padLeft; + let dotProd = 0; + for (let wDepth = 0; wDepth < effectiveFilterDepth; wDepth += dilationDepth) { + const dyDepth = (dyDepthCorner + wDepth) / strideDepth; + if (dyDepth < 0 || dyDepth >= convInfo.outDepth || Math.floor(dyDepth) !== dyDepth) { + continue; + } + for (let wRow = 0; wRow < effectiveFilterHeight; wRow += dilationHeight) { + const dyRow = (dyRowCorner + wRow) / strideHeight; + if (dyRow < 0 || dyRow >= convInfo.outHeight || Math.floor(dyRow) !== dyRow) { + continue; + } + for (let wCol = 0; wCol < effectiveFilterWidth; wCol += dilationWidth) { + const dyCol = (dyColCorner + wCol) / strideWidth; + if (dyCol < 0 || dyCol >= convInfo.outWidth || Math.floor(dyCol) !== dyCol) { + continue; + } + const pixel = dyBuf.get(batch, dyDepth, dyRow, dyCol, channel); + dotProd += pixel; + } + } + } + dx.set(dotProd * avgMultiplier, batch, dxDepth, dxRow, dxCol, channel); + } + } + } + } + } + return dx.toTensor(); + } + maxPool3d(x, convInfo) { + assertNotComplex(x, "maxPool3d"); + return this.pool3d(x, convInfo, "max").toFloat(); + } + maxPool3dPositions(x, convInfo) { + const maxPositions = buffer(convInfo.outShape, "int32"); + const strideDepth = convInfo.strideDepth; + const strideHeight = convInfo.strideHeight; + const strideWidth = convInfo.strideWidth; + const dilationDepth = convInfo.dilationDepth; + const dilationHeight = convInfo.dilationHeight; + const dilationWidth = convInfo.dilationWidth; + const effectiveFilterDepth = convInfo.effectiveFilterDepth; + const effectiveFilterHeight = convInfo.effectiveFilterHeight; + const effectiveFilterWidth = convInfo.effectiveFilterWidth; + const padFront = convInfo.padInfo.front; + const padTop = convInfo.padInfo.top; + const padLeft = convInfo.padInfo.left; + const xBuf = this.bufferSync(x); + for (let batch = 0; batch < convInfo.batchSize; ++batch) { + for (let channel = 0; channel < convInfo.inChannels; ++channel) { + for (let yDepth = 0; yDepth < convInfo.outDepth; ++yDepth) { + const xDepthCorner = yDepth * strideDepth - padFront; + let xDepthMin = xDepthCorner; + while (xDepthMin < 0) { + xDepthMin += dilationDepth; + } + const xDepthMax = Math.min(convInfo.inDepth, effectiveFilterDepth + xDepthCorner); + for (let yRow = 0; yRow < convInfo.outHeight; ++yRow) { + const xRowCorner = yRow * strideHeight - padTop; + let xRowMin = xRowCorner; + while (xRowMin < 0) { + xRowMin += dilationHeight; + } + const xRowMax = Math.min(convInfo.inHeight, effectiveFilterHeight + xRowCorner); + for (let yCol = 0; yCol < convInfo.outWidth; ++yCol) { + const xColCorner = yCol * strideWidth - padLeft; + let xColMin = xColCorner; + while (xColMin < 0) { + xColMin += dilationWidth; + } + const xColMax = Math.min(convInfo.inWidth, effectiveFilterWidth + xColCorner); + let maxValue = Number.NEGATIVE_INFINITY; + let maxPosition = -1; + for (let xDepth = xDepthMin; xDepth < xDepthMax; xDepth += dilationDepth) { + const wDepth = xDepth - xDepthCorner; + for (let xRow = xRowMin; xRow < xRowMax; xRow += dilationHeight) { + const wRow = xRow - xRowCorner; + for (let xCol = xColMin; xCol < xColMax; xCol += dilationWidth) { + const wCol = xCol - xColCorner; + const pixel = xBuf.get(batch, xDepth, xRow, xCol, channel); + if (pixel >= maxValue) { + maxValue = pixel; + maxPosition = wDepth * effectiveFilterHeight * effectiveFilterWidth + wRow * effectiveFilterHeight + wCol; + } + } + } + } + maxPositions.set(maxPosition, batch, yDepth, yRow, yCol, channel); + } + } + } + } + } + return maxPositions.toTensor(); + } + maxPool3dBackprop(dy, x, y, convInfo) { + assertNotComplex([x, y], "maxPool3dBackprop"); + const maxPositions = this.maxPool3dPositions(x, convInfo); + const strideDepth = convInfo.strideDepth; + const strideHeight = convInfo.strideHeight; + const strideWidth = convInfo.strideWidth; + const dilationDepth = convInfo.dilationDepth; + const dilationHeight = convInfo.dilationHeight; + const dilationWidth = convInfo.dilationWidth; + const effectiveFilterDepth = convInfo.effectiveFilterDepth; + const effectiveFilterHeight = convInfo.effectiveFilterHeight; + const effectiveFilterWidth = convInfo.effectiveFilterWidth; + const padFront = effectiveFilterDepth - 1 - convInfo.padInfo.front; + const padLeft = effectiveFilterWidth - 1 - convInfo.padInfo.left; + const padTop = effectiveFilterHeight - 1 - convInfo.padInfo.top; + const dx = buffer(x.shape, "float32"); + const maxPosBuf = this.bufferSync(maxPositions); + const dyBuf = this.bufferSync(dy); + for (let batch = 0; batch < convInfo.batchSize; ++batch) { + for (let channel = 0; channel < convInfo.inChannels; ++channel) { + for (let dxDepth = 0; dxDepth < convInfo.inDepth; ++dxDepth) { + for (let dxRow = 0; dxRow < convInfo.inHeight; ++dxRow) { + for (let dxCol = 0; dxCol < convInfo.inWidth; ++dxCol) { + const dyDepthCorner = dxDepth - padFront; + const dyRowCorner = dxRow - padTop; + const dyColCorner = dxCol - padLeft; + let dotProd = 0; + for (let wDepth = 0; wDepth < effectiveFilterDepth; wDepth += dilationDepth) { + const dyDepth = (dyDepthCorner + wDepth) / strideDepth; + if (dyDepth < 0 || dyDepth >= convInfo.outDepth || Math.floor(dyDepth) !== dyDepth) { + continue; + } + for (let wRow = 0; wRow < effectiveFilterHeight; wRow += dilationHeight) { + const dyRow = (dyRowCorner + wRow) / strideHeight; + if (dyRow < 0 || dyRow >= convInfo.outHeight || Math.floor(dyRow) !== dyRow) { + continue; + } + for (let wCol = 0; wCol < effectiveFilterWidth; wCol += dilationWidth) { + const dyCol = (dyColCorner + wCol) / strideWidth; + if (dyCol < 0 || dyCol >= convInfo.outWidth || Math.floor(dyCol) !== dyCol) { + continue; + } + const maxPos = effectiveFilterDepth * effectiveFilterHeight * effectiveFilterWidth - 1 - maxPosBuf.get(batch, dyDepth, dyRow, dyCol, channel); + const curPos = wDepth * effectiveFilterHeight * effectiveFilterWidth + wRow * effectiveFilterWidth + wCol; + const mask = maxPos === curPos ? 1 : 0; + if (mask === 0) { + continue; + } + const pixel = dyBuf.get(batch, dyDepth, dyRow, dyCol, channel); + dotProd += pixel * mask; + } + } + } + dx.set(dotProd, batch, dxDepth, dxRow, dxCol, channel); + } + } + } + } + } + return dx.toTensor(); + } + cast(x, dtype) { + return backend_util_exports.castTensor(x, dtype, this); + } + reshape(x, shape) { + return backend_util_exports.reshapeTensor(x, shape); + } + avgPool(x, convInfo) { + assertNotComplex(x, "avgPool"); + assertNotComplex(x, "maxPool"); + const xValues = this.readSync(x.dataId); + return pool3(xValues, x.shape, x.dtype, x.strides, convInfo, "avg").toTensor().toFloat(); + } + resizeBilinear(x, newHeight, newWidth, alignCorners) { + assertNotComplex(x, "resizeBilinear"); + const [batch, oldHeight, oldWidth, numChannels] = x.shape; + const xValues = this.readSync(x.dataId); + const result = new Float32Array(util_exports.sizeFromShape([batch, newHeight, newWidth, numChannels])); + const effectiveInputSize = [ + alignCorners && newHeight > 1 ? oldHeight - 1 : oldHeight, + alignCorners && newWidth > 1 ? oldWidth - 1 : oldWidth + ]; + const effectiveOutputSize = [ + alignCorners && newHeight > 1 ? newHeight - 1 : newHeight, + alignCorners && newWidth > 1 ? newWidth - 1 : newWidth + ]; + let outputIdx = 0; + const effectiveRowSizeRatio = effectiveInputSize[0] / effectiveOutputSize[0]; + const effectiveColSizeRatio = effectiveInputSize[1] / effectiveOutputSize[1]; + for (let b = 0; b < batch; b++) { + for (let r = 0; r < newHeight; r++) { + const sourceFracRow = effectiveRowSizeRatio * r; + const sourceRowFloor = Math.floor(sourceFracRow); + const rowFrac = sourceFracRow - sourceRowFloor; + const sourceRowCeil = Math.min(oldHeight - 1, Math.ceil(sourceFracRow)); + const topRowOffset = b * x.strides[0] + sourceRowFloor * x.strides[1]; + const botRowOffset = b * x.strides[0] + sourceRowCeil * x.strides[1]; + for (let c = 0; c < newWidth; c++) { + const sourceFracCol = effectiveColSizeRatio * c; + const sourceColFloor = Math.floor(sourceFracCol); + const colFrac = sourceFracCol - sourceColFloor; + const sourceColCeil = Math.min(oldWidth - 1, Math.ceil(sourceFracCol)); + const topLeftOffest = topRowOffset + sourceColFloor * x.strides[2]; + const botLeftOffset = botRowOffset + sourceColFloor * x.strides[2]; + const topRightOffset = topRowOffset + sourceColCeil * x.strides[2]; + const botRightOffest = botRowOffset + sourceColCeil * x.strides[2]; + for (let d = 0; d < numChannels; d++) { + const topLeft = xValues[topLeftOffest + d]; + const bottomLeft = xValues[botLeftOffset + d]; + const topRight = xValues[topRightOffset + d]; + const bottomRight = xValues[botRightOffest + d]; + const top = topLeft + (topRight - topLeft) * colFrac; + const bottom = bottomLeft + (bottomRight - bottomLeft) * colFrac; + const newValue = top + (bottom - top) * rowFrac; + result[outputIdx++] = newValue; + } + } + } + } + return tensor5(result, [batch, newHeight, newWidth, numChannels]); + } + resizeBilinearBackprop(dy, x, alignCorners) { + assertNotComplex([dy, x], "resizeBilinearBackprop"); + const [batch, xHeight, xWidth, depth] = x.shape; + const [, yHeight, yWidth] = dy.shape; + const output = new Float32Array(batch * xHeight * xWidth * depth); + const effectiveXSize = [ + alignCorners && yHeight > 1 ? xHeight - 1 : xHeight, + alignCorners && yWidth > 1 ? xWidth - 1 : xWidth + ]; + const effectiveYSize = [ + alignCorners && yHeight > 1 ? yHeight - 1 : yHeight, + alignCorners && yWidth > 1 ? yWidth - 1 : yWidth + ]; + const heightScale = effectiveXSize[0] / effectiveYSize[0]; + const widthScale = effectiveXSize[1] / effectiveYSize[1]; + const dyValues = this.readSync(dy.dataId); + let offset = 0; + for (let b = 0; b < batch; b++) { + const bOffset = b * x.strides[0]; + for (let r = 0; r < yHeight; r++) { + const dxR = r * heightScale; + const topDxRIndex = Math.floor(dxR); + const bottomDxRIndex = Math.min(Math.ceil(dxR), xHeight - 1); + const topDxROffset = bOffset + topDxRIndex * x.strides[1]; + const bottomDxROffset = bOffset + bottomDxRIndex * x.strides[1]; + const dxRLerp = dxR - topDxRIndex; + const inverseDxRLerp = 1 - dxRLerp; + for (let c = 0; c < yWidth; c++) { + const dxC = c * widthScale; + const leftDxCIndex = Math.floor(dxC); + const rightDxCIndex = Math.min(Math.ceil(dxC), xWidth - 1); + const dxCLerp = dxC - leftDxCIndex; + const inverseDxCLerp = 1 - dxCLerp; + const topLeftRCOffset = topDxROffset + leftDxCIndex * x.strides[2]; + const topRightRCOffset = topDxROffset + rightDxCIndex * x.strides[2]; + const bottomLeftRCOffset = bottomDxROffset + leftDxCIndex * x.strides[2]; + const bottomRightRCOffset = bottomDxROffset + rightDxCIndex * x.strides[2]; + const inverseDxRLerpTimesInverseDxCLerp = inverseDxRLerp * inverseDxCLerp; + const inverseDxRLerpTimesDxCLerp = inverseDxRLerp * dxCLerp; + const dxRLerpTimesInverseDxCLerp = dxRLerp * inverseDxCLerp; + const dxRLerpTimesDxCLerp = dxRLerp * dxCLerp; + for (let d = 0; d < depth; d++) { + const dyVal = dyValues[offset++]; + output[topLeftRCOffset + d] += dyVal * inverseDxRLerpTimesInverseDxCLerp; + output[topRightRCOffset + d] += dyVal * inverseDxRLerpTimesDxCLerp; + output[bottomLeftRCOffset + d] += dyVal * dxRLerpTimesInverseDxCLerp; + output[bottomRightRCOffset + d] += dyVal * dxRLerpTimesDxCLerp; + } + } + } + } + return tensor4d(output, [batch, xWidth, xHeight, depth], x.dtype); + } + resizeNearestNeighbor(x, newHeight, newWidth, alignCorners) { + assertNotComplex(x, "resizeNearestNeighbor"); + const [batch, oldHeight, oldWidth, numChannels] = x.shape; + const xValues = this.readSync(x.dataId); + const output = new Float32Array(batch * newHeight * newWidth * numChannels); + const effectiveInputSize = [ + alignCorners && newHeight > 1 ? oldHeight - 1 : oldHeight, + alignCorners && newWidth > 1 ? oldWidth - 1 : oldWidth + ]; + const effectiveOutputSize = [ + alignCorners && newHeight > 1 ? newHeight - 1 : newHeight, + alignCorners && newWidth > 1 ? newWidth - 1 : newWidth + ]; + const effectiveRowSizeRatio = effectiveInputSize[0] / effectiveOutputSize[0]; + const effectiveColSizeRatio = effectiveInputSize[1] / effectiveOutputSize[1]; + let outputOffset = 0; + for (let b = 0; b < batch; b++) { + const batchOffset = b * x.strides[0]; + for (let r = 0; r < newHeight; r++) { + const sourceFracRow = effectiveRowSizeRatio * r; + const sourceNearestRow = Math.min(oldHeight - 1, alignCorners ? Math.round(sourceFracRow) : Math.floor(sourceFracRow)); + const rowOffset = batchOffset + sourceNearestRow * x.strides[1]; + for (let c = 0; c < newWidth; c++) { + const sourceFracCol = effectiveColSizeRatio * c; + const sourceNearestCol = Math.min(oldWidth - 1, alignCorners ? Math.round(sourceFracCol) : Math.floor(sourceFracCol)); + const colOffset = rowOffset + sourceNearestCol * x.strides[2]; + for (let d = 0; d < numChannels; d++) { + const newVal = xValues[colOffset + d]; + output[outputOffset++] = newVal; + } + } + } + } + return tensor5(output, [batch, newHeight, newWidth, numChannels], x.dtype); + } + resizeNearestNeighborBackprop(dy, x, alignCorners) { + assertNotComplex([dy, x], "resizeNearestNeighborBackprop"); + const [batch, xHeight, xWidth, depth] = x.shape; + const [, yHeight, yWidth] = dy.shape; + const output = new Float32Array(batch * xHeight * xWidth * depth); + const dyValues = this.readSync(dy.dataId); + const effectiveXSize = [ + alignCorners && yHeight > 1 ? xHeight - 1 : xHeight, + alignCorners && yWidth > 1 ? xWidth - 1 : xWidth + ]; + const effectiveYSize = [ + alignCorners && yHeight > 1 ? yHeight - 1 : yHeight, + alignCorners && yWidth > 1 ? yWidth - 1 : yWidth + ]; + const heightScale = effectiveXSize[0] / effectiveYSize[0]; + const widthScale = effectiveXSize[1] / effectiveYSize[1]; + const invHeightScale = 1 / heightScale; + const invWidthScale = 1 / widthScale; + const winHeight = Math.ceil(invHeightScale) * 2 + 2; + const winWidth = Math.ceil(invWidthScale) * 2 + 2; + for (let b = 0; b < batch; b++) { + const batchOffset = b * x.strides[0]; + for (let r = 0; r < xHeight; r++) { + const rowOffset = batchOffset + r * x.strides[1]; + const startRLerp = Math.floor(r * invHeightScale); + const startDyR = Math.floor(startRLerp - winHeight / 2); + for (let c = 0; c < xWidth; c++) { + const colOffset = rowOffset + c * x.strides[2]; + const startCLerp = Math.floor(c * invWidthScale); + const startDyC = Math.floor(startCLerp - winWidth / 2); + for (let d = 0; d < depth; d++) { + let accum = 0; + for (let dyRIndex = 0; dyRIndex < winHeight; dyRIndex++) { + const dyR = dyRIndex + startDyR; + if (dyR < 0 || dyR >= yHeight) { + continue; + } + const dyROffset = batchOffset + dyR * dy.strides[1]; + const sourceFracRow = dyR * heightScale; + const sourceNearestRow = Math.min(xHeight - 1, alignCorners ? Math.round(sourceFracRow) : Math.floor(sourceFracRow)); + if (r !== sourceNearestRow) { + continue; + } + for (let dyCIndex = 0; dyCIndex < winWidth; dyCIndex++) { + const dyC = dyCIndex + startDyC; + if (dyC < 0 || dyC >= yWidth) { + continue; + } + const dyCOffset = dyROffset + dyC * dy.strides[2]; + const sourceFracCol = dyC * widthScale; + const sourceNearestCol = Math.min(xWidth - 1, alignCorners ? Math.round(sourceFracCol) : Math.floor(sourceFracCol)); + if (c === sourceNearestCol) { + accum += dyValues[dyCOffset + d]; + } + } + } + output[colOffset + d] = accum; + } + } + } + } + return tensor4d(output, x.shape, x.dtype); + } + batchNorm(x, mean5, variance, offset, scale2, varianceEpsilon) { + assertNotComplex([x, mean5, variance, scale2, offset], "batchNorm"); + const xVals = this.readSync(x.dataId); + const mVals = this.readSync(mean5.dataId); + const varVals = this.readSync(variance.dataId); + const sVals = scale2 ? this.readSync(scale2.dataId) : new Float32Array([1]); + const offVals = offset ? this.readSync(offset.dataId) : new Float32Array([0]); + const outVals = new Float32Array(xVals.length); + const offValsLength = offVals.length; + const sValsLength = sVals.length; + const varValsLength = varVals.length; + const mValsLength = mVals.length; + let offi = 0; + let mi = 0; + let si = 0; + let vi = 0; + for (let i = 0; i < xVals.length; ++i) { + outVals[i] = offVals[offi++] + (xVals[i] - mVals[mi++]) * sVals[si++] / Math.sqrt(varVals[vi++] + varianceEpsilon); + if (offi >= offValsLength) { + offi = 0; + } + if (mi >= mValsLength) { + mi = 0; + } + if (si >= sValsLength) { + si = 0; + } + if (vi >= varValsLength) { + vi = 0; + } + } + return tensor4d(outVals, x.shape); + } + localResponseNormalization4D(x, depthRadius, bias, alpha, beta) { + assertNotComplex(x, "localResponseNormalization4D"); + const channels = x.shape[3]; + const maxD = channels - 1; + const xValues = this.readSync(x.dataId); + const size = x.size; + const result = new Float32Array(size); + function sumAcrossChannels(offset) { + const currentChannel = offset % channels; + let beginSumOffset = offset - currentChannel + Math.max(0, currentChannel - depthRadius); + const endSumOffset = offset - currentChannel + Math.min(currentChannel + depthRadius, maxD); + let sum26 = 0; + for (; beginSumOffset <= endSumOffset; beginSumOffset++) { + const z = xValues[beginSumOffset]; + sum26 += z * z; + } + return sum26; + } + for (let offset = 0; offset < size; offset++) { + const sum26 = sumAcrossChannels(offset); + const val = xValues[offset] * Math.pow(bias + alpha * sum26, -beta); + result[offset] = val; + } + return tensor4d(result, x.shape); + } + LRNGrad(dy, inputImage, outputImage, depthRadius, bias, alpha, beta) { + assertNotComplex(dy, "LRNGrad"); + const channels = dy.shape[3]; + const dyValues = this.readSync(dy.dataId); + const inputImageValues = this.readSync(inputImage.dataId); + const outputImageValues = this.readSync(outputImage.dataId); + const result = new Float32Array(dy.size); + const size = dy.size; + for (let offset = 0; offset < size; offset++) { + const currentChannel = offset % channels; + const depthBegin = offset - currentChannel + Math.max(0, currentChannel - depthRadius); + const depthEnd = offset - currentChannel + Math.min(channels, currentChannel + depthRadius + 1); + let norm4 = 0; + for (let k = depthBegin; k < depthEnd; k++) { + norm4 += Math.pow(inputImageValues[k], 2); + } + norm4 = alpha * norm4 + bias; + for (let k = depthBegin; k < depthEnd; k++) { + let dyi = -2 * alpha * beta * inputImageValues[k] * outputImageValues[offset] / norm4; + if (offset === k) { + dyi += Math.pow(norm4, -beta); + } + dyi *= dyValues[offset]; + result[k] += dyi; + } + } + return tensor4d(result, dy.shape); + } + multinomial(logits, normalized, numSamples, seed) { + assertNotComplex(logits, "multinomial"); + const probabilities = normalized ? logits : softmax(logits); + const batchSize = probabilities.shape[0]; + const numEvents = probabilities.shape[1]; + const res = zeros([batchSize, numSamples], "int32"); + const resVals = this.readSync(res.dataId); + const probVals = this.readSync(probabilities.dataId); + for (let b = 0; b < batchSize; ++b) { + const offset = b * numEvents; + const cdf = new Float32Array(numEvents - 1); + cdf[0] = probVals[offset]; + for (let event = 1; event < cdf.length; ++event) { + cdf[event] = cdf[event - 1] + probVals[offset + event]; + } + const random = seedrandom4.alea(seed.toString()); + const outOffset = b * numSamples; + for (let sampleId = 0; sampleId < numSamples; ++sampleId) { + const r = random(); + resVals[outOffset + sampleId] = cdf.length; + for (let event = 0; event < cdf.length; event++) { + if (r < cdf[event]) { + resVals[outOffset + sampleId] = event; + break; + } + } + } + } + return res; + } + oneHot(indices, depth, onValue, offValue) { + assertNotComplex(indices, "oneHot"); + const res = new Float32Array(indices.size * depth); + res.fill(offValue); + const indicesVal = this.readSync(indices.dataId); + for (let event = 0; event < indices.size; ++event) { + if (indicesVal[event] >= 0 && indicesVal[event] < depth) { + res[event * depth + indicesVal[event]] = onValue; + } + } + return tensor2d(res, [indices.size, depth], "int32"); + } + nonMaxSuppression(boxes, scores, maxOutputSize, iouThreshold, scoreThreshold) { + assertNotComplex(boxes, "nonMaxSuppression"); + const boxesVals = this.readSync(boxes.dataId); + const scoresVals = this.readSync(scores.dataId); + return nonMaxSuppressionV3Impl2(boxesVals, scoresVals, maxOutputSize, iouThreshold, scoreThreshold); + } + fft(x) { + return this.fftBatch(x, false); + } + ifft(x) { + return this.fftBatch(x, true); + } + fftBatch(x, inverse) { + const batch = x.shape[0]; + const innerDim = x.shape[1]; + const realResult = buffer(x.shape, "float32"); + const imagResult = buffer(x.shape, "float32"); + const real6 = real(x).as2D(batch, innerDim); + const imag6 = imag(x).as2D(batch, innerDim); + for (let b = 0; b < batch; b++) { + const r = real6.slice([b, 0], [1, innerDim]); + const i = imag6.slice([b, 0], [1, innerDim]); + const input2 = complex(r, i); + const res = this.readSync(this.fftImpl(input2, inverse).dataId); + for (let d = 0; d < innerDim; d++) { + const c = backend_util_exports.getComplexWithIndex(res, d); + realResult.values[b * innerDim + d] = c.real; + imagResult.values[b * innerDim + d] = c.imag; + } + } + const t = complex(realResult.toTensor(), imagResult.toTensor()); + return t.as2D(batch, innerDim); + } + fftImpl(x, inverse) { + const x1D = x.as1D(); + const n = x1D.size; + if (this.isExponentOf2(n)) { + let result = this.fftRadix2(x1D, n, inverse).as2D(x.shape[0], x.shape[1]); + if (inverse) { + result = complex(real(result).div(scalar(n)), imag(result).div(scalar(n))); + } + return result; + } else { + const data = this.readSync(x.dataId); + const rawOutput = this.fourierTransformByMatmul(data, n, inverse); + const output = backend_util_exports.splitRealAndImagArrays(rawOutput); + return complex(output.real, output.imag).as2D(x.shape[0], x.shape[1]); + } + } + isExponentOf2(size) { + return (size & size - 1) === 0; + } + fftRadix2(input2, size, inverse) { + if (size === 1) { + return input2; + } + const data = this.readSync(input2.dataId); + const half = size / 2; + const evenComplex = backend_util_exports.complexWithEvenIndex(data); + let evenTensor = complex(evenComplex.real, evenComplex.imag).as1D(); + const oddComplex = backend_util_exports.complexWithOddIndex(data); + let oddTensor = complex(oddComplex.real, oddComplex.imag).as1D(); + evenTensor = this.fftRadix2(evenTensor, half, inverse); + oddTensor = this.fftRadix2(oddTensor, half, inverse); + const e = backend_util_exports.exponents(size, inverse); + const exponent2 = complex(e.real, e.imag).mul(oddTensor); + const addPart = evenTensor.add(exponent2); + const subPart = evenTensor.sub(exponent2); + const realTensor = real(addPart).concat(real(subPart)); + const imagTensor = imag(addPart).concat(imag(subPart)); + return complex(realTensor, imagTensor).as1D(); + } + fourierTransformByMatmul(data, size, inverse) { + const ret = new Float32Array(size * 2); + for (let r = 0; r < size; r++) { + let real6 = 0; + let imag6 = 0; + for (let c = 0; c < size; c++) { + const e = backend_util_exports.exponent(r * c, size, inverse); + const term = backend_util_exports.getComplexWithIndex(data, c); + real6 += term.real * e.real - term.imag * e.imag; + imag6 += term.real * e.imag + term.imag * e.real; + } + if (inverse) { + real6 /= size; + imag6 /= size; + } + backend_util_exports.assignToTypedArray(ret, real6, imag6, r); + } + return ret; + } + depthToSpace(x, blockSize, dataFormat) { + util_exports.assert(dataFormat === "NHWC", () => `Only NHWC dataFormat supported on CPU for depthToSpace. Got ${dataFormat}`); + util_exports.assert(blockSize > 1, () => `blockSize should be > 1 for depthToSpace, but was: ${blockSize}`); + const batchSize = x.shape[0]; + const inputHeight = x.shape[1]; + const inputWidth = x.shape[2]; + const inputDepth = x.shape[3]; + const outputHeight = inputHeight * blockSize; + const outputWidth = inputWidth * blockSize; + const outputDepth = inputDepth / (blockSize * blockSize); + const xValues = this.readSync(x.dataId); + const result = new Float32Array(batchSize * outputHeight * outputWidth * outputDepth); + let outputIdx = 0; + for (let b = 0; b < batchSize; ++b) { + for (let h = 0; h < outputHeight; ++h) { + const inH = Math.floor(h / blockSize); + const offsetH = h % blockSize; + for (let w = 0; w < outputWidth; ++w) { + const inW = Math.floor(w / blockSize); + const offsetW = w % blockSize; + const offsetD = (offsetH * blockSize + offsetW) * outputDepth; + for (let d = 0; d < outputDepth; ++d) { + const inD = d + offsetD; + const inputIdx = inD + inputDepth * (inW + inputWidth * (inH + inputHeight * b)); + result[outputIdx++] = xValues[inputIdx]; + } + } + } + } + return tensor4d(result, [batchSize, outputHeight, outputWidth, outputDepth]); + } + broadcastedBinaryOp(a, b, dtype, op2) { + const newShape = backend_util_exports.assertAndGetBroadcastShape(a.shape, b.shape); + const result = buffer(newShape, dtype); + const aVals = this.readSync(a.dataId); + const bVals = this.readSync(b.dataId); + const aBroadcastDims = backend_util_exports.getBroadcastDims(a.shape, newShape); + const bBroadcastDims = backend_util_exports.getBroadcastDims(b.shape, newShape); + const resVals = result.values; + if (aBroadcastDims.length + bBroadcastDims.length === 0) { + for (let i = 0; i < resVals.length; ++i) { + resVals[i] = op2(aVals[i % aVals.length], bVals[i % bVals.length]); + } + } else { + const aBuf = this.bufferSync(a); + const bBuf = this.bufferSync(b); + for (let i = 0; i < resVals.length; ++i) { + const loc = result.indexToLoc(i); + const aLoc = loc.slice(-a.rank); + aBroadcastDims.forEach((d) => aLoc[d] = 0); + const aIndex = aBuf.locToIndex(aLoc); + const bLoc = loc.slice(-b.rank); + bBroadcastDims.forEach((d) => bLoc[d] = 0); + const bIndex = bBuf.locToIndex(bLoc); + resVals[i] = op2(aVals[aIndex], bVals[bIndex]); + } + } + return result.toTensor(); + } + broadcastedBinaryComplexOp(a, b, op2) { + const newShape = backend_util_exports.assertAndGetBroadcastShape(a.shape, b.shape); + const realResult = buffer(newShape, "float32"); + const imagResult = buffer(newShape, "float32"); + const aVals = this.readSync(a.dataId); + const bVals = this.readSync(b.dataId); + const aBroadcastDims = backend_util_exports.getBroadcastDims(a.shape, newShape); + const bBroadcastDims = backend_util_exports.getBroadcastDims(b.shape, newShape); + const realVals = realResult.values; + const imagVals = imagResult.values; + if (aBroadcastDims.length + bBroadcastDims.length === 0) { + for (let i = 0; i < realVals.length; i++) { + const aIdx = i % aVals.length; + const bIdx = i % bVals.length; + const result = op2(aVals[aIdx * 2], aVals[aIdx * 2 + 1], bVals[bIdx * 2], bVals[bIdx * 2 + 1]); + realVals[i] = result.real; + imagVals[i] = result.imag; + } + } else { + const aRealBuf = this.bufferSync(this.data.get(a.dataId).complexTensors.real); + const bRealBuf = this.bufferSync(this.data.get(b.dataId).complexTensors.real); + for (let i = 0; i < realVals.length; i++) { + const loc = realResult.indexToLoc(i); + const aLoc = loc.slice(-a.rank); + aBroadcastDims.forEach((d) => aLoc[d] = 0); + const aIndex = aRealBuf.locToIndex(aLoc); + const bLoc = loc.slice(-b.rank); + bBroadcastDims.forEach((d) => bLoc[d] = 0); + const bIndex = bRealBuf.locToIndex(bLoc); + const opResult = op2(aVals[aIndex * 2], aVals[aIndex * 2 + 1], bVals[bIndex * 2], bVals[bIndex * 2 + 1]); + realVals[i] = opResult.real; + imagVals[i] = opResult.imag; + } + } + return this.complex(realResult.toTensor(), imagResult.toTensor()); + } + split(x, sizeSplits, axis) { + return split8(x, sizeSplits, axis); + } + dispose() { + } + floatPrecision() { + return 32; + } + epsilon() { + return super.epsilon(); + } + cropAndResize(images, boxes, boxIndex, cropSize, method, extrapolationValue) { + const [batch, imageHeight, imageWidth, numChannels] = images.shape; + const numBoxes = boxes.shape[0]; + const [cropHeight, cropWidth] = cropSize; + const output = buffer([numBoxes, cropHeight, cropWidth, numChannels], "float32"); + const boxVals = this.readSync(boxes.dataId); + const boxIndVals = this.readSync(boxIndex.dataId); + const imageVals = this.readSync(images.dataId); + const inStride = images.strides; + const outStride = output.strides; + for (let b = 0; b < numBoxes; b++) { + const startInd = b * 4; + const y1 = boxVals[startInd]; + const x1 = boxVals[startInd + 1]; + const y2 = boxVals[startInd + 2]; + const x2 = boxVals[startInd + 3]; + const bInd = boxIndVals[b]; + if (bInd >= batch) { + continue; + } + const heightScale = cropHeight > 1 ? (y2 - y1) * (imageHeight - 1) / (cropHeight - 1) : 0; + const widthScale = cropWidth > 1 ? (x2 - x1) * (imageWidth - 1) / (cropWidth - 1) : 0; + for (let y = 0; y < cropHeight; y++) { + const yInd = cropHeight > 1 ? y1 * (imageHeight - 1) + y * heightScale : 0.5 * (y1 + y2) * (imageHeight - 1); + if (yInd < 0 || yInd > imageHeight - 1) { + for (let x = 0; x < cropWidth; x++) { + for (let c = 0; c < numChannels; c++) { + const ind = c + x * outStride[2] + y * outStride[1] + b * outStride[0]; + output.values[ind] = extrapolationValue; + } + } + continue; + } + if (method === "bilinear") { + const topInd = Math.floor(yInd); + const bottomInd = Math.ceil(yInd); + const yLerp = yInd - topInd; + for (let x = 0; x < cropWidth; x++) { + const xInd = cropWidth > 1 ? x1 * (imageWidth - 1) + x * widthScale : 0.5 * (x1 + x2) * (imageWidth - 1); + if (xInd < 0 || xInd > imageWidth - 1) { + for (let c = 0; c < numChannels; c++) { + const ind = c + x * outStride[2] + y * outStride[1] + b * outStride[0]; + output.values[ind] = extrapolationValue; + } + continue; + } + const leftInd = Math.floor(xInd); + const rightInd = Math.ceil(xInd); + const xLerp = xInd - leftInd; + for (let c = 0; c < numChannels; c++) { + let ind = c + leftInd * inStride[2] + topInd * inStride[1] + bInd * inStride[0]; + const topLeft = imageVals[ind]; + ind = c + rightInd * inStride[2] + topInd * inStride[1] + bInd * inStride[0]; + const topRight = imageVals[ind]; + ind = c + leftInd * inStride[2] + bottomInd * inStride[1] + bInd * inStride[0]; + const bottomLeft = imageVals[ind]; + ind = c + rightInd * inStride[2] + bottomInd * inStride[1] + bInd * inStride[0]; + const bottomRight = imageVals[ind]; + const top = topLeft + (topRight - topLeft) * xLerp; + const bottom = bottomLeft + (bottomRight - bottomLeft) * xLerp; + ind = c + x * outStride[2] + y * outStride[1] + b * outStride[0]; + output.values[ind] = top + (bottom - top) * yLerp; + } + } + } else { + for (let x = 0; x < cropWidth; ++x) { + const xInd = cropWidth > 1 ? x1 * (imageWidth - 1) + x * widthScale : 0.5 * (x1 + x2) * (imageWidth - 1); + if (xInd < 0 || xInd > imageWidth - 1) { + for (let c = 0; c < numChannels; c++) { + const ind = c + x * outStride[2] + y * outStride[1] + b * outStride[0]; + output.values[ind] = extrapolationValue; + } + continue; + } + const closestX = Math.round(xInd); + const closestY = Math.round(yInd); + for (let c = 0; c < numChannels; c++) { + const inInd = c + closestX * inStride[2] + closestY * inStride[1] + bInd * inStride[0]; + const outInd = c + x * outStride[2] + y * outStride[1] + b * outStride[0]; + output.values[outInd] = imageVals[inInd]; + } + } + } + } + } + return output.toTensor(); + } + sparseToDense(sparseIndices, sparseValues, outputShape, defaultValue) { + const {sliceRank, numUpdates, sliceSize, strides, outputSize} = backend_util_exports.calculateShapes(sparseValues, sparseIndices, outputShape); + const sumDupeIndices = false; + return this.scatter(sparseIndices, sparseValues, outputShape, outputSize, sliceSize, numUpdates, sliceRank, strides, defaultValue, sumDupeIndices); + } + gatherND(x, indices) { + const indicesShape = indices.shape; + const sliceRank = indicesShape[indicesShape.length - 1]; + const [resultShape, numSlices, sliceSize, strides] = backend_util_exports.prepareAndValidate(x, indices); + if (numSlices === 0) { + return tensor5([], resultShape, x.dtype); + } + const buffer10 = new TensorBuffer([numSlices, sliceSize], x.dtype); + const indicesData = this.readSync(indices.dataId); + const xData = this.readSync(x.dataId); + for (let i = 0; i < numSlices; i++) { + const index = []; + let flattenIndex = 0; + for (let j = 0; j < sliceRank; j++) { + const dim = indicesData[i * sliceRank + j]; + flattenIndex += dim * strides[j]; + index.push(dim); + } + if (flattenIndex < 0 || flattenIndex >= x.size / sliceSize) { + throw new Error(`Invalid indices: ${index} does not index into ${x.shape}`); + } + for (let k = 0; k < sliceSize; k++) { + buffer10.values[i * sliceSize + k] = xData[flattenIndex * sliceSize + k]; + } + } + return buffer10.toTensor().reshape(resultShape); + } + scatterND(indices, updates, shape) { + const {sliceRank, numUpdates, sliceSize, strides, outputSize} = backend_util_exports.calculateShapes(updates, indices, shape); + const defaultValue = scalar(0); + const sumDupeIndices = true; + return this.scatter(indices, updates, shape, outputSize, sliceSize, numUpdates, sliceRank, strides, defaultValue, sumDupeIndices); + } + fill(shape, value, dtype) { + dtype = dtype || util_exports.inferDtype(value); + const values = util_exports.getArrayFromDType(dtype, util_exports.sizeFromShape(shape)); + values.fill(value); + return engine22().makeTensor(values, shape, dtype, this); + } + onesLike(x) { + if (x.dtype === "string") { + throw new Error("onesLike is not supported for string tensors"); + } else { + return this.fill(x.shape, 1, x.dtype); + } + } + zerosLike(x) { + const values = util_exports.getArrayFromDType(x.dtype, util_exports.sizeFromShape(x.shape)); + return this.makeOutput(values, x.shape, x.dtype); + } + linspace(start, stop, num) { + return backend_util_exports.linspaceImpl(start, stop, num); + } + scatter(indices, updates, shape, outputSize, sliceSize, numUpdates, sliceRank, strides, defaultValue, sumDupeIndices) { + const flattenShape = [outputSize / sliceSize, sliceSize]; + const indicesData = this.readSync(indices.dataId); + const updatesData = this.readSync(updates.dataId); + if (outputSize === 0) { + return tensor5([], shape, updates.dtype); + } + const buffer10 = new TensorBuffer(flattenShape, updates.dtype); + buffer10.values.fill(this.readSync(defaultValue.dataId)[0]); + for (let i = 0; i < numUpdates; i++) { + const index = []; + let flattenIndex = 0; + for (let j = 0; j < sliceRank; j++) { + const dim = indicesData[i * sliceRank + j]; + index.push(dim); + flattenIndex += dim * strides[j]; + } + if (flattenIndex < 0 || flattenIndex >= outputSize / sliceSize) { + throw new Error(`Invalid indices: ${index} does not index into ${shape}`); + } + for (let k = 0; k < sliceSize; k++) { + if (sumDupeIndices) { + buffer10.values[flattenIndex * sliceSize + k] += updatesData[i * sliceSize + k]; + } else { + buffer10.values[flattenIndex * sliceSize + k] = updates.rank === 0 ? updatesData[0] : updatesData[i * sliceSize + k]; + } + } + } + return buffer10.toTensor().reshape(shape); + } + } + + // node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Max_impl.js + /** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + function maxImpl(aVals, reduceSize, outShape, dtype) { + const vals = util_exports.getTypedArrayFromDType(dtype, util_exports.sizeFromShape(outShape)); + for (let i = 0; i < vals.length; ++i) { + const offset = i * reduceSize; + let max8 = aVals[offset]; + for (let j = 0; j < reduceSize; ++j) { + const value = aVals[offset + j]; + if (value > max8) { + max8 = value; + } + } + vals[i] = max8; + } + return vals; + } + + // node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Transpose_impl.js + /** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + function transposeImpl(xVals, xShape, dtype, perm, newShape) { + const xRank = xShape.length; + const xSize = util_exports.sizeFromShape(xShape); + const xStrides = util_exports.computeStrides(xShape); + const newStrides = util_exports.computeStrides(newShape); + const result = util_exports.getTypedArrayFromDType(dtype, util_exports.sizeFromShape(newShape)); + for (let i = 0; i < xSize; ++i) { + const loc = util_exports.indexToLoc(i, xRank, xStrides); + const newLoc = new Array(loc.length); + for (let i2 = 0; i2 < newLoc.length; i2++) { + newLoc[i2] = loc[perm[i2]]; + } + const newIndex = util_exports.locToIndex(newLoc, xRank, newStrides); + result[newIndex] = xVals[i]; + } + return result; + } + + // node_modules/@tensorflow/tfjs-backend-cpu/dist/shared.js + const shared_exports = {}; + __export(shared_exports, { + maxImpl: () => maxImpl, + transposeImpl: () => transposeImpl + }); + /** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + + // node_modules/@tensorflow/tfjs-backend-cpu/dist/version.js + /** @license See the LICENSE file. */ + const version10 = "2.3.0"; + + // node_modules/@tensorflow/tfjs-backend-cpu/dist/base.js + /** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + registerBackend("cpu", () => new MathBackendCPU(), 1); + + // node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Dilation2D.js + /** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const dilation2dConfig = { + kernelName: Dilation2D, + backendName: "cpu", + kernelFunc: ({inputs, backend: backend2, attrs}) => { + const {x, filter} = inputs; + const {strides, pad: pad8, dilations} = attrs; + const cpuBackend = backend2; + const $x = util_exports.toNestedArray(x.shape, cpuBackend.data.get(x.dataId).values); + const $filter = util_exports.toNestedArray(filter.shape, cpuBackend.data.get(filter.dataId).values); + const {batchSize, inHeight, inWidth, inChannels, outHeight, outWidth, padInfo, strideHeight, strideWidth, filterHeight, filterWidth, dilationHeight, dilationWidth, outShape} = backend_util_exports.computeDilation2DInfo(x.shape, filter.shape, strides, pad8, "NHWC", dilations); + const output = util_exports.makeZerosNestedTypedArray(outShape, x.dtype); + for (let b = 0; b < batchSize; ++b) { + for (let hOut = 0; hOut < outHeight; ++hOut) { + const hBeg = hOut * strideHeight - padInfo.top; + for (let wOut = 0; wOut < outWidth; ++wOut) { + const wBeg = wOut * strideWidth - padInfo.left; + for (let d = 0; d < inChannels; ++d) { + let curVal = Number.MIN_SAFE_INTEGER; + for (let h = 0; h < filterHeight; ++h) { + const hIn = hBeg + h * dilationHeight; + if (hIn >= 0 && hIn < inHeight) { + for (let w = 0; w < filterWidth; ++w) { + const wIn = wBeg + w * dilationWidth; + if (wIn >= 0 && wIn < inWidth) { + const val = $x[b][hIn][wIn][d] + $filter[h][w][d]; + if (val > curVal) { + curVal = val; + } + } + } + } + } + output[b][hOut][wOut][d] = curVal; + } + } + } + } + const dataId = cpuBackend.write(util_exports.toTypedArray(output, x.dtype), outShape, x.dtype); + return {dataId, shape: outShape, dtype: x.dtype}; + } + }; + + // node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Dilation2DBackpropFilter.js + /** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const dilation2dBackpropFilterConfig = { + kernelName: Dilation2DBackpropFilter, + backendName: "cpu", + kernelFunc: ({inputs, backend: backend2, attrs}) => { + const {x, filter, dy} = inputs; + const {strides, pad: pad8, dilations} = attrs; + const cpuBackend = backend2; + const $x = util_exports.toNestedArray(x.shape, cpuBackend.data.get(x.dataId).values); + const $filter = util_exports.toNestedArray(filter.shape, cpuBackend.data.get(filter.dataId).values); + const {batchSize, inHeight, inWidth, inChannels, outHeight, outWidth, padInfo, strideHeight, strideWidth, filterHeight, filterWidth, dilationHeight, dilationWidth, outShape} = backend_util_exports.computeDilation2DInfo(x.shape, filter.shape, strides, pad8, "NHWC", dilations); + util_exports.assert(dy.rank === outShape.length, () => `Error in ${Dilation2DBackpropFilter}, dy must have the same rank as output ${outShape.length}, but got ${dy.rank}`); + const $dy = util_exports.toNestedArray(outShape, cpuBackend.data.get(dy.dataId).values); + const gradients8 = util_exports.makeZerosNestedTypedArray(filter.shape, filter.dtype); + for (let b = 0; b < batchSize; ++b) { + for (let hOut = 0; hOut < outHeight; ++hOut) { + const hBeg = hOut * strideHeight - padInfo.top; + for (let wOut = 0; wOut < outWidth; ++wOut) { + const wBeg = wOut * strideWidth - padInfo.left; + for (let d = 0; d < inChannels; ++d) { + let curVal = Number.MIN_SAFE_INTEGER; + let hMax = 0; + let wMax = 0; + for (let h = 0; h < filterHeight; ++h) { + const hIn = hBeg + h * dilationHeight; + if (hIn >= 0 && hIn < inHeight) { + for (let w = 0; w < filterWidth; ++w) { + const wIn = wBeg + w * dilationWidth; + if (wIn >= 0 && wIn < inWidth) { + const val = $x[b][hIn][wIn][d] + $filter[h][w][d]; + if (val > curVal) { + curVal = val; + hMax = h; + wMax = w; + } + } + } + } + } + gradients8[hMax][wMax][d] += $dy[b][hOut][wOut][d]; + } + } + } + } + const dataId = cpuBackend.write(util_exports.toTypedArray(gradients8, x.dtype), filter.shape, filter.dtype); + return {dataId, shape: filter.shape, dtype: filter.dtype}; + } + }; + + // node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Dilation2DBackpropInput.js + /** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const dilation2dBackpropInputConfig = { + kernelName: Dilation2DBackpropInput, + backendName: "cpu", + kernelFunc: ({inputs, backend: backend2, attrs}) => { + const {x, filter, dy} = inputs; + const {strides, pad: pad8, dilations} = attrs; + const cpuBackend = backend2; + const $x = util_exports.toNestedArray(x.shape, cpuBackend.data.get(x.dataId).values); + const $filter = util_exports.toNestedArray(filter.shape, cpuBackend.data.get(filter.dataId).values); + const {batchSize, inHeight, inWidth, inChannels, outHeight, outWidth, padInfo, strideHeight, strideWidth, filterHeight, filterWidth, dilationHeight, dilationWidth, outShape} = backend_util_exports.computeDilation2DInfo(x.shape, filter.shape, strides, pad8, "NHWC", dilations); + util_exports.assert(dy.rank === outShape.length, () => `Error in ${Dilation2DBackpropInput}, dy must have the same rank as output ${outShape.length}, but got ${dy.rank}`); + const $dy = util_exports.toNestedArray(outShape, cpuBackend.data.get(dy.dataId).values); + const gradients8 = util_exports.makeZerosNestedTypedArray(x.shape, x.dtype); + for (let b = 0; b < batchSize; ++b) { + for (let hOut = 0; hOut < outHeight; ++hOut) { + const hBeg = hOut * strideHeight - padInfo.top; + for (let wOut = 0; wOut < outWidth; ++wOut) { + const wBeg = wOut * strideWidth - padInfo.left; + for (let d = 0; d < inChannels; ++d) { + let curVal = Number.MIN_SAFE_INTEGER; + let hInMax = hBeg < 0 ? 0 : hBeg; + let wInMax = wBeg < 0 ? 0 : wBeg; + for (let h = 0; h < filterHeight; ++h) { + const hIn = hBeg + h * dilationHeight; + if (hIn >= 0 && hIn < inHeight) { + for (let w = 0; w < filterWidth; ++w) { + const wIn = wBeg + w * dilationWidth; + if (wIn >= 0 && wIn < inWidth) { + const val = $x[b][hIn][wIn][d] + $filter[h][w][d]; + if (val > curVal) { + curVal = val; + hInMax = hIn; + wInMax = wIn; + } + } + } + } + } + gradients8[b][hInMax][wInMax][d] += $dy[b][hOut][wOut][d]; + } + } + } + } + const dataId = cpuBackend.write(util_exports.toTypedArray(gradients8, x.dtype), x.shape, x.dtype); + return {dataId, shape: x.shape, dtype: x.dtype}; + } + }; + + // node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/kernel_utils.js + /** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + function createBinaryKernelConfig(name, op2) { + return { + kernelName: name, + backendName: "cpu", + kernelFunc: ({inputs, backend: backend2}) => { + const {a, b} = inputs; + const cpuBackend = backend2; + assertNotComplex([a, b], name); + const aVals = cpuBackend.data.get(a.dataId).values; + const bVals = cpuBackend.data.get(b.dataId).values; + const [resultData, resultShape] = op2(a.shape, b.shape, aVals, bVals, a.dtype); + const dataId = cpuBackend.write(resultData, resultShape, a.dtype); + return {dataId, shape: resultShape, dtype: a.dtype}; + } + }; + } + function createBinaryKernelImpl(op2) { + return (aShape, bShape, aVals, bVals, dtype) => { + const newShape = backend_util_exports.assertAndGetBroadcastShape(aShape, bShape); + const resultRank = newShape.length; + const resultStrides = util_exports.computeStrides(newShape); + const resultSize = util_exports.sizeFromShape(newShape); + const result = util_exports.getTypedArrayFromDType(dtype, resultSize); + const aRank = aShape.length; + const bRank = bShape.length; + const aStrides = util_exports.computeStrides(aShape); + const bStrides = util_exports.computeStrides(bShape); + const aBroadcastDims = backend_util_exports.getBroadcastDims(aShape, newShape); + const bBroadcastDims = backend_util_exports.getBroadcastDims(bShape, newShape); + if (aBroadcastDims.length + bBroadcastDims.length === 0) { + for (let i = 0; i < result.length; ++i) { + result[i] = op2(aVals[i % aVals.length], bVals[i % bVals.length]); + } + } else { + for (let i = 0; i < result.length; ++i) { + const loc = util_exports.indexToLoc(i, resultRank, resultStrides); + const aLoc = loc.slice(-aRank); + aBroadcastDims.forEach((d) => aLoc[d] = 0); + const aIndex = util_exports.locToIndex(aLoc, aRank, aStrides); + const bLoc = loc.slice(-bRank); + bBroadcastDims.forEach((d) => bLoc[d] = 0); + const bIndex = util_exports.locToIndex(bLoc, bRank, bStrides); + result[i] = op2(aVals[aIndex], bVals[bIndex]); + } + } + return [result, newShape]; + }; + } + + // node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Div_impl.js + /** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const divImpl = createBinaryKernelImpl((a, b) => a / b); + + // node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Div.js + /** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const divConfig = createBinaryKernelConfig(Div, divImpl); + + // node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/FlipLeftRight.js + /** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const flipLeftRightConfig = { + kernelName: FlipLeftRight, + backendName: "cpu", + kernelFunc: ({inputs, attrs, backend: backend2}) => { + const {image: image3} = inputs; + const cpuBackend = backend2; + const output = util_exports.getTypedArrayFromDType(image3.dtype, util_exports.sizeFromShape(image3.shape)); + const [batch, imageHeight, imageWidth, numChannels] = image3.shape; + const imageVals = cpuBackend.data.get(image3.dataId).values; + for (let batchIdx = 0; batchIdx < batch; batchIdx++) { + const batchOffset = batchIdx * imageWidth * imageHeight * numChannels; + for (let row = 0; row < imageHeight; row++) { + const rowOffset = row * (imageWidth * numChannels); + for (let col = 0; col < imageWidth; col++) { + const colOffset = col * numChannels; + for (let channel = 0; channel < numChannels; channel++) { + const coords2 = [batch, row, col, channel]; + const x = coords2[2]; + const coordX = Math.round(imageWidth - x); + const outIdx = batchOffset + rowOffset + colOffset + channel; + let outputValue = imageVals[outIdx]; + if (coordX >= 0 && coordX < imageWidth) { + const rotatedColOffset = coordX * numChannels; + const imageIdx = batchOffset + rowOffset + rotatedColOffset + channel; + outputValue = imageVals[imageIdx]; + } + output[outIdx] = outputValue; + } + } + } + } + const dataId = cpuBackend.write(output, image3.shape, image3.dtype); + return {dataId, shape: image3.shape, dtype: image3.dtype}; + } + }; + + // node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Max.js + /** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const maxConfig = { + kernelName: Max, + backendName: "cpu", + kernelFunc: ({inputs, attrs, backend: backend2}) => { + const {x} = inputs; + const {reductionIndices, keepDims} = attrs; + const cpuBackend = backend2; + let xShape = x.shape; + const xRank = xShape.length; + const origAxes = util_exports.parseAxisParam(reductionIndices, xShape); + let axes = origAxes; + const permutedAxes = backend_util_exports.getAxesPermutation(axes, xRank); + let xVals = cpuBackend.data.get(x.dataId).values; + if (permutedAxes != null) { + const newShape = new Array(xRank); + for (let i = 0; i < newShape.length; i++) { + newShape[i] = xShape[permutedAxes[i]]; + } + xVals = transposeImpl(xVals, xShape, x.dtype, permutedAxes, newShape); + axes = backend_util_exports.getInnerMostAxes(axes.length, xRank); + xShape = newShape; + } + assertNotComplex(x, "max"); + backend_util_exports.assertAxesAreInnerMostDims("max", axes, xRank); + const [maxOutShape, reduceShape] = backend_util_exports.computeOutAndReduceShapes(xShape, axes); + const reduceSize = util_exports.sizeFromShape(reduceShape); + const result = maxImpl(xVals, reduceSize, maxOutShape, x.dtype); + const dataId = cpuBackend.write(result, maxOutShape, x.dtype); + let outShape = maxOutShape; + if (keepDims) { + const newShape = backend_util_exports.expandShapeToKeepDim(maxOutShape, origAxes); + outShape = newShape; + } + return {dataId, shape: outShape, dtype: x.dtype}; + } + }; + + // node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPoolWithArgmax_impl.js + /** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + function maxPoolWithArgmaxImpl(xValues, xShape, dtype, includeBatchInIndex, convInfo) { + const strides = util_exports.computeStrides(xShape); + const maxPools = pool3(xValues, xShape, dtype, strides, convInfo, "max"); + const maxPositions = maxPoolPositions(xValues, xShape, dtype, convInfo, true, includeBatchInIndex); + return [maxPools.values, maxPositions.values]; + } + + // node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPoolWithArgmax.js + /** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const maxPoolWithArgmaxConfig = { + kernelName: MaxPoolWithArgmax, + backendName: "cpu", + kernelFunc: ({inputs, attrs, backend: backend2}) => { + const {x} = inputs; + const {filterSize, strides, pad: pad8, includeBatchInIndex} = attrs; + const cpuBackend = backend2; + assertNotComplex(x, "MaxPoolWithArgmax"); + const values = cpuBackend.data.get(x.dataId).values; + const convInfo = backend_util_exports.computePool2DInfo(x.shape, filterSize, strides, [1, 1], pad8); + const [pooled, indexes] = maxPoolWithArgmaxImpl(values, x.shape, x.dtype, includeBatchInIndex, convInfo); + const pooledDataId = cpuBackend.write(pooled, convInfo.outShape, x.dtype); + const indexesDataId = cpuBackend.write(indexes, convInfo.outShape, x.dtype); + return [ + {dataId: pooledDataId, shape: convInfo.outShape, dtype: x.dtype}, + {dataId: indexesDataId, shape: convInfo.outShape, dtype: "int32"} + ]; + } + }; + + // node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/NonMaxSuppressionV4.js + /** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const nonMaxSuppressionV4Impl2 = kernel_impls_exports.nonMaxSuppressionV4Impl; + const nonMaxSuppressionV4Config = { + kernelName: NonMaxSuppressionV4, + backendName: "cpu", + kernelFunc: ({inputs, backend: backend2, attrs}) => { + const {boxes, scores} = inputs; + const {maxOutputSize, iouThreshold, scoreThreshold, padToMaxOutputSize} = attrs; + const cpuBackend = backend2; + assertNotComplex(boxes, "NonMaxSuppressionPadded"); + const boxesVals = cpuBackend.data.get(boxes.dataId).values; + const scoresVals = cpuBackend.data.get(scores.dataId).values; + const {selectedIndices, validOutputs} = nonMaxSuppressionV4Impl2(boxesVals, scoresVals, maxOutputSize, iouThreshold, scoreThreshold, padToMaxOutputSize); + return [selectedIndices, validOutputs]; + } + }; + + // node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/NonMaxSuppressionV5.js + /** + * @license + * Copyright 2019 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const nonMaxSuppressionV5Impl2 = kernel_impls_exports.nonMaxSuppressionV5Impl; + const nonMaxSuppressionV5Config = { + kernelName: NonMaxSuppressionV5, + backendName: "cpu", + kernelFunc: ({inputs, backend: backend2, attrs}) => { + const {boxes, scores} = inputs; + const {maxOutputSize, iouThreshold, scoreThreshold, softNmsSigma} = attrs; + const cpuBackend = backend2; + assertNotComplex(boxes, "NonMaxSuppressionWithScore"); + const boxesVals = cpuBackend.data.get(boxes.dataId).values; + const scoresVals = cpuBackend.data.get(scores.dataId).values; + const maxOutputSizeVal = maxOutputSize; + const iouThresholdVal = iouThreshold; + const scoreThresholdVal = scoreThreshold; + const softNmsSigmaVal = softNmsSigma; + const {selectedIndices, selectedScores} = nonMaxSuppressionV5Impl2(boxesVals, scoresVals, maxOutputSizeVal, iouThresholdVal, scoreThresholdVal, softNmsSigmaVal); + return [selectedIndices, selectedScores]; + } + }; + + // node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/RotateWithOffset.js + /** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const rotateWithOffsetConfig = { + kernelName: RotateWithOffset, + backendName: "cpu", + kernelFunc: ({inputs, attrs, backend: backend2}) => { + const {image: image3} = inputs; + const {radians, fillValue, center} = attrs; + const cpuBackend = backend2; + const output = util_exports.getTypedArrayFromDType(image3.dtype, util_exports.sizeFromShape(image3.shape)); + const [batch, imageHeight, imageWidth, numChannels] = image3.shape; + const [centerX, centerY] = backend_util_exports.getImageCenter(center, imageHeight, imageWidth); + const fullOpacityValue = 255; + const sinFactor = Math.sin(radians); + const cosFactor = Math.cos(radians); + const imageVals = cpuBackend.data.get(image3.dataId).values; + for (let batchIdx = 0; batchIdx < batch; batchIdx++) { + const batchOffset = batchIdx * imageWidth * imageHeight * numChannels; + for (let row = 0; row < imageHeight; row++) { + const rowOffset = row * (imageWidth * numChannels); + for (let col = 0; col < imageWidth; col++) { + const colOffset = col * numChannels; + for (let channel = 0; channel < numChannels; channel++) { + const coords2 = [batch, row, col, channel]; + const x = coords2[2]; + const y = coords2[1]; + let coordX = (x - centerX) * cosFactor - (y - centerY) * sinFactor; + let coordY = (x - centerX) * sinFactor + (y - centerY) * cosFactor; + coordX = Math.round(coordX + centerX); + coordY = Math.round(coordY + centerY); + let outputValue = fillValue; + if (typeof fillValue !== "number") { + if (channel === 3) { + outputValue = fullOpacityValue; + } else { + outputValue = fillValue[channel]; + } + } + if (coordX >= 0 && coordX < imageWidth && coordY >= 0 && coordY < imageHeight) { + const rotatedRowOffset = coordY * (imageWidth * numChannels); + const rotatedColOffset = coordX * numChannels; + const imageIdx = batchOffset + rotatedRowOffset + rotatedColOffset + channel; + outputValue = imageVals[imageIdx]; + } + const outIdx = batchOffset + rowOffset + colOffset + channel; + output[outIdx] = outputValue; + } + } + } + } + const dataId = cpuBackend.write(output, image3.shape, image3.dtype); + return {dataId, shape: image3.shape, dtype: image3.dtype}; + } + }; + + // node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Square.js + /** + * @license + * Copyright 2019 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const squareConfig = { + kernelName: Square, + backendName: "cpu", + kernelFunc: ({inputs, backend: backend2}) => { + const {x} = inputs; + const cpuBackend = backend2; + assertNotComplex(x, "square"); + const values = cpuBackend.data.get(x.dataId).values; + const newValues = new Float32Array(values.length); + for (let i = 0; i < values.length; ++i) { + const value = values[i]; + newValues[i] = value * value; + } + const dataId = cpuBackend.write(newValues, x.shape, x.dtype); + return {dataId, shape: x.shape, dtype: x.dtype}; + } + }; + + // node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SquaredDifference.js + /** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const squaredDifferenceImpl = createBinaryKernelImpl((aVal, bVal) => { + const diff = aVal - bVal; + return diff * diff; + }); + const squaredDifferenceConfig = createBinaryKernelConfig(SquaredDifference, squaredDifferenceImpl); + + // node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Transpose.js + /** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const transposeConfig = { + kernelName: Transpose, + backendName: "cpu", + kernelFunc: ({inputs, attrs, backend: backend2}) => { + const {x} = inputs; + const {perm} = attrs; + const cpuBackend = backend2; + assertNotComplex(x, "transpose"); + const xRank = x.shape.length; + const newShape = new Array(xRank); + for (let i = 0; i < newShape.length; i++) { + newShape[i] = x.shape[perm[i]]; + } + const values = cpuBackend.data.get(x.dataId).values; + const result = transposeImpl(values, x.shape, x.dtype, perm, newShape); + const dataId = cpuBackend.write(result, newShape, x.dtype); + return {dataId, shape: newShape, dtype: x.dtype}; + } + }; + + // node_modules/@tensorflow/tfjs-backend-cpu/dist/register_all_kernels.js + /** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const kernelConfigs = [ + dilation2dConfig, + dilation2dBackpropInputConfig, + dilation2dBackpropFilterConfig, + divConfig, + flipLeftRightConfig, + maxPoolWithArgmaxConfig, + maxConfig, + nonMaxSuppressionV4Config, + nonMaxSuppressionV5Config, + rotateWithOffsetConfig, + squareConfig, + squaredDifferenceConfig, + transposeConfig + ]; + for (const kernelConfig of kernelConfigs) { + registerKernel(kernelConfig); + } + + // node_modules/@tensorflow/tfjs-backend-cpu/dist/index.js + /** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/canvas_util.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const contexts = {}; + const WEBGL_ATTRIBUTES = { + alpha: false, + antialias: false, + premultipliedAlpha: false, + preserveDrawingBuffer: false, + depth: false, + stencil: false, + failIfMajorPerformanceCaveat: true + }; + function setWebGLContext(webGLVersion, gl) { + contexts[webGLVersion] = gl; + } + function getWebGLContext(webGLVersion) { + if (!(webGLVersion in contexts)) { + contexts[webGLVersion] = getWebGLRenderingContext(webGLVersion); + } + const gl = contexts[webGLVersion]; + if (gl.isContextLost()) { + delete contexts[webGLVersion]; + return getWebGLContext(webGLVersion); + } + gl.disable(gl.DEPTH_TEST); + gl.disable(gl.STENCIL_TEST); + gl.disable(gl.BLEND); + gl.disable(gl.DITHER); + gl.disable(gl.POLYGON_OFFSET_FILL); + gl.disable(gl.SAMPLE_COVERAGE); + gl.enable(gl.SCISSOR_TEST); + gl.enable(gl.CULL_FACE); + gl.cullFace(gl.BACK); + return contexts[webGLVersion]; + } + function createCanvas(webGLVersion) { + if (typeof OffscreenCanvas !== "undefined" && webGLVersion === 2) { + return new OffscreenCanvas(300, 150); + } else if (typeof document !== "undefined") { + return document.createElement("canvas"); + } else { + throw new Error("Cannot create a canvas in this context"); + } + } + function getWebGLRenderingContext(webGLVersion) { + if (webGLVersion !== 1 && webGLVersion !== 2) { + throw new Error("Cannot get WebGL rendering context, WebGL is disabled."); + } + const canvas = createCanvas(webGLVersion); + canvas.addEventListener("webglcontextlost", (ev) => { + ev.preventDefault(); + delete contexts[webGLVersion]; + }, false); + if (webGLVersion === 1) { + return canvas.getContext("webgl", WEBGL_ATTRIBUTES) || canvas.getContext("experimental-webgl", WEBGL_ATTRIBUTES); + } + return canvas.getContext("webgl2", WEBGL_ATTRIBUTES); + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/tex_util.js + /** + * @license + * Copyright 2017 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + var PackingScheme; + (function(PackingScheme2) { + PackingScheme2[PackingScheme2["DENSE"] = 0] = "DENSE"; + PackingScheme2[PackingScheme2["SHARED_BATCH"] = 1] = "SHARED_BATCH"; + })(PackingScheme || (PackingScheme = {})); + var TextureUsage; + (function(TextureUsage2) { + TextureUsage2[TextureUsage2["RENDER"] = 0] = "RENDER"; + TextureUsage2[TextureUsage2["UPLOAD"] = 1] = "UPLOAD"; + TextureUsage2[TextureUsage2["PIXELS"] = 2] = "PIXELS"; + TextureUsage2[TextureUsage2["DOWNLOAD"] = 3] = "DOWNLOAD"; + })(TextureUsage || (TextureUsage = {})); + var PhysicalTextureType; + (function(PhysicalTextureType2) { + PhysicalTextureType2[PhysicalTextureType2["UNPACKED_FLOAT16"] = 0] = "UNPACKED_FLOAT16"; + PhysicalTextureType2[PhysicalTextureType2["UNPACKED_FLOAT32"] = 1] = "UNPACKED_FLOAT32"; + PhysicalTextureType2[PhysicalTextureType2["PACKED_4X1_UNSIGNED_BYTE"] = 2] = "PACKED_4X1_UNSIGNED_BYTE"; + PhysicalTextureType2[PhysicalTextureType2["PACKED_2X2_FLOAT32"] = 3] = "PACKED_2X2_FLOAT32"; + PhysicalTextureType2[PhysicalTextureType2["PACKED_2X2_FLOAT16"] = 4] = "PACKED_2X2_FLOAT16"; + })(PhysicalTextureType || (PhysicalTextureType = {})); + function getUnpackedMatrixTextureShapeWidthHeight(rows, columns) { + return [columns, rows]; + } + function getUnpackedArraySizeFromMatrixSize(matrixSize, channelsPerTexture) { + return matrixSize * channelsPerTexture; + } + function getDenseTexShape(shape) { + const size = util_exports.sizeFromShape(shape); + const texelsNeeded = Math.ceil(size / 4); + return util_exports.sizeToSquarishShape(texelsNeeded); + } + function getPackedMatrixTextureShapeWidthHeight(rows, columns) { + return [ + Math.max(1, Math.ceil(columns / 2)), + Math.max(1, Math.ceil(rows / 2)) + ]; + } + function getPackedRGBAArraySizeFromMatrixShape(rows, columns) { + const [w, h] = getPackedMatrixTextureShapeWidthHeight(rows, columns); + return w * h * 4; + } + function getTextureConfig(gl, textureHalfFloatExtension) { + const glany = gl; + let internalFormatFloat; + let internalFormatHalfFloat; + let internalFormatPackedHalfFloat; + let internalFormatPackedFloat; + let textureFormatFloat; + let downloadTextureFormat; + let downloadUnpackNumChannels; + let defaultNumChannels; + let textureTypeHalfFloat; + let textureTypeFloat; + if (env().getNumber("WEBGL_VERSION") === 2) { + internalFormatFloat = glany.R32F; + internalFormatHalfFloat = glany.R16F; + internalFormatPackedHalfFloat = glany.RGBA16F; + internalFormatPackedFloat = glany.RGBA32F; + textureFormatFloat = glany.RED; + downloadUnpackNumChannels = 4; + defaultNumChannels = 1; + textureTypeHalfFloat = glany.HALF_FLOAT; + textureTypeFloat = glany.FLOAT; + } else { + internalFormatFloat = gl.RGBA; + internalFormatHalfFloat = gl.RGBA; + internalFormatPackedHalfFloat = gl.RGBA; + internalFormatPackedFloat = glany.RGBA; + textureFormatFloat = gl.RGBA; + downloadUnpackNumChannels = 4; + defaultNumChannels = 4; + textureTypeHalfFloat = textureHalfFloatExtension != null ? textureHalfFloatExtension.HALF_FLOAT_OES : null; + textureTypeFloat = gl.FLOAT; + } + downloadTextureFormat = gl.RGBA; + return { + internalFormatFloat, + internalFormatHalfFloat, + internalFormatPackedHalfFloat, + internalFormatPackedFloat, + textureFormatFloat, + downloadTextureFormat, + downloadUnpackNumChannels, + defaultNumChannels, + textureTypeHalfFloat, + textureTypeFloat + }; + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/webgl_util.js + /** + * @license + * Copyright 2017 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + function callAndCheck(gl, func2) { + const returnValue = func2(); + if (env().getBool("DEBUG")) { + checkWebGLError(gl); + } + return returnValue; + } + function checkWebGLError(gl) { + const error = gl.getError(); + if (error !== gl.NO_ERROR) { + throw new Error("WebGL Error: " + getWebGLErrorMessage(gl, error)); + } + } + const MIN_FLOAT16 = 596e-10; + const MAX_FLOAT16 = 65504; + function canBeRepresented(num) { + if (env().getBool("WEBGL_RENDER_FLOAT32_ENABLED") || num === 0 || MIN_FLOAT16 < Math.abs(num) && Math.abs(num) < MAX_FLOAT16) { + return true; + } + return false; + } + function getWebGLErrorMessage(gl, status) { + switch (status) { + case gl.NO_ERROR: + return "NO_ERROR"; + case gl.INVALID_ENUM: + return "INVALID_ENUM"; + case gl.INVALID_VALUE: + return "INVALID_VALUE"; + case gl.INVALID_OPERATION: + return "INVALID_OPERATION"; + case gl.INVALID_FRAMEBUFFER_OPERATION: + return "INVALID_FRAMEBUFFER_OPERATION"; + case gl.OUT_OF_MEMORY: + return "OUT_OF_MEMORY"; + case gl.CONTEXT_LOST_WEBGL: + return "CONTEXT_LOST_WEBGL"; + default: + return `Unknown error code ${status}`; + } + } + function getExtensionOrThrow(gl, extensionName) { + return throwIfNull(gl, () => gl.getExtension(extensionName), 'Extension "' + extensionName + '" not supported on this browser.'); + } + function createVertexShader(gl, vertexShaderSource) { + const vertexShader = throwIfNull(gl, () => gl.createShader(gl.VERTEX_SHADER), "Unable to create vertex WebGLShader."); + callAndCheck(gl, () => gl.shaderSource(vertexShader, vertexShaderSource)); + callAndCheck(gl, () => gl.compileShader(vertexShader)); + if (gl.getShaderParameter(vertexShader, gl.COMPILE_STATUS) === false) { + console.log(gl.getShaderInfoLog(vertexShader)); + throw new Error("Failed to compile vertex shader."); + } + return vertexShader; + } + function createFragmentShader(gl, fragmentShaderSource) { + const fragmentShader = throwIfNull(gl, () => gl.createShader(gl.FRAGMENT_SHADER), "Unable to create fragment WebGLShader."); + callAndCheck(gl, () => gl.shaderSource(fragmentShader, fragmentShaderSource)); + callAndCheck(gl, () => gl.compileShader(fragmentShader)); + if (gl.getShaderParameter(fragmentShader, gl.COMPILE_STATUS) === false) { + logShaderSourceAndInfoLog(fragmentShaderSource, gl.getShaderInfoLog(fragmentShader)); + throw new Error("Failed to compile fragment shader."); + } + return fragmentShader; + } + const lineNumberRegex = /ERROR: [0-9]+:([0-9]+):/g; + function logShaderSourceAndInfoLog(shaderSource, shaderInfoLog) { + const lineNumberRegexResult = lineNumberRegex.exec(shaderInfoLog); + if (lineNumberRegexResult == null) { + console.log(`Couldn't parse line number in error: ${shaderInfoLog}`); + console.log(shaderSource); + return; + } + const lineNumber = +lineNumberRegexResult[1]; + const shaderLines = shaderSource.split("\n"); + const pad8 = shaderLines.length.toString().length + 2; + const linesWithLineNumbers = shaderLines.map((line, lineNumber2) => util_exports.rightPad((lineNumber2 + 1).toString(), pad8) + line); + let maxLineLength = 0; + for (let i = 0; i < linesWithLineNumbers.length; i++) { + maxLineLength = Math.max(linesWithLineNumbers[i].length, maxLineLength); + } + const beforeErrorLines = linesWithLineNumbers.slice(0, lineNumber - 1); + const errorLine = linesWithLineNumbers.slice(lineNumber - 1, lineNumber); + const afterErrorLines = linesWithLineNumbers.slice(lineNumber); + console.log(beforeErrorLines.join("\n")); + console.log(shaderInfoLog.split("\n")[0]); + console.log(`%c ${util_exports.rightPad(errorLine[0], maxLineLength)}`, "border:1px solid red; background-color:#e3d2d2; color:#a61717"); + console.log(afterErrorLines.join("\n")); + } + function createProgram(gl) { + return throwIfNull(gl, () => gl.createProgram(), "Unable to create WebGLProgram."); + } + function linkProgram(gl, program) { + callAndCheck(gl, () => gl.linkProgram(program)); + if (gl.getProgramParameter(program, gl.LINK_STATUS) === false) { + console.log(gl.getProgramInfoLog(program)); + throw new Error("Failed to link vertex and fragment shaders."); + } + } + function validateProgram(gl, program) { + callAndCheck(gl, () => gl.validateProgram(program)); + if (gl.getProgramParameter(program, gl.VALIDATE_STATUS) === false) { + console.log(gl.getProgramInfoLog(program)); + throw new Error("Shader program validation failed."); + } + } + function createStaticVertexBuffer(gl, data) { + const buffer10 = throwIfNull(gl, () => gl.createBuffer(), "Unable to create WebGLBuffer"); + callAndCheck(gl, () => gl.bindBuffer(gl.ARRAY_BUFFER, buffer10)); + callAndCheck(gl, () => gl.bufferData(gl.ARRAY_BUFFER, data, gl.STATIC_DRAW)); + return buffer10; + } + function createStaticIndexBuffer(gl, data) { + const buffer10 = throwIfNull(gl, () => gl.createBuffer(), "Unable to create WebGLBuffer"); + callAndCheck(gl, () => gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, buffer10)); + callAndCheck(gl, () => gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, data, gl.STATIC_DRAW)); + return buffer10; + } + function createTexture(gl) { + return throwIfNull(gl, () => gl.createTexture(), "Unable to create WebGLTexture."); + } + function validateTextureSize(width, height) { + const maxTextureSize = env().getNumber("WEBGL_MAX_TEXTURE_SIZE"); + if (width <= 0 || height <= 0) { + const requested = `[${width}x${height}]`; + throw new Error("Requested texture size " + requested + " is invalid."); + } + if (width > maxTextureSize || height > maxTextureSize) { + const requested = `[${width}x${height}]`; + const max8 = `[${maxTextureSize}x${maxTextureSize}]`; + throw new Error("Requested texture size " + requested + " greater than WebGL maximum on this browser / GPU " + max8 + "."); + } + } + function createFramebuffer(gl) { + return throwIfNull(gl, () => gl.createFramebuffer(), "Unable to create WebGLFramebuffer."); + } + function bindVertexBufferToProgramAttribute(gl, program, attribute, buffer10, arrayEntriesPerItem, itemStrideInBytes, itemOffsetInBytes) { + const loc = gl.getAttribLocation(program, attribute); + if (loc === -1) { + return false; + } + callAndCheck(gl, () => gl.bindBuffer(gl.ARRAY_BUFFER, buffer10)); + callAndCheck(gl, () => gl.vertexAttribPointer(loc, arrayEntriesPerItem, gl.FLOAT, false, itemStrideInBytes, itemOffsetInBytes)); + callAndCheck(gl, () => gl.enableVertexAttribArray(loc)); + return true; + } + function bindTextureUnit(gl, texture, textureUnit) { + validateTextureUnit(gl, textureUnit); + callAndCheck(gl, () => gl.activeTexture(gl.TEXTURE0 + textureUnit)); + callAndCheck(gl, () => gl.bindTexture(gl.TEXTURE_2D, texture)); + } + function getProgramUniformLocationOrThrow(gl, program, uniformName) { + return throwIfNull(gl, () => gl.getUniformLocation(program, uniformName), 'uniform "' + uniformName + '" not present in program.'); + } + function getProgramUniformLocation(gl, program, uniformName) { + return gl.getUniformLocation(program, uniformName); + } + function bindTextureToProgramUniformSampler(gl, texture, uniformSamplerLocation, textureUnit) { + callAndCheck(gl, () => bindTextureUnit(gl, texture, textureUnit)); + callAndCheck(gl, () => gl.uniform1i(uniformSamplerLocation, textureUnit)); + } + function bindColorTextureToFramebuffer(gl, texture, framebuffer) { + callAndCheck(gl, () => gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer)); + callAndCheck(gl, () => gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0)); + } + function unbindColorTextureFromFramebuffer(gl, framebuffer) { + callAndCheck(gl, () => gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer)); + callAndCheck(gl, () => gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, null, 0)); + } + function validateFramebuffer(gl) { + const status = gl.checkFramebufferStatus(gl.FRAMEBUFFER); + if (status !== gl.FRAMEBUFFER_COMPLETE) { + throw new Error("Error binding framebuffer: " + getFramebufferErrorMessage(gl, status)); + } + } + function getFramebufferErrorMessage(gl, status) { + switch (status) { + case gl.FRAMEBUFFER_INCOMPLETE_ATTACHMENT: + return "FRAMEBUFFER_INCOMPLETE_ATTACHMENT"; + case gl.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: + return "FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT"; + case gl.FRAMEBUFFER_INCOMPLETE_DIMENSIONS: + return "FRAMEBUFFER_INCOMPLETE_DIMENSIONS"; + case gl.FRAMEBUFFER_UNSUPPORTED: + return "FRAMEBUFFER_UNSUPPORTED"; + default: + return `unknown error ${status}`; + } + } + function throwIfNull(gl, returnTOrNull, failureMessage) { + const tOrNull = callAndCheck(gl, () => returnTOrNull()); + if (tOrNull == null) { + throw new Error(failureMessage); + } + return tOrNull; + } + function validateTextureUnit(gl, textureUnit) { + const maxTextureUnit = gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS - 1; + const glTextureUnit = textureUnit + gl.TEXTURE0; + if (glTextureUnit < gl.TEXTURE0 || glTextureUnit > maxTextureUnit) { + const textureUnitRange = `[gl.TEXTURE0, gl.TEXTURE${maxTextureUnit}]`; + throw new Error(`textureUnit must be in ${textureUnitRange}.`); + } + } + function getBatchDim(shape, dimsToSkip = 2) { + return util_exports.sizeFromShape(shape.slice(0, shape.length - dimsToSkip)); + } + function getRowsCols(shape) { + if (shape.length === 0) { + throw Error("Cannot get rows and columns of an empty shape array."); + } + return [ + shape.length > 1 ? shape[shape.length - 2] : 1, + shape[shape.length - 1] + ]; + } + function getShapeAs3D(shape) { + let shapeAs3D = [1, 1, 1]; + const isScalar = shape.length === 0 || shape.length === 1 && shape[0] === 1; + if (!isScalar) { + shapeAs3D = [getBatchDim(shape), ...getRowsCols(shape)]; + } + return shapeAs3D; + } + function getTextureShapeFromLogicalShape(logShape, isPacked = false) { + let maxTexSize = env().getNumber("WEBGL_MAX_TEXTURE_SIZE"); + if (isPacked) { + maxTexSize = maxTexSize * 2; + logShape = logShape.map((d, i) => i >= logShape.length - 2 ? util_exports.nearestLargerEven(logShape[i]) : logShape[i]); + if (logShape.length === 1) { + logShape = [2, logShape[0]]; + } + } + if (logShape.length !== 2) { + const squeezeResult = util_exports.squeezeShape(logShape); + logShape = squeezeResult.newShape; + } + let size = util_exports.sizeFromShape(logShape); + if (logShape.length <= 1 && size <= maxTexSize) { + return [1, size]; + } else if (logShape.length === 2 && logShape[0] <= maxTexSize && logShape[1] <= maxTexSize) { + return logShape; + } else if (logShape.length === 3 && logShape[0] * logShape[1] <= maxTexSize && logShape[2] <= maxTexSize) { + return [logShape[0] * logShape[1], logShape[2]]; + } else if (logShape.length === 3 && logShape[0] <= maxTexSize && logShape[1] * logShape[2] <= maxTexSize) { + return [logShape[0], logShape[1] * logShape[2]]; + } else if (logShape.length === 4 && logShape[0] * logShape[1] * logShape[2] <= maxTexSize && logShape[3] <= maxTexSize) { + return [logShape[0] * logShape[1] * logShape[2], logShape[3]]; + } else if (logShape.length === 4 && logShape[0] <= maxTexSize && logShape[1] * logShape[2] * logShape[3] <= maxTexSize) { + return [logShape[0], logShape[1] * logShape[2] * logShape[3]]; + } else { + if (isPacked) { + const batchDim = getBatchDim(logShape); + let rows = 2, cols = 2; + if (logShape.length) { + [rows, cols] = getRowsCols(logShape); + } + size = batchDim * (rows / 2) * (cols / 2); + return util_exports.sizeToSquarishShape(size).map((d) => d * 2); + } + return util_exports.sizeToSquarishShape(size); + } + } + function isEven(n) { + return n % 2 === 0; + } + function isReshapeFree(shape1, shape2) { + shape1 = shape1.slice(-2); + shape2 = shape2.slice(-2); + if (util_exports.arraysEqual(shape1, shape2)) { + return true; + } + if (!shape1.length || !shape2.length) { + return true; + } + if (shape1[0] === 0 || shape1[1] === 0 || shape2[0] === 0 || shape2[1] === 0) { + return true; + } + if (shape1.length !== shape2.length) { + const shape1Cols = shape1.slice(-1)[0]; + const shape2Cols = shape2.slice(-1)[0]; + if (shape1Cols === shape2Cols) { + return true; + } + if (isEven(shape1Cols) && isEven(shape2Cols) && (shape1[0] === 1 || shape2[0] === 1)) { + return true; + } + } + return shape1[1] === shape2[1] && isEven(shape1[0]) && isEven(shape2[0]); + } + let MAX_TEXTURE_SIZE; + let MAX_TEXTURES_IN_SHADER; + function getWebGLMaxTextureSize(webGLVersion) { + if (MAX_TEXTURE_SIZE == null) { + const gl = getWebGLContext(webGLVersion); + MAX_TEXTURE_SIZE = gl.getParameter(gl.MAX_TEXTURE_SIZE); + } + return MAX_TEXTURE_SIZE; + } + function getMaxTexturesInShader(webGLVersion) { + if (MAX_TEXTURES_IN_SHADER == null) { + const gl = getWebGLContext(webGLVersion); + MAX_TEXTURES_IN_SHADER = gl.getParameter(gl.MAX_TEXTURE_IMAGE_UNITS); + } + return Math.min(16, MAX_TEXTURES_IN_SHADER); + } + function getWebGLDisjointQueryTimerVersion(webGLVersion) { + if (webGLVersion === 0) { + return 0; + } + let queryTimerVersion; + const gl = getWebGLContext(webGLVersion); + if (hasExtension(gl, "EXT_disjoint_timer_query_webgl2") && webGLVersion === 2) { + queryTimerVersion = 2; + } else if (hasExtension(gl, "EXT_disjoint_timer_query")) { + queryTimerVersion = 1; + } else { + queryTimerVersion = 0; + } + return queryTimerVersion; + } + function hasExtension(gl, extensionName) { + const ext = gl.getExtension(extensionName); + return ext != null; + } + function isWebGLVersionEnabled(webGLVersion) { + try { + const gl = getWebGLContext(webGLVersion); + if (gl != null) { + return true; + } + } catch (e) { + return false; + } + return false; + } + function isCapableOfRenderingToFloatTexture(webGLVersion) { + if (webGLVersion === 0) { + return false; + } + const gl = getWebGLContext(webGLVersion); + if (webGLVersion === 1) { + if (!hasExtension(gl, "OES_texture_float")) { + return false; + } + } else { + if (!hasExtension(gl, "EXT_color_buffer_float")) { + return false; + } + } + const isFrameBufferComplete = createFloatTextureAndBindToFramebuffer(gl); + return isFrameBufferComplete; + } + function isDownloadFloatTextureEnabled(webGLVersion) { + if (webGLVersion === 0) { + return false; + } + const gl = getWebGLContext(webGLVersion); + if (webGLVersion === 1) { + if (!hasExtension(gl, "OES_texture_float")) { + return false; + } + if (!hasExtension(gl, "WEBGL_color_buffer_float")) { + return false; + } + } else { + if (hasExtension(gl, "EXT_color_buffer_float")) { + return createFloatTextureAndBindToFramebuffer(gl); + } + const COLOR_BUFFER_HALF_FLOAT = "EXT_color_buffer_half_float"; + if (hasExtension(gl, COLOR_BUFFER_HALF_FLOAT)) { + const textureHalfFloatExtension = gl.getExtension(COLOR_BUFFER_HALF_FLOAT); + return createHalfFloatTextureAndBindToFramebuffer(gl, textureHalfFloatExtension); + } + return false; + } + const isFrameBufferComplete = createFloatTextureAndBindToFramebuffer(gl); + return isFrameBufferComplete; + } + function createFloatTextureAndBindToFramebuffer(gl) { + const texConfig = getTextureConfig(gl); + const texture = gl.createTexture(); + gl.bindTexture(gl.TEXTURE_2D, texture); + const width = 1; + const height = 1; + gl.texImage2D(gl.TEXTURE_2D, 0, texConfig.internalFormatFloat, width, height, 0, texConfig.textureFormatFloat, texConfig.textureTypeFloat, null); + const frameBuffer = gl.createFramebuffer(); + gl.bindFramebuffer(gl.FRAMEBUFFER, frameBuffer); + gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0); + const isFrameBufferComplete = gl.checkFramebufferStatus(gl.FRAMEBUFFER) === gl.FRAMEBUFFER_COMPLETE; + gl.bindTexture(gl.TEXTURE_2D, null); + gl.bindFramebuffer(gl.FRAMEBUFFER, null); + gl.deleteTexture(texture); + gl.deleteFramebuffer(frameBuffer); + return isFrameBufferComplete; + } + function createHalfFloatTextureAndBindToFramebuffer(gl, textureHalfFloatExtension) { + const texConfig = getTextureConfig(gl, textureHalfFloatExtension); + const texture = gl.createTexture(); + gl.bindTexture(gl.TEXTURE_2D, texture); + const width = 1; + const height = 1; + gl.texImage2D(gl.TEXTURE_2D, 0, texConfig.internalFormatHalfFloat, width, height, 0, texConfig.textureFormatFloat, texConfig.textureTypeHalfFloat, null); + const frameBuffer = gl.createFramebuffer(); + gl.bindFramebuffer(gl.FRAMEBUFFER, frameBuffer); + gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0); + const isFrameBufferComplete = gl.checkFramebufferStatus(gl.FRAMEBUFFER) === gl.FRAMEBUFFER_COMPLETE; + gl.bindTexture(gl.TEXTURE_2D, null); + gl.bindFramebuffer(gl.FRAMEBUFFER, null); + gl.deleteTexture(texture); + gl.deleteFramebuffer(frameBuffer); + return isFrameBufferComplete; + } + function isWebGLFenceEnabled(webGLVersion) { + if (webGLVersion !== 2) { + return false; + } + const gl = getWebGLContext(webGLVersion); + const isEnabled = gl.fenceSync != null; + return isEnabled; + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/flags_webgl.js + /** + * @license + * Copyright 2019 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const ENV3 = env(); + ENV3.registerFlag("HAS_WEBGL", () => ENV3.getNumber("WEBGL_VERSION") > 0); + ENV3.registerFlag("WEBGL_VERSION", () => { + if (isWebGLVersionEnabled(2)) { + return 2; + } else if (isWebGLVersionEnabled(1)) { + return 1; + } + return 0; + }); + ENV3.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS", () => false); + ENV3.registerFlag("WEBGL_BUFFER_SUPPORTED", () => ENV3.get("WEBGL_VERSION") === 2); + ENV3.registerFlag("WEBGL_CPU_FORWARD", () => true); + ENV3.registerFlag("WEBGL_FORCE_F16_TEXTURES", () => false); + ENV3.registerFlag("WEBGL_PACK", () => ENV3.getBool("HAS_WEBGL")); + ENV3.registerFlag("WEBGL_PACK_NORMALIZATION", () => ENV3.getBool("WEBGL_PACK")); + ENV3.registerFlag("WEBGL_PACK_CLIP", () => ENV3.getBool("WEBGL_PACK")); + ENV3.registerFlag("WEBGL_PACK_DEPTHWISECONV", () => false); + ENV3.registerFlag("WEBGL_PACK_BINARY_OPERATIONS", () => ENV3.getBool("WEBGL_PACK")); + ENV3.registerFlag("WEBGL_PACK_UNARY_OPERATIONS", () => ENV3.getBool("WEBGL_PACK")); + ENV3.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS", () => ENV3.getBool("WEBGL_PACK")); + ENV3.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS", () => ENV3.getBool("WEBGL_PACK")); + ENV3.registerFlag("WEBGL_PACK_REDUCE", () => ENV3.getBool("WEBGL_PACK")); + ENV3.registerFlag("WEBGL_LAZILY_UNPACK", () => ENV3.getBool("WEBGL_PACK")); + ENV3.registerFlag("WEBGL_CONV_IM2COL", () => ENV3.getBool("WEBGL_PACK")); + ENV3.registerFlag("WEBGL_MAX_TEXTURE_SIZE", () => getWebGLMaxTextureSize(ENV3.getNumber("WEBGL_VERSION"))); + ENV3.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER", () => getMaxTexturesInShader(ENV3.getNumber("WEBGL_VERSION"))); + ENV3.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION", () => { + const webGLVersion = ENV3.getNumber("WEBGL_VERSION"); + if (webGLVersion === 0) { + return 0; + } + return getWebGLDisjointQueryTimerVersion(webGLVersion); + }); + ENV3.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE", () => ENV3.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION") > 0 && !device_util_exports.isMobile()); + ENV3.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE", () => isCapableOfRenderingToFloatTexture(ENV3.getNumber("WEBGL_VERSION"))); + ENV3.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED", () => { + return ENV3.getBool("WEBGL_FORCE_F16_TEXTURES") ? false : ENV3.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"); + }); + ENV3.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED", () => isDownloadFloatTextureEnabled(ENV3.getNumber("WEBGL_VERSION"))); + ENV3.registerFlag("WEBGL_FENCE_API_ENABLED", () => isWebGLFenceEnabled(ENV3.getNumber("WEBGL_VERSION"))); + ENV3.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM", () => { + const useUniforms = ENV3.getBool("WEBGL_RENDER_FLOAT32_ENABLED"); + return useUniforms ? 4 : 0; + }); + ENV3.registerFlag("WEBGL_DELETE_TEXTURE_THRESHOLD", () => { + return -1; + }, (threshold) => { + if (threshold < 0 && threshold !== -1) { + throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be -1 (indicating never delete) or at least 0, but got ${threshold}.`); + } + }); + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/addn_gpu.js + /** + * @license + * Copyright 2019 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class AddNProgram { + constructor(outputShape, shapes) { + this.outputShape = []; + this.outputShape = outputShape; + this.variableNames = shapes.map((_, i) => `T${i}`); + const snippets = []; + this.variableNames.forEach((variable3) => { + snippets.push(`float v${variable3} = get${variable3}AtOutCoords();`); + }); + const operation209 = this.variableNames.map((variable3) => { + return `v${variable3}`; + }).join(" + "); + this.userCode = ` + void main() { + ${snippets.join("\n ")} + + float result = ${operation209}; + setOutput(result); + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/addn_packed_gpu.js + /** + * @license + * Copyright 2019 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class AddNPackedProgram { + constructor(outputShape, shapes) { + this.outputShape = []; + this.packedInputs = true; + this.packedOutput = true; + this.outputShape = outputShape; + this.variableNames = shapes.map((_, i) => `T${i}`); + const snippets = []; + this.variableNames.forEach((variable3) => { + snippets.push(`vec4 v${variable3} = get${variable3}AtOutCoords();`); + }); + const operation209 = this.variableNames.map((variable3) => { + return `v${variable3}`; + }).join(" + "); + this.userCode = ` + void main() { + ${snippets.join("\n ")} + + vec4 result = ${operation209}; + setOutput(result); + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/argminmax_gpu.js + /** + * @license + * Copyright 2017 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class ArgMinMaxProgram { + constructor(reduceInfo, op2, firstPass) { + this.variableNames = ["A"]; + const windowSize = reduceInfo.windowSize; + const batchSize = reduceInfo.batchSize; + const inSize = reduceInfo.inSize; + const outSize = Math.ceil(inSize / windowSize); + if (!firstPass) { + this.variableNames.push("bestIndicesA"); + } + this.outputShape = [batchSize, outSize]; + const compOp = op2 === "max" ? ">" : "<"; + const indexSnippet = firstPass ? "inOffset + i;" : "round(getBestIndicesA(batch, inOffset + i));"; + this.userCode = ` + void main() { + ivec2 coords = getOutputCoords(); + int batch = coords[0]; + int outIdx = coords[1]; + int inOffset = outIdx * ${windowSize}; + + int bestIndex = inOffset; + float bestValue = getA(batch, bestIndex); + + for (int i = 0; i < ${windowSize}; i++) { + int inIdx = ${indexSnippet}; + float candidate = getA(batch, inIdx); + if (candidate ${compOp} bestValue) { + bestValue = candidate; + bestIndex = inIdx; + } + } + setOutput(float(bestIndex)); + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/packing_util.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + function getVecChannels(name, rank) { + return ["x", "y", "z", "w", "u", "v"].slice(0, rank).map((d) => `${name}.${d}`); + } + function getChannels(name, rank) { + if (rank === 1) { + return [name]; + } + return getVecChannels(name, rank); + } + function getSourceCoords(rank, dims) { + if (rank === 1) { + return "rc"; + } + let coords2 = ""; + for (let i = 0; i < rank; i++) { + coords2 += dims[i]; + if (i < rank - 1) { + coords2 += ","; + } + } + return coords2; + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/glsl_version.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + function getGlslDifferences() { + let version17; + let attribute; + let varyingVs; + let varyingFs; + let texture2D; + let output; + let defineOutput; + let defineSpecialNaN; + let defineSpecialInf; + let defineRound; + if (env().getNumber("WEBGL_VERSION") === 2) { + version17 = "#version 300 es"; + attribute = "in"; + varyingVs = "out"; + varyingFs = "in"; + texture2D = "texture"; + output = "outputColor"; + defineOutput = "out vec4 outputColor;"; + defineSpecialNaN = ` + bool isnan_custom(float val) { + return (val > 0.0 || val < 0.0) ? false : val != 0.0; + } + + bvec4 isnan_custom(vec4 val) { + return bvec4(isnan_custom(val.x), + isnan_custom(val.y), isnan_custom(val.z), isnan_custom(val.w)); + } + + #define isnan(value) isnan_custom(value) + `; + defineSpecialInf = ``; + defineRound = ` + #define round(value) newRound(value) + int newRound(float value) { + return int(floor(value + 0.5)); + } + + ivec4 newRound(vec4 value) { + return ivec4(floor(value + vec4(0.5))); + } + `; + } else { + version17 = ""; + attribute = "attribute"; + varyingVs = "varying"; + varyingFs = "varying"; + texture2D = "texture2D"; + output = "gl_FragColor"; + defineOutput = ""; + defineSpecialNaN = ` + #define isnan(value) isnan_custom(value) + bool isnan_custom(float val) { + return (val > 0. || val < 1. || val == 0.) ? false : true; + } + bvec4 isnan_custom(vec4 val) { + return bvec4(isnan(val.x), isnan(val.y), isnan(val.z), isnan(val.w)); + } + `; + defineSpecialInf = ` + uniform float INFINITY; + + bool isinf(float val) { + return abs(val) == INFINITY; + } + bvec4 isinf(vec4 val) { + return equal(abs(val), vec4(INFINITY)); + } + `; + defineRound = ` + int round(float value) { + return int(floor(value + 0.5)); + } + + ivec4 round(vec4 value) { + return ivec4(floor(value + vec4(0.5))); + } + `; + } + return { + version: version17, + attribute, + varyingVs, + varyingFs, + texture2D, + output, + defineOutput, + defineSpecialNaN, + defineSpecialInf, + defineRound + }; + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/shader_compiler_util.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + function getLogicalCoordinatesFromFlatIndex(coords2, shape, index = "index") { + const strides = util_exports.computeStrides(shape); + return strides.map((stride, i) => { + const line1 = `int ${coords2[i]} = ${index} / ${stride}`; + const line2 = i === strides.length - 1 ? `int ${coords2[i + 1]} = ${index} - ${coords2[i]} * ${stride}` : `index -= ${coords2[i]} * ${stride}`; + return `${line1}; ${line2};`; + }).join(""); + } + function getFlatIndexFrom3D(shape) { + const strides = util_exports.computeStrides(shape).map((d) => d.toString()); + return ` + int getFlatIndex(ivec3 coords) { + return coords.x * ${strides[0]} + coords.y * ${strides[1]} + coords.z; + } +`; + } + const ENCODE_FLOAT_SNIPPET = ` + const float FLOAT_MAX = 1.70141184e38; + const float FLOAT_MIN = 1.17549435e-38; + + lowp vec4 encode_float(highp float v) { + if (isnan(v)) { + return vec4(255, 255, 255, 255); + } + + highp float av = abs(v); + + if(av < FLOAT_MIN) { + return vec4(0.0, 0.0, 0.0, 0.0); + } else if(v > FLOAT_MAX) { + return vec4(0.0, 0.0, 128.0, 127.0) / 255.0; + } else if(v < -FLOAT_MAX) { + return vec4(0.0, 0.0, 128.0, 255.0) / 255.0; + } + + highp vec4 c = vec4(0,0,0,0); + + highp float e = floor(log2(av)); + highp float m = exp2(fract(log2(av))) - 1.0; + + c[2] = floor(128.0 * m); + m -= c[2] / 128.0; + c[1] = floor(32768.0 * m); + m -= c[1] / 32768.0; + c[0] = floor(8388608.0 * m); + + highp float ebias = e + 127.0; + c[3] = floor(ebias / 2.0); + ebias -= c[3] * 2.0; + c[2] += floor(ebias) * 128.0; + + c[3] += 128.0 * step(0.0, -v); + + return c / 255.0; + } +`; + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/shader_compiler.js + /** + * @license + * Copyright 2017 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const {getBroadcastDims: getBroadcastDims2} = backend_util_exports; + function makeShader(inputsInfo, outputShape, userCode, usesPackedTextures) { + const prefixSnippets = []; + inputsInfo.forEach((x) => { + const size = util_exports.sizeFromShape(x.shapeInfo.logicalShape); + if (x.shapeInfo.isUniform) { + prefixSnippets.push(`uniform float ${x.name}${size > 1 ? `[${size}]` : ""};`); + } else { + prefixSnippets.push(`uniform sampler2D ${x.name};`); + prefixSnippets.push(`uniform int offset${x.name};`); + } + }); + const inputPrefixSnippet = prefixSnippets.join("\n"); + const inputSamplingSnippet = inputsInfo.map((x) => getInputSamplingSnippet(x, outputShape, usesPackedTextures)).join("\n"); + const outTexShape = outputShape.texShape; + const glsl = getGlslDifferences(); + const floatTextureSampleSnippet = getFloatTextureSampleSnippet(glsl); + let outputSamplingSnippet; + let floatTextureSetOutputSnippet; + let shaderPrefix = getShaderPrefix(glsl); + if (outputShape.isPacked) { + outputSamplingSnippet = getPackedOutputSamplingSnippet(outputShape.logicalShape, outTexShape); + floatTextureSetOutputSnippet = getFloatTextureSetRGBASnippet(glsl); + } else { + outputSamplingSnippet = getOutputSamplingSnippet(outputShape.logicalShape, outTexShape); + floatTextureSetOutputSnippet = getFloatTextureSetRSnippet(glsl); + } + if (usesPackedTextures) { + shaderPrefix += SHADER_PACKED_PREFIX; + } + const source = [ + shaderPrefix, + floatTextureSampleSnippet, + floatTextureSetOutputSnippet, + inputPrefixSnippet, + outputSamplingSnippet, + inputSamplingSnippet, + userCode + ].join("\n"); + return source; + } + function getSamplerFromInInfo(inInfo) { + const shape = inInfo.shapeInfo.logicalShape; + switch (shape.length) { + case 0: + return getSamplerScalar(inInfo); + case 1: + return getSampler1D(inInfo); + case 2: + return getSampler2D(inInfo); + case 3: + return getSampler3D(inInfo); + case 4: + return getSampler4D(inInfo); + case 5: + return getSampler5D(inInfo); + case 6: + return getSampler6D(inInfo); + default: + throw new Error(`${shape.length}-D input sampling is not yet supported`); + } + } + function getPackedSamplerFromInInfo(inInfo) { + const shape = inInfo.shapeInfo.logicalShape; + switch (shape.length) { + case 0: + return getPackedSamplerScalar(inInfo); + case 1: + return getPackedSampler1D(inInfo); + case 2: + return getPackedSampler2D(inInfo); + case 3: + return getPackedSampler3D(inInfo); + default: + return getPackedSamplerND(inInfo); + } + } + function getInputSamplingSnippet(inInfo, outShapeInfo, usesPackedTextures = false) { + let res = ""; + if (usesPackedTextures) { + res += getPackedSamplerFromInInfo(inInfo); + } else { + res += getSamplerFromInInfo(inInfo); + } + const inShape = inInfo.shapeInfo.logicalShape; + const outShape = outShapeInfo.logicalShape; + if (inShape.length <= outShape.length) { + if (usesPackedTextures) { + res += getPackedSamplerAtOutputCoords(inInfo, outShapeInfo); + } else { + res += getSamplerAtOutputCoords(inInfo, outShapeInfo); + } + } + return res; + } + function getPackedOutputSamplingSnippet(outShape, outTexShape) { + switch (outShape.length) { + case 0: + return getOutputScalarCoords(); + case 1: + return getOutputPacked1DCoords(outShape, outTexShape); + case 2: + return getOutputPacked2DCoords(outShape, outTexShape); + case 3: + return getOutputPacked3DCoords(outShape, outTexShape); + default: + return getOutputPackedNDCoords(outShape, outTexShape); + } + } + function getOutputSamplingSnippet(outShape, outTexShape) { + switch (outShape.length) { + case 0: + return getOutputScalarCoords(); + case 1: + return getOutput1DCoords(outShape, outTexShape); + case 2: + return getOutput2DCoords(outShape, outTexShape); + case 3: + return getOutput3DCoords(outShape, outTexShape); + case 4: + return getOutput4DCoords(outShape, outTexShape); + case 5: + return getOutput5DCoords(outShape, outTexShape); + case 6: + return getOutput6DCoords(outShape, outTexShape); + default: + throw new Error(`${outShape.length}-D output sampling is not yet supported`); + } + } + function getFloatTextureSampleSnippet(glsl) { + return ` + float sampleTexture(sampler2D textureSampler, vec2 uv) { + return ${glsl.texture2D}(textureSampler, uv).r; + } + `; + } + function getFloatTextureSetRSnippet(glsl) { + return ` + void setOutput(float val) { + ${glsl.output} = vec4(val, 0, 0, 0); + } + `; + } + function getFloatTextureSetRGBASnippet(glsl) { + return ` + void setOutput(vec4 val) { + ${glsl.output} = val; + } + `; + } + function getShaderPrefix(glsl) { + const SHADER_PREFIX = `${glsl.version} + precision highp float; + precision highp int; + precision highp sampler2D; + ${glsl.varyingFs} vec2 resultUV; + ${glsl.defineOutput} + const vec2 halfCR = vec2(0.5, 0.5); + + struct ivec5 + { + int x; + int y; + int z; + int w; + int u; + }; + + struct ivec6 + { + int x; + int y; + int z; + int w; + int u; + int v; + }; + + uniform float NAN; + ${glsl.defineSpecialNaN} + ${glsl.defineSpecialInf} + ${glsl.defineRound} + + int imod(int x, int y) { + return x - y * (x / y); + } + + int idiv(int a, int b, float sign) { + int res = a / b; + int mod = imod(a, b); + if (sign < 0. && mod != 0) { + res -= 1; + } + return res; + } + + //Based on the work of Dave Hoskins + //https://www.shadertoy.com/view/4djSRW + #define HASHSCALE1 443.8975 + float random(float seed){ + vec2 p = resultUV * seed; + vec3 p3 = fract(vec3(p.xyx) * HASHSCALE1); + p3 += dot(p3, p3.yzx + 19.19); + return fract((p3.x + p3.y) * p3.z); + } + + ${SAMPLE_1D_SNIPPET} + ${SAMPLE_2D_SNIPPET} + ${SAMPLE_3D_SNIPPET} + `; + return SHADER_PREFIX; + } + const SAMPLE_1D_SNIPPET = ` +vec2 uvFromFlat(int texNumR, int texNumC, int index) { + int texR = index / texNumC; + int texC = index - texR * texNumC; + return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); +} +vec2 packedUVfrom1D(int texNumR, int texNumC, int index) { + int texelIndex = index / 2; + int texR = texelIndex / texNumC; + int texC = texelIndex - texR * texNumC; + return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); +} +`; + const SAMPLE_2D_SNIPPET = ` +vec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR, + int texNumC, int row, int col) { + int texelIndex = (row / 2) * texelsInLogicalRow + (col / 2); + int texR = texelIndex / texNumC; + int texC = texelIndex - texR * texNumC; + return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); +} +`; + const SAMPLE_3D_SNIPPET = ` +vec2 packedUVfrom3D(int texNumR, int texNumC, + int texelsInBatch, int texelsInLogicalRow, int b, + int row, int col) { + int index = b * texelsInBatch + (row / 2) * texelsInLogicalRow + (col / 2); + int texR = index / texNumC; + int texC = index - texR * texNumC; + return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); +} +`; + const SHADER_PACKED_PREFIX = ` + float getChannel(vec4 frag, vec2 innerDims) { + vec2 modCoord = mod(innerDims, 2.); + return modCoord.x == 0. ? + (modCoord.y == 0. ? frag.r : frag.g) : + (modCoord.y == 0. ? frag.b : frag.a); + } + float getChannel(vec4 frag, int dim) { + float modCoord = mod(float(dim), 2.); + return modCoord == 0. ? frag.r : frag.g; + } +`; + function getOutputScalarCoords() { + return ` + int getOutputCoords() { + return 0; + } + `; + } + function getOutputPacked1DCoords(shape, texShape) { + const packedTexShape = [Math.ceil(texShape[0] / 2), Math.ceil(texShape[1] / 2)]; + if (packedTexShape[0] === 1) { + return ` + int getOutputCoords() { + return 2 * int(resultUV.x * ${packedTexShape[1]}.0); + } + `; + } + if (packedTexShape[1] === 1) { + return ` + int getOutputCoords() { + return 2 * int(resultUV.y * ${packedTexShape[0]}.0); + } + `; + } + return ` + int getOutputCoords() { + ivec2 resTexRC = ivec2(resultUV.yx * + vec2(${packedTexShape[0]}, ${packedTexShape[1]})); + return 2 * (resTexRC.x * ${packedTexShape[1]} + resTexRC.y); + } + `; + } + function getOutput1DCoords(shape, texShape) { + if (texShape[0] === 1) { + return ` + int getOutputCoords() { + return int(resultUV.x * ${texShape[1]}.0); + } + `; + } + if (texShape[1] === 1) { + return ` + int getOutputCoords() { + return int(resultUV.y * ${texShape[0]}.0); + } + `; + } + return ` + int getOutputCoords() { + ivec2 resTexRC = ivec2(resultUV.yx * + vec2(${texShape[0]}, ${texShape[1]})); + return resTexRC.x * ${texShape[1]} + resTexRC.y; + } + `; + } + function getOutputPacked3DCoords(shape, texShape) { + const packedTexShape = [Math.ceil(texShape[0] / 2), Math.ceil(texShape[1] / 2)]; + const texelsInLogicalRow = Math.ceil(shape[2] / 2); + const texelsInBatch = texelsInLogicalRow * Math.ceil(shape[1] / 2); + return ` + ivec3 getOutputCoords() { + ivec2 resTexRC = ivec2(resultUV.yx * + vec2(${packedTexShape[0]}, ${packedTexShape[1]})); + int index = resTexRC.x * ${packedTexShape[1]} + resTexRC.y; + + int b = index / ${texelsInBatch}; + index -= b * ${texelsInBatch}; + + int r = 2 * (index / ${texelsInLogicalRow}); + int c = imod(index, ${texelsInLogicalRow}) * 2; + + return ivec3(b, r, c); + } + `; + } + function getOutput3DCoords(shape, texShape) { + const coordsFromIndexSnippet = getLogicalCoordinatesFromFlatIndex(["r", "c", "d"], shape); + return ` + ivec3 getOutputCoords() { + ivec2 resTexRC = ivec2(resultUV.yx * + vec2(${texShape[0]}, ${texShape[1]})); + int index = resTexRC.x * ${texShape[1]} + resTexRC.y; + ${coordsFromIndexSnippet} + return ivec3(r, c, d); + } + `; + } + function getOutputPackedNDCoords(shape, texShape) { + const packedTexShape = [Math.ceil(texShape[0] / 2), Math.ceil(texShape[1] / 2)]; + const texelsInLogicalRow = Math.ceil(shape[shape.length - 1] / 2); + const texelsInBatch = texelsInLogicalRow * Math.ceil(shape[shape.length - 2] / 2); + let texelsInBatchN = texelsInBatch; + let batches = ``; + let coords2 = "b, r, c"; + for (let b = 2; b < shape.length - 1; b++) { + texelsInBatchN *= shape[shape.length - b - 1]; + batches = ` + int b${b} = index / ${texelsInBatchN}; + index -= b${b} * ${texelsInBatchN}; + ` + batches; + coords2 = `b${b}, ` + coords2; + } + return ` + ivec${shape.length} getOutputCoords() { + ivec2 resTexRC = ivec2(resultUV.yx * + vec2(${packedTexShape[0]}, ${packedTexShape[1]})); + int index = resTexRC.x * ${packedTexShape[1]} + resTexRC.y; + + ${batches} + + int b = index / ${texelsInBatch}; + index -= b * ${texelsInBatch}; + + int r = 2 * (index / ${texelsInLogicalRow}); + int c = imod(index, ${texelsInLogicalRow}) * 2; + + return ivec${shape.length}(${coords2}); + } + `; + } + function getOutput4DCoords(shape, texShape) { + const coordsFromIndexSnippet = getLogicalCoordinatesFromFlatIndex(["r", "c", "d", "d2"], shape); + return ` + ivec4 getOutputCoords() { + ivec2 resTexRC = ivec2(resultUV.yx * + vec2(${texShape[0]}, ${texShape[1]})); + int index = resTexRC.x * ${texShape[1]} + resTexRC.y; + ${coordsFromIndexSnippet} + return ivec4(r, c, d, d2); + } + `; + } + function getOutput5DCoords(shape, texShape) { + const coordsFromIndexSnippet = getLogicalCoordinatesFromFlatIndex(["r", "c", "d", "d2", "d3"], shape); + return ` + ivec5 getOutputCoords() { + ivec2 resTexRC = ivec2(resultUV.yx * vec2(${texShape[0]}, + ${texShape[1]})); + + int index = resTexRC.x * ${texShape[1]} + resTexRC.y; + + ${coordsFromIndexSnippet} + + ivec5 outShape = ivec5(r, c, d, d2, d3); + return outShape; + } + `; + } + function getOutput6DCoords(shape, texShape) { + const coordsFromIndexSnippet = getLogicalCoordinatesFromFlatIndex(["r", "c", "d", "d2", "d3", "d4"], shape); + return ` + ivec6 getOutputCoords() { + ivec2 resTexRC = ivec2(resultUV.yx * + vec2(${texShape[0]}, ${texShape[1]})); + int index = resTexRC.x * ${texShape[1]} + resTexRC.y; + + ${coordsFromIndexSnippet} + + ivec6 result = ivec6(r, c, d, d2, d3, d4); + return result; + } + `; + } + function getOutputPacked2DCoords(shape, texShape) { + const packedTexShape = [Math.ceil(texShape[0] / 2), Math.ceil(texShape[1] / 2)]; + if (util_exports.arraysEqual(shape, texShape)) { + return ` + ivec2 getOutputCoords() { + return 2 * ivec2(resultUV.yx * vec2(${packedTexShape[0]}, ${packedTexShape[1]})); + } + `; + } + const texelsInLogicalRow = Math.ceil(shape[1] / 2); + return ` + ivec2 getOutputCoords() { + ivec2 resTexRC = ivec2(resultUV.yx * + vec2(${packedTexShape[0]}, ${packedTexShape[1]})); + + int index = resTexRC.x * ${packedTexShape[1]} + resTexRC.y; + int r = 2 * (index / ${texelsInLogicalRow}); + int c = imod(index, ${texelsInLogicalRow}) * 2; + + return ivec2(r, c); + } + `; + } + function getOutput2DCoords(shape, texShape) { + if (util_exports.arraysEqual(shape, texShape)) { + return ` + ivec2 getOutputCoords() { + return ivec2(resultUV.yx * vec2(${texShape[0]}, ${texShape[1]})); + } + `; + } + if (shape[1] === 1) { + return ` + ivec2 getOutputCoords() { + ivec2 resTexRC = ivec2(resultUV.yx * + vec2(${texShape[0]}, ${texShape[1]})); + int index = resTexRC.x * ${texShape[1]} + resTexRC.y; + return ivec2(index, 0); + } + `; + } + if (shape[0] === 1) { + return ` + ivec2 getOutputCoords() { + ivec2 resTexRC = ivec2(resultUV.yx * + vec2(${texShape[0]}, ${texShape[1]})); + int index = resTexRC.x * ${texShape[1]} + resTexRC.y; + return ivec2(0, index); + } + `; + } + return ` + ivec2 getOutputCoords() { + ivec2 resTexRC = ivec2(resultUV.yx * + vec2(${texShape[0]}, ${texShape[1]})); + int index = resTexRC.x * ${texShape[1]} + resTexRC.y; + int r = index / ${shape[1]}; + int c = index - r * ${shape[1]}; + return ivec2(r, c); + } + `; + } + function getFlatOffsetUniformName(texName) { + return `offset${texName}`; + } + function getPackedSamplerScalar(inputInfo) { + const texName = inputInfo.name; + const funcName = "get" + texName.charAt(0).toUpperCase() + texName.slice(1); + const glsl = getGlslDifferences(); + return ` + vec4 ${funcName}() { + return ${glsl.texture2D}(${texName}, halfCR); + } + `; + } + function getSamplerScalar(inputInfo) { + const texName = inputInfo.name; + const funcName = "get" + texName.charAt(0).toUpperCase() + texName.slice(1); + if (inputInfo.shapeInfo.isUniform) { + return `float ${funcName}() {return ${texName};}`; + } + const [texNumR, texNumC] = inputInfo.shapeInfo.texShape; + if (texNumR === 1 && texNumC === 1) { + return ` + float ${funcName}() { + return sampleTexture(${texName}, halfCR); + } + `; + } + const [tNumR, tNumC] = inputInfo.shapeInfo.texShape; + const offset = getFlatOffsetUniformName(texName); + return ` + float ${funcName}() { + vec2 uv = uvFromFlat(${tNumR}, ${tNumC}, ${offset}); + return sampleTexture(${texName}, uv); + } + `; + } + function getPackedSampler1D(inputInfo) { + const texName = inputInfo.name; + const funcName = "get" + texName.charAt(0).toUpperCase() + texName.slice(1); + const texShape = inputInfo.shapeInfo.texShape; + const packedTexShape = [Math.ceil(texShape[0] / 2), Math.ceil(texShape[1] / 2)]; + const glsl = getGlslDifferences(); + return ` + vec4 ${funcName}(int index) { + vec2 uv = packedUVfrom1D( + ${packedTexShape[0]}, ${packedTexShape[1]}, index); + return ${glsl.texture2D}(${texName}, uv); + } + `; + } + function getSampler1D(inputInfo) { + const texName = inputInfo.name; + const funcName = "get" + texName.charAt(0).toUpperCase() + texName.slice(1); + if (inputInfo.shapeInfo.isUniform) { + return ` + float ${funcName}(int index) { + ${getUniformSampler(inputInfo)} + } + `; + } + const texShape = inputInfo.shapeInfo.texShape; + const tNumR = texShape[0]; + const tNumC = texShape[1]; + if (tNumC === 1 && tNumR === 1) { + return ` + float ${funcName}(int index) { + return sampleTexture(${texName}, halfCR); + } + `; + } + const offset = getFlatOffsetUniformName(texName); + if (tNumC === 1) { + return ` + float ${funcName}(int index) { + vec2 uv = vec2(0.5, (float(index + ${offset}) + 0.5) / ${tNumR}.0); + return sampleTexture(${texName}, uv); + } + `; + } + if (tNumR === 1) { + return ` + float ${funcName}(int index) { + vec2 uv = vec2((float(index + ${offset}) + 0.5) / ${tNumC}.0, 0.5); + return sampleTexture(${texName}, uv); + } + `; + } + return ` + float ${funcName}(int index) { + vec2 uv = uvFromFlat(${tNumR}, ${tNumC}, index + ${offset}); + return sampleTexture(${texName}, uv); + } + `; + } + function getPackedSampler2D(inputInfo) { + const shape = inputInfo.shapeInfo.logicalShape; + const texName = inputInfo.name; + const funcName = "get" + texName.charAt(0).toUpperCase() + texName.slice(1); + const texShape = inputInfo.shapeInfo.texShape; + const texNumR = texShape[0]; + const texNumC = texShape[1]; + const glsl = getGlslDifferences(); + if (texShape != null && util_exports.arraysEqual(shape, texShape)) { + return ` + vec4 ${funcName}(int row, int col) { + vec2 uv = (vec2(col, row) + halfCR) / vec2(${texNumC}.0, ${texNumR}.0); + + return ${glsl.texture2D}(${texName}, uv); + } + `; + } + const packedTexShape = [Math.ceil(texShape[0] / 2), Math.ceil(texShape[1] / 2)]; + const valuesPerRow = Math.ceil(shape[1] / 2); + return ` + vec4 ${funcName}(int row, int col) { + vec2 uv = packedUVfrom2D(${valuesPerRow}, ${packedTexShape[0]}, ${packedTexShape[1]}, row, col); + return ${glsl.texture2D}(${texName}, uv); + } + `; + } + function getSampler2D(inputInfo) { + const shape = inputInfo.shapeInfo.logicalShape; + const texName = inputInfo.name; + const funcName = "get" + texName.charAt(0).toUpperCase() + texName.slice(1); + const texShape = inputInfo.shapeInfo.texShape; + if (texShape != null && util_exports.arraysEqual(shape, texShape)) { + const texNumR2 = texShape[0]; + const texNumC2 = texShape[1]; + return ` + float ${funcName}(int row, int col) { + vec2 uv = (vec2(col, row) + halfCR) / vec2(${texNumC2}.0, ${texNumR2}.0); + return sampleTexture(${texName}, uv); + } + `; + } + const {newShape, keptDims} = util_exports.squeezeShape(shape); + const squeezedShape = newShape; + if (squeezedShape.length < shape.length) { + const newInputInfo = squeezeInputInfo(inputInfo, squeezedShape); + const params = ["row", "col"]; + return ` + ${getSamplerFromInInfo(newInputInfo)} + float ${funcName}(int row, int col) { + return ${funcName}(${getSqueezedParams(params, keptDims)}); + } + `; + } + if (inputInfo.shapeInfo.isUniform) { + return ` + float ${funcName}(int row, int col) { + int index = round(dot(vec2(row, col), vec2(${shape[1]}, 1))); + ${getUniformSampler(inputInfo)} + } + `; + } + const texNumR = texShape[0]; + const texNumC = texShape[1]; + const offset = getFlatOffsetUniformName(texName); + if (texNumC === 1) { + return ` + float ${funcName}(int row, int col) { + float index = dot(vec3(row, col, ${offset}), vec3(${shape[1]}, 1, 1)); + vec2 uv = vec2(0.5, (index + 0.5) / ${texNumR}.0); + return sampleTexture(${texName}, uv); + } + `; + } + if (texNumR === 1) { + return ` + float ${funcName}(int row, int col) { + float index = dot(vec3(row, col, ${offset}), vec3(${shape[1]}, 1, 1)); + vec2 uv = vec2((index + 0.5) / ${texNumC}.0, 0.5); + return sampleTexture(${texName}, uv); + } + `; + } + return ` + float ${funcName}(int row, int col) { + // Explicitly use integer operations as dot() only works on floats. + int index = row * ${shape[1]} + col + ${offset}; + vec2 uv = uvFromFlat(${texNumR}, ${texNumC}, index); + return sampleTexture(${texName}, uv); + } +`; + } + function getPackedSampler3D(inputInfo) { + const shape = inputInfo.shapeInfo.logicalShape; + const texName = inputInfo.name; + const funcName = "get" + texName.charAt(0).toUpperCase() + texName.slice(1); + const texShape = inputInfo.shapeInfo.texShape; + const packedTexShape = [Math.ceil(texShape[0] / 2), Math.ceil(texShape[1] / 2)]; + if (shape[0] === 1) { + const squeezedShape = shape.slice(1); + const keptDims = [1, 2]; + const newInputInfo = squeezeInputInfo(inputInfo, squeezedShape); + const params = ["b", "row", "col"]; + return ` + ${getPackedSamplerFromInInfo(newInputInfo)} + vec4 ${funcName}(int b, int row, int col) { + return ${funcName}(${getSqueezedParams(params, keptDims)}); + } + `; + } + const texNumR = packedTexShape[0]; + const texNumC = packedTexShape[1]; + const valuesPerRow = Math.ceil(shape[2] / 2); + const texelsInBatch = valuesPerRow * Math.ceil(shape[1] / 2); + const glsl = getGlslDifferences(); + return ` + vec4 ${funcName}(int b, int row, int col) { + vec2 uv = packedUVfrom3D( + ${texNumR}, ${texNumC}, ${texelsInBatch}, ${valuesPerRow}, b, row, col); + return ${glsl.texture2D}(${texName}, uv); + } + `; + } + function getSampler3D(inputInfo) { + const shape = inputInfo.shapeInfo.logicalShape; + const texName = inputInfo.name; + const funcName = "get" + texName.charAt(0).toUpperCase() + texName.slice(1); + const stride0 = shape[1] * shape[2]; + const stride1 = shape[2]; + const {newShape, keptDims} = util_exports.squeezeShape(shape); + const squeezedShape = newShape; + if (squeezedShape.length < shape.length) { + const newInputInfo = squeezeInputInfo(inputInfo, squeezedShape); + const params = ["row", "col", "depth"]; + return ` + ${getSamplerFromInInfo(newInputInfo)} + float ${funcName}(int row, int col, int depth) { + return ${funcName}(${getSqueezedParams(params, keptDims)}); + } + `; + } + if (inputInfo.shapeInfo.isUniform) { + return ` + float ${funcName}(int row, int col, int depth) { + int index = round(dot(vec3(row, col, depth), + vec3(${stride0}, ${stride1}, 1))); + ${getUniformSampler(inputInfo)} + } + `; + } + const texShape = inputInfo.shapeInfo.texShape; + const texNumR = texShape[0]; + const texNumC = texShape[1]; + const flatOffset = inputInfo.shapeInfo.flatOffset; + if (texNumC === stride0 && flatOffset == null) { + return ` + float ${funcName}(int row, int col, int depth) { + float texR = float(row); + float texC = dot(vec2(col, depth), vec2(${stride1}, 1)); + vec2 uv = (vec2(texC, texR) + halfCR) / + vec2(${texNumC}.0, ${texNumR}.0); + return sampleTexture(${texName}, uv); + } + `; + } + if (texNumC === stride1 && flatOffset == null) { + return ` + float ${funcName}(int row, int col, int depth) { + float texR = dot(vec2(row, col), vec2(${shape[1]}, 1)); + float texC = float(depth); + vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${texNumC}.0, ${texNumR}.0); + return sampleTexture(${texName}, uv); + } + `; + } + const offset = getFlatOffsetUniformName(texName); + return ` + float ${funcName}(int row, int col, int depth) { + // Explicitly use integer operations as dot() only works on floats. + int index = row * ${stride0} + col * ${stride1} + depth + ${offset}; + vec2 uv = uvFromFlat(${texNumR}, ${texNumC}, index); + return sampleTexture(${texName}, uv); + } + `; + } + function getPackedSamplerND(inputInfo) { + const shape = inputInfo.shapeInfo.logicalShape; + const rank = shape.length; + const texName = inputInfo.name; + const funcName = "get" + texName.charAt(0).toUpperCase() + texName.slice(1); + const texShape = inputInfo.shapeInfo.texShape; + const packedTexShape = [Math.ceil(texShape[0] / 2), Math.ceil(texShape[1] / 2)]; + const texNumR = packedTexShape[0]; + const texNumC = packedTexShape[1]; + const valuesPerRow = Math.ceil(shape[rank - 1] / 2); + let texelsInBatch = valuesPerRow * Math.ceil(shape[rank - 2] / 2); + let params = `int b, int row, int col`; + let index = `b * ${texelsInBatch} + (row / 2) * ${valuesPerRow} + (col / 2)`; + for (let b = 2; b < rank - 1; b++) { + params = `int b${b}, ` + params; + texelsInBatch *= shape[rank - b - 1]; + index = `b${b} * ${texelsInBatch} + ` + index; + } + const glsl = getGlslDifferences(); + return ` + vec4 ${funcName}(${params}) { + int index = ${index}; + int texR = index / ${texNumC}; + int texC = index - texR * ${texNumC}; + vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${texNumC}, ${texNumR}); + return ${glsl.texture2D}(${texName}, uv); + } + `; + } + function getSampler4D(inputInfo) { + const shape = inputInfo.shapeInfo.logicalShape; + const texName = inputInfo.name; + const funcName = "get" + texName.charAt(0).toUpperCase() + texName.slice(1); + const stride2 = shape[3]; + const stride1 = shape[2] * stride2; + const stride0 = shape[1] * stride1; + const {newShape, keptDims} = util_exports.squeezeShape(shape); + if (newShape.length < shape.length) { + const newInputInfo = squeezeInputInfo(inputInfo, newShape); + const params = ["row", "col", "depth", "depth2"]; + return ` + ${getSamplerFromInInfo(newInputInfo)} + float ${funcName}(int row, int col, int depth, int depth2) { + return ${funcName}(${getSqueezedParams(params, keptDims)}); + } + `; + } + if (inputInfo.shapeInfo.isUniform) { + return ` + float ${funcName}(int row, int col, int depth, int depth2) { + int index = round(dot(vec4(row, col, depth, depth2), + vec4(${stride0}, ${stride1}, ${stride2}, 1))); + ${getUniformSampler(inputInfo)} + } + `; + } + const flatOffset = inputInfo.shapeInfo.flatOffset; + const texShape = inputInfo.shapeInfo.texShape; + const texNumR = texShape[0]; + const texNumC = texShape[1]; + if (texNumC === stride0 && flatOffset == null) { + return ` + float ${funcName}(int row, int col, int depth, int depth2) { + float texR = float(row); + float texC = + dot(vec3(col, depth, depth2), + vec3(${stride1}, ${stride2}, 1)); + vec2 uv = (vec2(texC, texR) + halfCR) / + vec2(${texNumC}.0, ${texNumR}.0); + return sampleTexture(${texName}, uv); + } + `; + } + if (texNumC === stride2 && flatOffset == null) { + return ` + float ${funcName}(int row, int col, int depth, int depth2) { + float texR = dot(vec3(row, col, depth), + vec3(${shape[1] * shape[2]}, ${shape[2]}, 1)); + float texC = float(depth2); + vec2 uv = (vec2(texC, texR) + halfCR) / + vec2(${texNumC}.0, ${texNumR}.0); + return sampleTexture(${texName}, uv); + } + `; + } + const offset = getFlatOffsetUniformName(texName); + return ` + float ${funcName}(int row, int col, int depth, int depth2) { + // Explicitly use integer operations as dot() only works on floats. + int index = row * ${stride0} + col * ${stride1} + + depth * ${stride2} + depth2; + vec2 uv = uvFromFlat(${texNumR}, ${texNumC}, index + ${offset}); + return sampleTexture(${texName}, uv); + } + `; + } + function getSampler5D(inputInfo) { + const shape = inputInfo.shapeInfo.logicalShape; + const texName = inputInfo.name; + const funcName = "get" + texName.charAt(0).toUpperCase() + texName.slice(1); + const stride3 = shape[4]; + const stride2 = shape[3] * stride3; + const stride1 = shape[2] * stride2; + const stride0 = shape[1] * stride1; + const {newShape, keptDims} = util_exports.squeezeShape(shape); + if (newShape.length < shape.length) { + const newInputInfo = squeezeInputInfo(inputInfo, newShape); + const params = ["row", "col", "depth", "depth2", "depth3"]; + return ` + ${getSamplerFromInInfo(newInputInfo)} + float ${funcName}(int row, int col, int depth, int depth2, int depth3) { + return ${funcName}(${getSqueezedParams(params, keptDims)}); + } + `; + } + if (inputInfo.shapeInfo.isUniform) { + return ` + float ${funcName}(int row, int col, int depth, int depth2, int depth3) { + float index = dot( + vec4(row, col, depth, depth2), + vec4(${stride0}, ${stride1}, ${stride2}, ${stride3})) + + depth3; + ${getUniformSampler(inputInfo)} + } + `; + } + const flatOffset = inputInfo.shapeInfo.flatOffset; + const texShape = inputInfo.shapeInfo.texShape; + const texNumR = texShape[0]; + const texNumC = texShape[1]; + if (texNumC === stride0 && flatOffset == null) { + return ` + float ${funcName}(int row, int col, int depth, int depth2, int depth3) { + int texR = row; + float texC = dot(vec4(col, depth, depth2, depth3), + vec4(${stride1}, ${stride2}, ${stride3}, 1)); + vec2 uv = (vec2(texC, texR) + halfCR) / + vec2(${texNumC}.0, ${texNumR}.0); + return sampleTexture(${texName}, uv); + } + `; + } + if (texNumC === stride3 && flatOffset == null) { + return ` + float ${funcName}(int row, int col, int depth, int depth2, int depth3) { + float texR = dot( + vec4(row, col, depth, depth2), + vec4(${shape[1] * shape[2] * shape[3]}, + ${shape[2] * shape[3]}, ${shape[3]}, 1)); + int texC = depth3; + vec2 uv = (vec2(texC, texR) + halfCR) / + vec2(${texNumC}.0, ${texNumR}.0); + return sampleTexture(${texName}, uv); + } + `; + } + const offset = getFlatOffsetUniformName(texName); + return ` + float ${funcName}(int row, int col, int depth, int depth2, int depth3) { + // Explicitly use integer operations as dot() only works on floats. + int index = row * ${stride0} + col * ${stride1} + depth * ${stride2} + + depth2 * ${stride3} + depth3 + ${offset}; + vec2 uv = uvFromFlat(${texNumR}, ${texNumC}, index); + return sampleTexture(${texName}, uv); + } + `; + } + function getSampler6D(inputInfo) { + const shape = inputInfo.shapeInfo.logicalShape; + const texName = inputInfo.name; + const funcName = "get" + texName.charAt(0).toUpperCase() + texName.slice(1); + const {newShape, keptDims} = util_exports.squeezeShape(shape); + if (newShape.length < shape.length) { + const newInputInfo = squeezeInputInfo(inputInfo, newShape); + const params = ["row", "col", "depth", "depth2", "depth3", "depth4"]; + return ` + ${getSamplerFromInInfo(newInputInfo)} + float ${funcName}(int row, int col, int depth, + int depth2, int depth3, int depth4) { + return ${funcName}(${getSqueezedParams(params, keptDims)}); + } + `; + } + const stride4 = shape[5]; + const stride3 = shape[4] * stride4; + const stride2 = shape[3] * stride3; + const stride1 = shape[2] * stride2; + const stride0 = shape[1] * stride1; + if (inputInfo.shapeInfo.isUniform) { + return ` + float ${funcName}(int row, int col, int depth, + int depth2, int depth3, int depth4) { + int index = round(dot( + vec4(row, col, depth, depth2), + vec4(${stride0}, ${stride1}, ${stride2}, ${stride3})) + + dot( + vec2(depth3, depth4), + vec2(${stride4}, 1))); + ${getUniformSampler(inputInfo)} + } + `; + } + const flatOffset = inputInfo.shapeInfo.flatOffset; + const texShape = inputInfo.shapeInfo.texShape; + const texNumR = texShape[0]; + const texNumC = texShape[1]; + if (texNumC === stride0 && flatOffset == null) { + return ` + float ${funcName}(int row, int col, int depth, + int depth2, int depth3, int depth4) { + int texR = row; + float texC = dot(vec4(col, depth, depth2, depth3), + vec4(${stride1}, ${stride2}, ${stride3}, ${stride4})) + + float(depth4); + vec2 uv = (vec2(texC, texR) + halfCR) / + vec2(${texNumC}.0, ${texNumR}.0); + return sampleTexture(${texName}, uv); + } + `; + } + if (texNumC === stride4 && flatOffset == null) { + return ` + float ${funcName}(int row, int col, int depth, + int depth2, int depth3, int depth4) { + float texR = dot(vec4(row, col, depth, depth2), + vec4(${shape[1] * shape[2] * shape[3] * shape[4]}, + ${shape[2] * shape[3] * shape[4]}, + ${shape[3] * shape[4]}, + ${shape[4]})) + float(depth3); + int texC = depth4; + vec2 uv = (vec2(texC, texR) + halfCR) / + vec2(${texNumC}.0, ${texNumR}.0); + return sampleTexture(${texName}, uv); + } + `; + } + const offset = getFlatOffsetUniformName(texName); + return ` + float ${funcName}(int row, int col, int depth, + int depth2, int depth3, int depth4) { + // Explicitly use integer operations as dot() only works on floats. + int index = row * ${stride0} + col * ${stride1} + depth * ${stride2} + + depth2 * ${stride3} + depth3 * ${stride4} + depth4 + ${offset}; + vec2 uv = uvFromFlat(${texNumR}, ${texNumC}, index); + return sampleTexture(${texName}, uv); + } + `; + } + function getUniformSampler(inputInfo) { + const texName = inputInfo.name; + const inSize = util_exports.sizeFromShape(inputInfo.shapeInfo.logicalShape); + if (inSize < 2) { + return `return ${texName};`; + } + return ` + for (int i = 0; i < ${inSize}; i++) { + if (i == index) { + return ${texName}[i]; + } + } + `; + } + function getPackedSamplerAtOutputCoords(inputInfo, outShapeInfo) { + const texName = inputInfo.name; + const texFuncSnippet = texName.charAt(0).toUpperCase() + texName.slice(1); + const funcName = "get" + texFuncSnippet + "AtOutCoords"; + const inRank = inputInfo.shapeInfo.logicalShape.length; + const outRank = outShapeInfo.logicalShape.length; + const broadcastDims = getBroadcastDims2(inputInfo.shapeInfo.logicalShape, outShapeInfo.logicalShape); + const type = getCoordsDataType(outRank); + const rankDiff = outRank - inRank; + let coordsSnippet; + const fields = ["x", "y", "z", "w", "u", "v"]; + if (inRank === 0) { + coordsSnippet = ""; + } else if (outRank < 2 && broadcastDims.length >= 1) { + coordsSnippet = "coords = 0;"; + } else { + coordsSnippet = broadcastDims.map((d) => `coords.${fields[d + rankDiff]} = 0;`).join("\n"); + } + let unpackedCoordsSnippet = ""; + if (outRank < 2 && inRank > 0) { + unpackedCoordsSnippet = "coords"; + } else { + unpackedCoordsSnippet = inputInfo.shapeInfo.logicalShape.map((s, i) => `coords.${fields[i + rankDiff]}`).join(", "); + } + let output = `return outputValue;`; + const inSize = util_exports.sizeFromShape(inputInfo.shapeInfo.logicalShape); + const isInputScalar = inSize === 1; + const outSize = util_exports.sizeFromShape(outShapeInfo.logicalShape); + const isOutputScalar = outSize === 1; + if (inRank === 1 && !isInputScalar && !isOutputScalar) { + output = ` + return vec4(outputValue.xy, outputValue.xy); + `; + } else if (isInputScalar && !isOutputScalar) { + if (outRank === 1) { + output = ` + return vec4(outputValue.x, outputValue.x, 0., 0.); + `; + } else { + output = ` + return vec4(outputValue.x); + `; + } + } else if (broadcastDims.length) { + const rows = inRank - 2; + const cols = inRank - 1; + if (broadcastDims.indexOf(rows) > -1 && broadcastDims.indexOf(cols) > -1) { + output = `return vec4(outputValue.x);`; + } else if (broadcastDims.indexOf(rows) > -1) { + output = `return vec4(outputValue.x, outputValue.y, outputValue.x, outputValue.y);`; + } else if (broadcastDims.indexOf(cols) > -1) { + output = `return vec4(outputValue.xx, outputValue.zz);`; + } + } + return ` + vec4 ${funcName}() { + ${type} coords = getOutputCoords(); + ${coordsSnippet} + vec4 outputValue = get${texFuncSnippet}(${unpackedCoordsSnippet}); + ${output} + } + `; + } + function getSamplerAtOutputCoords(inputInfo, outShapeInfo) { + const texName = inputInfo.name; + const texFuncSnippet = texName.charAt(0).toUpperCase() + texName.slice(1); + const funcName = "get" + texFuncSnippet + "AtOutCoords"; + const outTexShape = outShapeInfo.texShape; + const inTexShape = inputInfo.shapeInfo.texShape; + const inRank = inputInfo.shapeInfo.logicalShape.length; + const outRank = outShapeInfo.logicalShape.length; + if (!inputInfo.shapeInfo.isUniform && inRank === outRank && inputInfo.shapeInfo.flatOffset == null && util_exports.arraysEqual(inTexShape, outTexShape)) { + return ` + float ${funcName}() { + return sampleTexture(${texName}, resultUV); + } + `; + } + const type = getCoordsDataType(outRank); + const broadcastDims = getBroadcastDims2(inputInfo.shapeInfo.logicalShape, outShapeInfo.logicalShape); + const rankDiff = outRank - inRank; + let coordsSnippet; + const fields = ["x", "y", "z", "w", "u", "v"]; + if (inRank === 0) { + coordsSnippet = ""; + } else if (outRank < 2 && broadcastDims.length >= 1) { + coordsSnippet = "coords = 0;"; + } else { + coordsSnippet = broadcastDims.map((d) => `coords.${fields[d + rankDiff]} = 0;`).join("\n"); + } + let unpackedCoordsSnippet = ""; + if (outRank < 2 && inRank > 0) { + unpackedCoordsSnippet = "coords"; + } else { + unpackedCoordsSnippet = inputInfo.shapeInfo.logicalShape.map((s, i) => `coords.${fields[i + rankDiff]}`).join(", "); + } + return ` + float ${funcName}() { + ${type} coords = getOutputCoords(); + ${coordsSnippet} + return get${texFuncSnippet}(${unpackedCoordsSnippet}); + } + `; + } + function getCoordsDataType(rank) { + if (rank <= 1) { + return "int"; + } else if (rank === 2) { + return "ivec2"; + } else if (rank === 3) { + return "ivec3"; + } else if (rank === 4) { + return "ivec4"; + } else if (rank === 5) { + return "ivec5"; + } else if (rank === 6) { + return "ivec6"; + } else { + throw Error(`GPU for rank ${rank} is not yet supported`); + } + } + function squeezeInputInfo(inInfo, squeezedShape) { + const newInputInfo = JSON.parse(JSON.stringify(inInfo)); + newInputInfo.shapeInfo.logicalShape = squeezedShape; + return newInputInfo; + } + function getSqueezedParams(params, keptDims) { + return keptDims.map((d) => params[d]).join(", "); + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/argminmax_packed_gpu.js + /** + * @license + * Copyright 2019 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class ArgMinMaxPackedProgram { + constructor(shape, windowSize, op2, firstPass) { + this.variableNames = ["A"]; + this.packedInputs = true; + this.packedOutput = true; + util_exports.assert(shape.length > 2, () => `Packed arg${op2.charAt(0).toUpperCase() + op2.slice(1)} supports only inputs with rank above 2.`); + const inSize = shape[shape.length - 1]; + const outSize = Math.ceil(inSize / windowSize); + this.outputShape = shape.slice(0, -1); + if (outSize > 1) { + this.outputShape.push(outSize); + } + if (!firstPass) { + this.variableNames.push("bestIndicesA"); + } + const outShape = this.outputShape; + const rank = outShape.length; + const dtype = getCoordsDataType(rank); + const coords2 = getChannels("coords", rank); + let sourceLocSetup; + let sourceRank; + if (outSize === 1) { + sourceRank = rank + 1; + const sourceLocDType = getCoordsDataType(sourceRank); + sourceLocSetup = ` + ${sourceLocDType} sourceLocR = ${sourceLocDType}(${coords2.join()}, 0); + ++${coords2[rank - 1]}; + ${sourceLocDType} sourceLocG = ${sourceLocDType}(${coords2.join()}, 0); + ++${coords2[rank - 2]}; + ${sourceLocDType} sourceLocA = ${sourceLocDType}(${coords2.join()}, 0); + --${coords2[rank - 1]}; + ${sourceLocDType} sourceLocB = ${sourceLocDType}(${coords2.join()}, 0); + --${coords2[rank - 2]};`; + } else { + sourceRank = rank; + sourceLocSetup = ` + ${dtype} sourceLocR = coords; + ++${coords2[rank - 1]}; + ${dtype} sourceLocG = coords; + ++${coords2[rank - 2]}; + ${dtype} sourceLocA = coords; + --${coords2[rank - 1]}; + ${dtype} sourceLocB = coords; + --${coords2[rank - 2]};`; + } + const channels = ["x", "y", "z", "w", "u", "v"].slice(0, sourceRank); + const inChannel = "." + channels[sourceRank - 1]; + const intChannels = channels.map((x) => "int " + x); + const srcRCoords = getChannels("sourceLocR", sourceRank - 1).concat("inIdx.r"); + const srcGCoords = getChannels("sourceLocG", sourceRank - 1).concat("inIdx.g"); + const srcBCoords = getChannels("sourceLocB", sourceRank - 1).concat("inIdx.b"); + const srcACoords = getChannels("sourceLocA", sourceRank - 1).concat("inIdx.a"); + const compOp = op2 === "max" ? "greaterThan" : "lessThan"; + const fetchCandidateIdx = firstPass ? "" : ` + inIdx = round(vec4(getBestIndicesAChannel(${srcRCoords.join()}), + getBestIndicesAChannel(${srcGCoords.join()}), + getBestIndicesAChannel(${srcBCoords.join()}), + getBestIndicesAChannel(${srcACoords.join()})));`; + const fetchValue = `vec4( + getAChannel(${srcRCoords.join()}), + hasNextCol ? getAChannel(${srcGCoords.join()}) : 0., + hasNextRow ? getAChannel(${srcBCoords.join()}) : 0., + hasNextRow && hasNextCol ? getAChannel(${srcACoords.join()}) : 0.)`; + const getBestIndicesAChannelSnippet = firstPass ? "" : ` + float getBestIndicesAChannel(${intChannels.join()}) { + return getChannel(getBestIndicesA(${channels.join()}), + vec2(${channels.slice(-2).join()})); + }`; + this.userCode = ` + float getAChannel(${intChannels.join()}) { + return getChannel(getA(${channels.join()}), + vec2(${channels.slice(-2).join()})); + } + ${getBestIndicesAChannelSnippet} + void main() { + ${dtype} coords = getOutputCoords(); + bool hasNextCol = ${coords2[rank - 1]} < ${outShape[rank - 1] - 1}; + bool hasNextRow = ${coords2[rank - 2]} < ${outShape[rank - 2] - 1}; + ${sourceLocSetup} + ivec4 srcIdx = ivec4(sourceLocR${inChannel}, sourceLocG${inChannel}, + sourceLocB${inChannel}, sourceLocA${inChannel}) * ${windowSize}; + ivec4 inIdx = srcIdx; + vec4 bestIndex = vec4(inIdx); + vec4 bestValue = ${fetchValue}; + + for (int i = 0; i < ${windowSize}; i++) { + inIdx = srcIdx; + ${fetchCandidateIdx} + vec4 candidate = ${fetchValue}; + bvec4 nan = isnan(candidate); + bvec4 replace = bvec4( + vec4(${compOp}(candidate, bestValue)) * (vec4(1.0) - vec4(nan))); + + bestValue = vec4(replace.x ? candidate.x : bestValue.x, + replace.y ? candidate.y : bestValue.y, + replace.z ? candidate.z : bestValue.z, + replace.w ? candidate.w : bestValue.w); + bestIndex = mix(bestIndex, vec4(inIdx), vec4(replace)); + srcIdx++; + } + setOutput(bestIndex); + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/avg_pool_backprop_gpu.js + /** + * @license + * Copyright 2017 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class AvgPool2DBackpropProgram { + constructor(convInfo) { + this.variableNames = ["dy"]; + this.outputShape = convInfo.inShape; + const filterHeight = convInfo.filterHeight; + const filterWidth = convInfo.filterWidth; + const strideHeight = convInfo.strideHeight; + const strideWidth = convInfo.strideWidth; + const dilationHeight = convInfo.dilationHeight; + const dilationWidth = convInfo.dilationWidth; + const effectiveFilterHeight = convInfo.effectiveFilterHeight; + const effectiveFilterWidth = convInfo.effectiveFilterWidth; + const padTop = effectiveFilterHeight - 1 - convInfo.padInfo.top; + const padLeft = effectiveFilterWidth - 1 - convInfo.padInfo.left; + const avgMultiplier = 1 / (filterHeight * filterWidth); + this.userCode = ` + const ivec2 pads = ivec2(${padTop}, ${padLeft}); + const float avgMultiplier = float(${avgMultiplier}); + + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int d = coords[3]; + + ivec2 dyRCCorner = coords.yz - pads; + int dyRCorner = dyRCCorner.x; + int dyCCorner = dyRCCorner.y; + + // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d). + // ? = to be determined. : = across all values in that axis. + float dotProd = 0.0; + for (int wR = 0; wR < ${effectiveFilterHeight}; + wR += ${dilationHeight}) { + float dyR = float(dyRCorner + wR) / ${strideHeight}.0; + + if (dyR < 0.0 || dyR >= ${convInfo.outHeight}.0 || fract(dyR) > 0.0) { + continue; + } + int idyR = int(dyR); + + for (int wC = 0; wC < ${effectiveFilterWidth}; + wC+= ${dilationWidth}) { + float dyC = float(dyCCorner + wC) / ${strideWidth}.0; + + if (dyC < 0.0 || dyC >= ${convInfo.outWidth}.0 || + fract(dyC) > 0.0) { + continue; + } + int idyC = int(dyC); + + float dyValue = getDy(b, idyR, idyC, d); + + dotProd += dyValue * avgMultiplier; + } + } + setOutput(dotProd); + } + `; + } + } + class AvgPool3DBackpropProgram { + constructor(convInfo) { + this.variableNames = ["dy"]; + this.outputShape = convInfo.inShape; + const filterDepth = convInfo.filterDepth; + const filterHeight = convInfo.filterHeight; + const filterWidth = convInfo.filterWidth; + const strideDepth = convInfo.strideDepth; + const strideHeight = convInfo.strideHeight; + const strideWidth = convInfo.strideWidth; + const dilationDepth = convInfo.dilationDepth; + const dilationHeight = convInfo.dilationHeight; + const dilationWidth = convInfo.dilationWidth; + const effectiveFilterDepth = convInfo.effectiveFilterDepth; + const effectiveFilterHeight = convInfo.effectiveFilterHeight; + const effectiveFilterWidth = convInfo.effectiveFilterWidth; + const padFront = effectiveFilterDepth - 1 - convInfo.padInfo.front; + const padTop = effectiveFilterHeight - 1 - convInfo.padInfo.top; + const padLeft = effectiveFilterWidth - 1 - convInfo.padInfo.left; + const avgMultiplier = 1 / (filterDepth * filterHeight * filterWidth); + this.userCode = ` + const ivec3 pads = ivec3(${padFront}, ${padTop}, ${padLeft}); + const float avgMultiplier = float(${avgMultiplier}); + + void main() { + ivec5 coords = getOutputCoords(); + int batch = coords.x; + int ch = coords.u; + + ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads; + int dyDCorner = dyCorner.x; + int dyRCorner = dyCorner.y; + int dyCCorner = dyCorner.z; + + // Convolve dy(?, ?, ?, d) with pos mask(:, :, :, ch) to get + // dx(xD, xR, xC, ch). + // ? = to be determined. : = across all values in that axis. + float dotProd = 0.0; + + for (int wD = 0; wD < ${effectiveFilterDepth}; + wD += ${dilationDepth}) { + float dyD = float(dyDCorner + wD) / ${strideDepth}.0; + + if (dyD < 0.0 || dyD >= ${convInfo.outDepth}.0 || fract(dyD) > 0.0) { + continue; + } + int idyD = int(dyD); + + for (int wR = 0; wR < ${effectiveFilterHeight}; + wR += ${dilationHeight}) { + float dyR = float(dyRCorner + wR) / ${strideHeight}.0; + + if (dyR < 0.0 || dyR >= ${convInfo.outHeight}.0 || + fract(dyR) > 0.0) { + continue; + } + int idyR = int(dyR); + + for (int wC = 0; wC < ${effectiveFilterWidth}; + wC += ${dilationWidth}) { + float dyC = float(dyCCorner + wC) / ${strideWidth}.0; + + if (dyC < 0.0 || dyC >= ${convInfo.outWidth}.0 || + fract(dyC) > 0.0) { + continue; + } + int idyC = int(dyC); + + float dyValue = getDy(batch, idyD, idyR, idyC, ch); + + dotProd += dyValue * avgMultiplier; + } + } + } + setOutput(dotProd); + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/batchnorm_gpu.js + /** + * @license + * Copyright 2017 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class BatchNormProgram { + constructor(xShape, meanShape, varianceShape, offsetShape, scaleShape, varianceEpsilon) { + this.outputShape = []; + this.variableNames = ["x", "mean", "variance"]; + backend_util_exports.assertAndGetBroadcastShape(xShape, meanShape); + backend_util_exports.assertAndGetBroadcastShape(xShape, varianceShape); + let offsetSnippet = "0.0"; + if (offsetShape != null) { + backend_util_exports.assertAndGetBroadcastShape(xShape, offsetShape); + this.variableNames.push("offset"); + offsetSnippet = "getOffsetAtOutCoords()"; + } + let scaleSnippet = "1.0"; + if (scaleShape != null) { + backend_util_exports.assertAndGetBroadcastShape(xShape, scaleShape); + this.variableNames.push("scale"); + scaleSnippet = "getScaleAtOutCoords()"; + } + this.outputShape = xShape; + this.userCode = ` + void main() { + float x = getXAtOutCoords(); + float mean = getMeanAtOutCoords(); + float variance = getVarianceAtOutCoords(); + float offset = ${offsetSnippet}; + float scale = ${scaleSnippet}; + float inv = scale * inversesqrt(variance + float(${varianceEpsilon})); + setOutput(dot(vec3(x, -mean, offset), vec3(inv, inv, 1))); + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/batchnorm_packed_gpu.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class BatchNormPackedProgram { + constructor(xShape, meanShape, varianceShape, offsetShape, scaleShape, varianceEpsilon) { + this.packedInputs = true; + this.packedOutput = true; + this.variableNames = ["x", "mean", "variance"]; + backend_util_exports.assertAndGetBroadcastShape(xShape, meanShape); + backend_util_exports.assertAndGetBroadcastShape(xShape, varianceShape); + let offsetSnippet = "vec4(0.0)"; + if (offsetShape != null) { + backend_util_exports.assertAndGetBroadcastShape(xShape, offsetShape); + this.variableNames.push("offset"); + offsetSnippet = "getOffsetAtOutCoords()"; + } + let scaleSnippet = "vec4(1.0)"; + if (scaleShape != null) { + backend_util_exports.assertAndGetBroadcastShape(xShape, scaleShape); + this.variableNames.push("scale"); + scaleSnippet = "getScaleAtOutCoords()"; + } + this.outputShape = xShape; + this.userCode = ` + void main() { + vec4 offset = ${offsetSnippet}; + vec4 scale = ${scaleSnippet}; + + vec4 x = getXAtOutCoords(); + vec4 mean = getMeanAtOutCoords(); + vec4 variance = getVarianceAtOutCoords(); + + vec4 inv = scale * inversesqrt(variance + vec4(${varianceEpsilon})); + + setOutput((x - mean) * inv + offset); + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/binaryop_complex_gpu.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const COMPLEX_MULTIPLY = { + REAL: "return areal * breal - aimag * bimag;", + IMAG: "return areal * bimag + aimag * breal;" + }; + class BinaryOpComplexProgram { + constructor(op2, aShape, bShape) { + this.variableNames = ["AReal", "AImag", "BReal", "BImag"]; + this.outputShape = backend_util_exports.assertAndGetBroadcastShape(aShape, bShape); + this.userCode = ` + float binaryOpComplex( + float areal, float aimag, float breal, float bimag) { + ${op2} + } + + void main() { + float areal = getARealAtOutCoords(); + float aimag = getAImagAtOutCoords(); + float breal = getBRealAtOutCoords(); + float bimag = getBImagAtOutCoords(); + setOutput(binaryOpComplex(areal, aimag, breal, bimag)); + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/binaryop_gpu.js + /** + * @license + * Copyright 2017 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const CHECK_NAN_SNIPPET = ` + if (isnan(a)) return a; + if (isnan(b)) return b; +`; + const ADD = "return a + b;"; + const SUB = "return a - b;"; + const MUL = "return a * b;"; + const DIV = ` +if (a == b) { + return 1.0; +}; +return a / b;`; + const INT_DIV = ` + float s = sign(a) * sign(b); + int ia = round(a); + int ib = round(b); + if (ib != 0) { + // Windows (D3D) wants guaranteed non-zero int division at compile-time. + return float(idiv(ia, ib, s)); + } else { + return NAN; + } +`; + const POW = ` +if(a < 0.0 && floor(b) < b){ + return NAN; +} +if (b == 0.0) { + return 1.0; +} +return (round(mod(b, 2.0)) != 1) ? + pow(abs(a), b) : sign(a) * pow(abs(a), b); +`; + const EQUAL = `return float(a == b);`; + const NOT_EQUAL = `return float(a != b);`; + const LESS = `return float(a < b);`; + const LESS_EQUAL = `return float(a <= b);`; + const GREATER = `return float(a > b);`; + const GREATER_EQUAL = `return float(a >= b);`; + const LOGICAL_AND = `return float(a >= 1.0 && b >= 1.0);`; + const LOGICAL_OR = `return float(a >= 1.0 || b >= 1.0);`; + const MAX = CHECK_NAN_SNIPPET + ` + return max(a, b); +`; + const MIN = CHECK_NAN_SNIPPET + ` + return min(a, b); +`; + const MOD = `if (b == 0.0) return NAN; + return mod(a, b);`; + const ATAN2 = CHECK_NAN_SNIPPET + ` + return atan(a, b); +`; + const ELU_DER = `return (b >= 1.0) ? a : a * (b + 1.0);`; + const PRELU = `return (a < 0.) ? b * a : a;`; + class BinaryOpProgram { + constructor(op2, aShape, bShape) { + this.variableNames = ["A", "B"]; + this.outputShape = backend_util_exports.assertAndGetBroadcastShape(aShape, bShape); + this.userCode = ` + float binaryOperation(float a, float b) { + ${op2} + } + + void main() { + float a = getAAtOutCoords(); + float b = getBAtOutCoords(); + setOutput(binaryOperation(a, b)); + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/binaryop_packed_gpu.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const CHECK_NAN_SNIPPET2 = ` + result.r = isNaN.r > 0. ? NAN : result.r; + result.g = isNaN.g > 0. ? NAN : result.g; + result.b = isNaN.b > 0. ? NAN : result.b; + result.a = isNaN.a > 0. ? NAN : result.a; +`; + const DIV2 = ` + // vec4 one = vec4(equal(a, b)); + // return one + (vec4(1.0) - one) * a / b; + vec4 result = a / b; + if(a.x == b.x) { + result.x = 1.; + } + if(a.y == b.y) { + result.y = 1.; + } + if(a.z == b.z) { + result.z = 1.; + } + if(a.w == b.w) { + result.w = 1.; + } + + return result; +`; + const INT_DIV2 = ` + ivec4 ia = round(a); + ivec4 ib = round(b); + bvec4 cond = notEqual(ib, ivec4(0)); + ivec4 result = ivec4(0); + vec4 s = sign(a) * sign(b); + + // Windows (D3D) wants guaranteed non-zero int division at compile-time. + if (cond[0]) { + result[0] = idiv(ia[0], ib[0], s[0]); + } + if (cond[1]) { + result[1] = idiv(ia[1], ib[1], s[1]); + } + if (cond[2]) { + result[2] = idiv(ia[2], ib[2], s[2]); + } + if (cond[3]) { + result[3] = idiv(ia[3], ib[3], s[3]); + } + return vec4(result); +`; + const POW2 = ` + // isModRound1 has 1 for components with round(mod(b, 2.0)) == 1, 0 otherwise. + vec4 isModRound1 = vec4(equal(round(mod(b, 2.0)), ivec4(1))); + vec4 multiplier = sign(a) * isModRound1 + (vec4(1.0) - isModRound1); + vec4 result = multiplier * pow(abs(a), b); + + // Ensure that a^0 = 1, including 0^0 = 1 as this correspond to TF and JS + bvec4 isExpZero = equal(b, vec4(0.0)); + result.r = isExpZero.r ? 1.0 : result.r; + result.g = isExpZero.g ? 1.0 : result.g; + result.b = isExpZero.b ? 1.0 : result.b; + result.a = isExpZero.a ? 1.0 : result.a; + + vec4 isNaN = vec4(lessThan(a, vec4(0.0))) * vec4(lessThan(floor(b), b)); + ` + CHECK_NAN_SNIPPET2 + ` + return result; +`; + const PRELU2 = ` + vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); + return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); +`; + const ELU_DER2 = ` + vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.))); + return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0)))); +`; + const ATAN22 = ` + vec4 result = atan(a, b); + vec4 isNaN = min(vec4(isnan(a)) + vec4(isnan(b)), vec4(1.0)); + ` + CHECK_NAN_SNIPPET2 + ` + return result; +`; + const EQUAL2 = ` + return vec4(equal(a, b)); +`; + const NOT_EQUAL2 = ` + return vec4(notEqual(a, b)); +`; + const LESS2 = ` + return vec4(lessThan(a, b)); +`; + const LESS_EQUAL2 = ` + return vec4(lessThanEqual(a, b)); +`; + const GREATER2 = ` + return vec4(greaterThan(a, b)); +`; + const GREATER_EQUAL2 = ` + return vec4(greaterThanEqual(a, b)); +`; + const LOGICAL_AND2 = ` + return vec4( + vec4(greaterThanEqual(a, vec4(1.0))) * + vec4(greaterThanEqual(b, vec4(1.0)))); +`; + const LOGICAL_OR2 = ` + return min( + vec4(greaterThanEqual(a, vec4(1.0))) + + vec4(greaterThanEqual(b, vec4(1.0))), + vec4(1.0)); +`; + const MAX2 = ` + vec4 result = vec4(max(a, b)); + vec4 isNaN = min(vec4(isnan(a)) + vec4(isnan(b)), vec4(1.0)); + ` + CHECK_NAN_SNIPPET2 + ` + return result; +`; + const MIN2 = ` + vec4 result = vec4(min(a, b)); + vec4 isNaN = min(vec4(isnan(a)) + vec4(isnan(b)), vec4(1.0)); + ` + CHECK_NAN_SNIPPET2 + ` + return result; +`; + const MOD2 = ` + vec4 result = mod(a, b); + vec4 isNaN = vec4(equal(b, vec4(0.0))); + ` + CHECK_NAN_SNIPPET2 + ` + return result; +`; + class BinaryOpPackedProgram { + constructor(op2, aShape, bShape, checkOutOfBounds = false) { + this.variableNames = ["A", "B"]; + this.supportsBroadcasting = true; + this.packedInputs = true; + this.packedOutput = true; + this.outputShape = backend_util_exports.assertAndGetBroadcastShape(aShape, bShape); + const rank = this.outputShape.length; + let checkOutOfBoundsString = ""; + if (checkOutOfBounds) { + if (rank === 0 || util_exports.sizeFromShape(this.outputShape) === 1) { + checkOutOfBoundsString = ` + result.y = 0.; + result.z = 0.; + result.w = 0.; + `; + } else { + const dtype = getCoordsDataType(rank); + checkOutOfBoundsString = ` + ${dtype} coords = getOutputCoords(); + `; + if (rank === 1) { + checkOutOfBoundsString += ` + result.y = (coords + 1) >= ${this.outputShape[0]} ? 0. : result.y; + result.z = 0.; + result.w = 0.; + `; + } else { + const channels = getChannels("coords", rank); + checkOutOfBoundsString += ` + bool nextRowOutOfBounds = + (${channels[rank - 2]} + 1) >= ${this.outputShape[rank - 2]}; + bool nextColOutOfBounds = + (${channels[rank - 1]} + 1) >= ${this.outputShape[rank - 1]}; + result.y = nextColOutOfBounds ? 0. : result.y; + result.z = nextRowOutOfBounds ? 0. : result.z; + result.w = nextColOutOfBounds || nextRowOutOfBounds ? 0. : result.w; + `; + } + } + } + this.userCode = ` + vec4 binaryOperation(vec4 a, vec4 b) { + ${op2} + } + + void main() { + vec4 a = getAAtOutCoords(); + vec4 b = getBAtOutCoords(); + + vec4 result = binaryOperation(a, b); + ${checkOutOfBoundsString} + + setOutput(result); + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/clip_gpu.js + /** + * @license + * Copyright 2017 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class ClipProgram { + constructor(aShape) { + this.variableNames = ["A"]; + this.outputShape = aShape; + this.userCode = ` + uniform float minVal; + uniform float maxVal; + + void main() { + float value = getAAtOutCoords(); + if (isnan(value)) { + setOutput(value); + return; + } + + setOutput(clamp(value, minVal, maxVal)); + } + `; + } + getCustomSetupFunc(min6, max8) { + return (gpgpu, webGLProgram) => { + if (this.minLoc == null) { + this.minLoc = gpgpu.getUniformLocationNoThrow(webGLProgram, "minVal"); + this.maxLoc = gpgpu.getUniformLocationNoThrow(webGLProgram, "maxVal"); + } + gpgpu.gl.uniform1f(this.minLoc, min6); + gpgpu.gl.uniform1f(this.maxLoc, max8); + }; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/clip_packed_gpu.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class ClipPackedProgram { + constructor(aShape) { + this.variableNames = ["A"]; + this.packedInputs = true; + this.packedOutput = true; + this.outputShape = aShape; + this.userCode = ` + uniform float minVal; + uniform float maxVal; + + void main() { + vec4 value = getAAtOutCoords(); + + if (any(isnan(value))) { + setOutput(value); + return; + } + + setOutput(clamp(value, vec4(minVal), vec4(maxVal))); + } + `; + } + getCustomSetupFunc(min6, max8) { + return (gpgpu, webGLProgram) => { + if (this.minLoc == null) { + this.minLoc = gpgpu.getUniformLocationNoThrow(webGLProgram, "minVal"); + this.maxLoc = gpgpu.getUniformLocationNoThrow(webGLProgram, "maxVal"); + } + gpgpu.gl.uniform1f(this.minLoc, min6); + gpgpu.gl.uniform1f(this.maxLoc, max8); + }; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/complex_abs_gpu.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class ComplexAbsProgram { + constructor(shape) { + this.variableNames = ["real", "imag"]; + this.outputShape = shape; + this.userCode = ` + void main() { + float re = abs(getRealAtOutCoords()); + float im = abs(getImagAtOutCoords()); + float mx = max(re, im); + + // sadly the length function in glsl is not underflow-safe + // (at least not on Intel GPUs). So the safe solution is + // to ensure underflow-safety in all cases. + setOutput( + mx == 0.0 ? 0.0 : mx * length(vec2(1, min(re, im)/mx)) + ); + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/concat_gpu.js + /** + * @license + * Copyright 2017 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class ConcatProgram { + constructor(shapes) { + this.outputShape = []; + this.outputShape = backend_util_exports.computeOutShape(shapes, 1); + this.variableNames = shapes.map((_, i) => `T${i}`); + const offsets = new Array(shapes.length - 1); + offsets[0] = shapes[0][1]; + for (let i = 1; i < offsets.length; i++) { + offsets[i] = offsets[i - 1] + shapes[i][1]; + } + const snippets = [`if (yC < ${offsets[0]}) setOutput(getT0(yR, yC));`]; + for (let i = 1; i < offsets.length; i++) { + const shift = offsets[i - 1]; + snippets.push(`else if (yC < ${offsets[i]}) setOutput(getT${i}(yR, yC-${shift}));`); + } + const lastIndex = offsets.length; + const lastShift = offsets[offsets.length - 1]; + snippets.push(`else setOutput(getT${lastIndex}(yR, yC-${lastShift}));`); + this.userCode = ` + void main() { + ivec2 coords = getOutputCoords(); + int yR = coords.x; + int yC = coords.y; + + ${snippets.join("\n ")} + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/concat_packed_gpu.js + /** + * @license + * Copyright 2019 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class ConcatPackedProgram { + constructor(shapes, axis) { + this.packedInputs = true; + this.packedOutput = true; + this.outputShape = []; + this.outputShape = backend_util_exports.computeOutShape(shapes, axis); + const shape = this.outputShape; + const rank = shape.length; + const dtype = getCoordsDataType(rank); + const coords2 = getChannels("coords", rank); + const channels = ["x", "y", "z", "w", "u", "v"].slice(0, rank); + this.variableNames = shapes.map((_, i) => `T${i}`); + const offsets = new Array(shapes.length - 1); + offsets[0] = shapes[0][axis]; + for (let i = 1; i < offsets.length; i++) { + offsets[i] = offsets[i - 1] + shapes[i][axis]; + } + const channel = channels[axis]; + const lastChannels = channels.slice(-2); + const allChannels = channels.join(); + let getValueSnippet = `if (${channel} < ${offsets[0]}) { + return getChannel( + getT0(${allChannels}), vec2(${lastChannels.join()})); + }`; + for (let i = 1; i < offsets.length; i++) { + const shift2 = offsets[i - 1]; + getValueSnippet += ` + if (${channel} < ${offsets[i]} && ${channel} >= ${offsets[i - 1]}) { + return getChannel( + getT${i}(${shiftedChannels(channels, channel, shift2)}), + vec2(${shiftedChannels(lastChannels, channel, shift2)})); + }`; + } + const lastIndex = offsets.length; + const shift = offsets[offsets.length - 1]; + getValueSnippet += ` + return getChannel( + getT${lastIndex}(${shiftedChannels(channels, channel, shift)}), + vec2(${shiftedChannels(lastChannels, channel, shift)}));`; + this.userCode = ` + float getValue(${channels.map((x) => "int " + x)}) { + ${getValueSnippet} + } + + void main() { + ${dtype} coords = getOutputCoords(); + vec4 result = vec4(getValue(${coords2}), 0., 0., 0.); + + ${coords2[rank - 1]} = ${coords2[rank - 1]} + 1; + if (${coords2[rank - 1]} < ${shape[rank - 1]}) { + result.g = getValue(${coords2}); + } + + ${coords2[rank - 2]} = ${coords2[rank - 2]} + 1; + if (${coords2[rank - 2]} < ${shape[rank - 2]}) { + result.a = getValue(${coords2}); + } + + ${coords2[rank - 1]} = ${coords2[rank - 1]} - 1; + if (${coords2[rank - 2]} < ${shape[rank - 2]} && + ${coords2[rank - 1]} < ${shape[rank - 1]}) { + result.b = getValue(${coords2}); + } + setOutput(result); + } + `; + } + } + function shiftedChannels(channels, channel, shift) { + const channelIdx = channels.indexOf(channel); + const res = channels.map((c, idx) => { + if (idx === channelIdx) { + return `${c} - ${shift}`; + } else { + return c; + } + }); + return res.join(); + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_backprop_gpu.js + /** + * @license + * Copyright 2017 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class Conv2DDerFilterProgram { + constructor(convInfo) { + this.variableNames = ["x", "dy"]; + this.outputShape = convInfo.filterShape; + const strideHeight = convInfo.strideHeight; + const strideWidth = convInfo.strideWidth; + const padTop = convInfo.padInfo.top; + const padLeft = convInfo.padInfo.left; + const isChannelsLast = convInfo.dataFormat === "channelsLast"; + this.userCode = ` + void main() { + ivec4 coords = getOutputCoords(); + int wR = coords.x; + int wC = coords.y; + int d1 = coords.z; + int d2 = coords.w; + + // Convolve x(?, ?, d1) with dy(:, :, d2) to get dw(wR, wC, d1, d2). + // ? = to be determined. : = across all values in that axis. + float dotProd = 0.0; + + for (int b = 0; b < ${convInfo.batchSize}; b++) { + for (int yR = 0; yR < ${convInfo.outHeight}; yR++) { + int xR = wR + yR * ${strideHeight} - ${padTop}; + + if (xR < 0 || xR >= ${convInfo.inHeight}) { + continue; + } + + for (int yC = 0; yC < ${convInfo.outWidth}; yC++) { + int xC = wC + yC * ${strideWidth} - ${padLeft}; + + if (xC < 0 || xC >= ${convInfo.inWidth}) { + continue; + } + + if (${isChannelsLast}) { + float dyValue = getDy(b, yR, yC, d2); + float xValue = getX(b, xR, xC, d1); + dotProd += (xValue * dyValue); + } else { + float dyValue = getDy(b, d2, yR, yC); + float xValue = getX(b, d1, xR, xC); + dotProd += (xValue * dyValue); + } + + } + } + } + setOutput(dotProd); + } + `; + } + } + class Conv2DDerInputProgram { + constructor(convInfo) { + this.variableNames = ["dy", "W"]; + this.outputShape = convInfo.inShape; + const filterHeight = convInfo.filterHeight; + const filterWidth = convInfo.filterWidth; + const strideHeight = convInfo.strideHeight; + const strideWidth = convInfo.strideWidth; + const isChannelsLast = convInfo.dataFormat === "channelsLast"; + const padTop = filterHeight - 1 - convInfo.padInfo.top; + const padLeft = filterWidth - 1 - convInfo.padInfo.left; + const rowDim = isChannelsLast ? 1 : 2; + const colDim = isChannelsLast ? 2 : 3; + const channelDim = isChannelsLast ? 3 : 1; + this.userCode = ` + const ivec2 pads = ivec2(${padTop}, ${padLeft}); + + void main() { + ivec4 coords = getOutputCoords(); + int batch = coords[0]; + int d1 = coords[${channelDim}]; + + ivec2 dyCorner = ivec2(coords[${rowDim}], coords[${colDim}]) - pads; + int dyRCorner = dyCorner.x; + int dyCCorner = dyCorner.y; + + // Convolve dy(?, ?, d2) with w(:, :, d1, d2) to compute dx(xR, xC, d1). + // ? = to be determined. : = across all values in that axis. + float dotProd = 0.0; + for (int wR = 0; wR < ${filterHeight}; wR++) { + float dyR = float(dyRCorner + wR) / ${strideHeight}.0; + + if (dyR < 0.0 || dyR >= ${convInfo.outHeight}.0 || fract(dyR) > 0.0) { + continue; + } + int idyR = int(dyR); + + int wRPerm = ${filterHeight} - 1 - wR; + + for (int wC = 0; wC < ${filterWidth}; wC++) { + float dyC = float(dyCCorner + wC) / ${strideWidth}.0; + + if (dyC < 0.0 || dyC >= ${convInfo.outWidth}.0 || + fract(dyC) > 0.0) { + continue; + } + int idyC = int(dyC); + + int wCPerm = ${filterWidth} - 1 - wC; + + for (int d2 = 0; d2 < ${convInfo.outChannels}; d2++) { + + if (${isChannelsLast}) { + float xValue = getDy(batch, idyR, idyC, d2); + float wValue = getW(wRPerm, wCPerm, d1, d2); + dotProd += xValue * wValue; + } else { + float xValue = getDy(batch, d2, idyR, idyC); + float wValue = getW(wRPerm, wCPerm, d1, d2); + dotProd += xValue * wValue; + } + + } + } + } + setOutput(dotProd); + } + `; + } + } + class Conv3DDerFilterProgram { + constructor(convInfo) { + this.variableNames = ["x", "dy"]; + this.outputShape = convInfo.filterShape; + const strideDepth = convInfo.strideDepth; + const strideHeight = convInfo.strideHeight; + const strideWidth = convInfo.strideWidth; + const padFront = convInfo.padInfo.front; + const padTop = convInfo.padInfo.top; + const padLeft = convInfo.padInfo.left; + this.userCode = ` + void main() { + ivec5 coords = getOutputCoords(); + int wF = coords.x; + int wR = coords.y; + int wC = coords.z; + int d1 = coords.w; + int d2 = coords.u; + + float dotProd = 0.0; + + for (int b = 0; b < ${convInfo.batchSize}; b++) { + for (int yF = 0; yF < ${convInfo.outDepth}; yF++) { + int xF = wF + yF * ${strideDepth} - ${padFront}; + + if (xF < 0 || xF >= ${convInfo.inDepth}) { + continue; + } + + for (int yR = 0; yR < ${convInfo.outHeight}; yR++) { + int xR = wR + yR * ${strideHeight} - ${padTop}; + + if (xR < 0 || xR >= ${convInfo.inHeight}) { + continue; + } + + for (int yC = 0; yC < ${convInfo.outWidth}; yC++) { + int xC = wC + yC * ${strideWidth} - ${padLeft}; + + if (xC < 0 || xC >= ${convInfo.inWidth}) { + continue; + } + + float dyValue = getDy(b, yF, yR, yC, d2); + float xValue = getX(b, xF, xR, xC, d1); + dotProd += (xValue * dyValue); + } + } + } + } + setOutput(dotProd); + } + `; + } + } + class Conv3DDerInputProgram { + constructor(convInfo) { + this.variableNames = ["dy", "W"]; + this.outputShape = convInfo.inShape; + const filterDepth = convInfo.filterDepth; + const filterHeight = convInfo.filterHeight; + const filterWidth = convInfo.filterWidth; + const strideDepth = convInfo.strideDepth; + const strideHeight = convInfo.strideHeight; + const strideWidth = convInfo.strideWidth; + const padFront = filterDepth - 1 - convInfo.padInfo.front; + const padTop = filterHeight - 1 - convInfo.padInfo.top; + const padLeft = filterWidth - 1 - convInfo.padInfo.left; + this.userCode = ` + const ivec3 pads = ivec3(${padFront}, ${padTop}, ${padLeft}); + + void main() { + ivec5 coords = getOutputCoords(); + int batch = coords.x; + int d1 = coords.u; + + + ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads; + int dyFCorner = dyCorner.x; + int dyRCorner = dyCorner.y; + int dyCCorner = dyCorner.z; + + float dotProd = 0.0; + for (int wF = 0; wF < ${filterDepth}; wF++) { + float dyF = float(dyFCorner + wF) / ${strideDepth}.0; + + if (dyF < 0.0 || dyF >= ${convInfo.outDepth}.0 || fract(dyF) > 0.0) { + continue; + } + int idyF = int(dyF); + + int wFPerm = ${filterDepth} - 1 - wF; + + for (int wR = 0; wR < ${filterHeight}; wR++) { + float dyR = float(dyRCorner + wR) / ${strideHeight}.0; + + if (dyR < 0.0 || dyR >= ${convInfo.outHeight}.0 || + fract(dyR) > 0.0) { + continue; + } + int idyR = int(dyR); + + int wRPerm = ${filterHeight} - 1 - wR; + + for (int wC = 0; wC < ${filterWidth}; wC++) { + float dyC = float(dyCCorner + wC) / ${strideWidth}.0; + + if (dyC < 0.0 || dyC >= ${convInfo.outWidth}.0 || + fract(dyC) > 0.0) { + continue; + } + int idyC = int(dyC); + + int wCPerm = ${filterWidth} - 1 - wC; + + for (int d2 = 0; d2 < ${convInfo.outChannels}; d2++) { + float xValue = getDy(batch, idyF, idyR, idyC, d2); + float wValue = getW(wFPerm, wRPerm, wCPerm, d1, d2); + dotProd += xValue * wValue; + } + } + } + } + setOutput(dotProd); + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_backprop_gpu_depthwise.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class DepthwiseConv2DDerFilterProgram { + constructor(convInfo) { + this.variableNames = ["x", "dy"]; + this.outputShape = convInfo.filterShape; + const strideHeight = convInfo.strideHeight; + const strideWidth = convInfo.strideWidth; + const padTop = convInfo.padInfo.top; + const padLeft = convInfo.padInfo.left; + const channelMul = convInfo.outChannels / convInfo.inChannels; + this.userCode = ` + void main() { + ivec4 coords = getOutputCoords(); + int wR = coords.x; + int wC = coords.y; + int d1 = coords.z; + int dm = coords.w; + int d2 = d1 * ${channelMul} + dm; + + float dotProd = 0.0; + + // TO DO: Vec4 over the batch size + for (int b = 0; b < ${convInfo.batchSize}; b++) { + for (int yR = 0; yR < ${convInfo.outHeight}; yR++) { + int xR = wR + yR * ${strideHeight} - ${padTop}; + + if (xR < 0 || xR >= ${convInfo.inHeight}) { + continue; + } + + for (int yC = 0; yC < ${convInfo.outWidth}; yC++) { + int xC = wC + yC * ${strideWidth} - ${padLeft}; + + if (xC < 0 || xC >= ${convInfo.inWidth}) { + continue; + } + + float dyValue = getDy(b, yR, yC, d2); + float xValue = getX(b, xR, xC, d1); + dotProd += (xValue * dyValue); + } + } + } + setOutput(dotProd); + } + `; + } + } + class DepthwiseConv2DDerInputProgram { + constructor(convInfo) { + this.variableNames = ["dy", "W"]; + this.outputShape = convInfo.inShape; + const filterHeight = convInfo.filterHeight; + const filterWidth = convInfo.filterWidth; + const strideHeight = convInfo.strideHeight; + const strideWidth = convInfo.strideWidth; + const padTop = filterHeight - 1 - convInfo.padInfo.top; + const padLeft = filterWidth - 1 - convInfo.padInfo.left; + const channelMul = convInfo.outChannels / convInfo.inChannels; + this.userCode = ` + const ivec2 pads = ivec2(${padTop}, ${padLeft}); + + void main() { + ivec4 coords = getOutputCoords(); + int batch = coords[0]; + int d1 = coords[3]; + ivec2 dyCorner = coords.yz - pads; + int dyRCorner = dyCorner.x; + int dyCCorner = dyCorner.y; + + float dotProd = 0.0; + + for (int wR = 0; wR < ${filterHeight}; wR++) { + float dyR = float(dyRCorner + wR) / ${strideHeight}.0; + + if (dyR < 0.0 || dyR >= ${convInfo.outHeight}.0 || fract(dyR) > 0.0) { + continue; + } + int idyR = int(dyR); + + int wRPerm = ${filterHeight} - 1 - wR; + + for (int wC = 0; wC < ${filterWidth}; wC++) { + float dyC = float(dyCCorner + wC) / ${strideWidth}.0; + + if (dyC < 0.0 || dyC >= ${convInfo.outWidth}.0 || + fract(dyC) > 0.0) { + continue; + } + int idyC = int(dyC); + + int wCPerm = ${filterWidth} - 1 - wC; + + // TO DO: Vec4 over the channelMul + for (int dm = 0; dm < ${channelMul}; dm++) { + int d2 = d1 * ${channelMul} + dm; + float xValue = getDy(batch, idyR, idyC, d2); + float wValue = getW(wRPerm, wCPerm, d1, dm); + dotProd += xValue * wValue; + } + } + } + setOutput(dotProd); + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_gpu.js + /** + * @license + * Copyright 2017 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class Conv2DProgram { + constructor(convInfo, addBias = false, activation2 = null, hasPreluActivationWeights = false) { + this.variableNames = ["x", "W"]; + this.outputShape = convInfo.outShape; + const padTop = convInfo.padInfo.top; + const padLeft = convInfo.padInfo.left; + const strideHeight = convInfo.strideHeight; + const strideWidth = convInfo.strideWidth; + const dilationHeight = convInfo.dilationHeight; + const dilationWidth = convInfo.dilationWidth; + const filterHeight = convInfo.filterHeight; + const filterWidth = convInfo.filterWidth; + const inputDepthNearestVec4 = Math.floor(convInfo.inChannels / 4) * 4; + const inputDepthVec4Remainder = convInfo.inChannels % 4; + const isChannelsLast = convInfo.dataFormat === "channelsLast"; + const rowDim = isChannelsLast ? 1 : 2; + const colDim = isChannelsLast ? 2 : 3; + const channelDim = isChannelsLast ? 3 : 1; + let activationSnippet = "", applyActivationSnippet = ""; + if (activation2) { + if (hasPreluActivationWeights) { + activationSnippet = `float activation(float a) { + float b = getPreluActivationWeightsAtOutCoords(); + ${activation2} + }`; + } else { + activationSnippet = ` + float activation(float x) { + ${activation2} + } + `; + } + applyActivationSnippet = `result = activation(result);`; + } + const addBiasSnippet = addBias ? "result += getBiasAtOutCoords();" : ""; + if (addBias) { + this.variableNames.push("bias"); + } + if (hasPreluActivationWeights) { + this.variableNames.push("preluActivationWeights"); + } + this.userCode = ` + ${activationSnippet} + + const ivec2 strides = ivec2(${strideHeight}, ${strideWidth}); + const ivec2 pads = ivec2(${padTop}, ${padLeft}); + + void main() { + ivec4 coords = getOutputCoords(); + int batch = coords[0]; + int d2 = coords[${channelDim}]; + + ivec2 xRCCorner = + ivec2(coords[${rowDim}], coords[${colDim}]) * strides - pads; + int xRCorner = xRCCorner.x; + int xCCorner = xRCCorner.y; + + // Convolve x(?, ?, d1) with w(:, :, d1, d2) to get y(yR, yC, d2). + // ? = to be determined. : = across all values in that axis. + float dotProd = 0.0; + for (int wR = 0; wR < ${filterHeight}; wR++) { + int xR = xRCorner + wR * ${dilationHeight}; + + if (xR < 0 || xR >= ${convInfo.inHeight}) { + continue; + } + + for (int wC = 0; wC < ${filterWidth}; wC++) { + int xC = xCCorner + wC * ${dilationWidth}; + + if (xC < 0 || xC >= ${convInfo.inWidth}) { + continue; + } + + for (int d1 = 0; d1 < ${inputDepthNearestVec4}; d1 += 4) { + vec4 wValues = vec4( + getW(wR, wC, d1, d2), + getW(wR, wC, d1 + 1, d2), + getW(wR, wC, d1 + 2, d2), + getW(wR, wC, d1 + 3, d2) + ); + + if (${isChannelsLast}) { + vec4 xValues = vec4( + getX(batch, xR, xC, d1), + getX(batch, xR, xC, d1 + 1), + getX(batch, xR, xC, d1 + 2), + getX(batch, xR, xC, d1 + 3) + ); + dotProd += dot(xValues, wValues); + } else { + vec4 xValues = vec4( + getX(batch, d1, xR, xC), + getX(batch, d1 + 1, xR, xC), + getX(batch, d1 + 2, xR, xC), + getX(batch, d1 + 3, xR, xC) + ); + dotProd += dot(xValues, wValues); + } + } + + if (${inputDepthVec4Remainder === 1}) { + + if (${isChannelsLast}) { + dotProd += + getX(batch, xR, xC, ${inputDepthNearestVec4}) * + getW(wR, wC, ${inputDepthNearestVec4}, d2); + } else { + dotProd += + getX(batch, ${inputDepthNearestVec4}, xR, xC) * + getW(wR, wC, ${inputDepthNearestVec4}, d2); + } + + } else if (${inputDepthVec4Remainder === 2}) { + vec2 wValues = vec2( + getW(wR, wC, ${inputDepthNearestVec4}, d2), + getW(wR, wC, ${inputDepthNearestVec4} + 1, d2) + ); + + if (${isChannelsLast}) { + vec2 xValues = vec2( + getX(batch, xR, xC, ${inputDepthNearestVec4}), + getX(batch, xR, xC, ${inputDepthNearestVec4} + 1) + ); + dotProd += dot(xValues, wValues); + } else { + vec2 xValues = vec2( + getX(batch, ${inputDepthNearestVec4}, xR, xC), + getX(batch, ${inputDepthNearestVec4} + 1, xR, xC) + ); + dotProd += dot(xValues, wValues); + } + + } else if (${inputDepthVec4Remainder === 3}) { + vec3 wValues = vec3( + getW(wR, wC, ${inputDepthNearestVec4}, d2), + getW(wR, wC, ${inputDepthNearestVec4} + 1, d2), + getW(wR, wC, ${inputDepthNearestVec4} + 2, d2) + ); + + if (${isChannelsLast}) { + vec3 xValues = vec3( + getX(batch, xR, xC, ${inputDepthNearestVec4}), + getX(batch, xR, xC, ${inputDepthNearestVec4} + 1), + getX(batch, xR, xC, ${inputDepthNearestVec4} + 2) + ); + dotProd += dot(xValues, wValues); + } else { + vec3 xValues = vec3( + getX(batch, ${inputDepthNearestVec4}, xR, xC), + getX(batch, ${inputDepthNearestVec4} + 1, xR, xC), + getX(batch, ${inputDepthNearestVec4} + 2, xR, xC) + ); + dotProd += dot(xValues, wValues); + } + + } + } + } + + float result = dotProd; + ${addBiasSnippet} + ${applyActivationSnippet} + setOutput(result); + } + `; + } + } + class Conv3DProgram { + constructor(convInfo) { + this.variableNames = ["x", "W"]; + this.outputShape = convInfo.outShape; + const padFront = convInfo.padInfo.front; + const padTop = convInfo.padInfo.top; + const padLeft = convInfo.padInfo.left; + const strideDepth = convInfo.strideDepth; + const strideHeight = convInfo.strideHeight; + const strideWidth = convInfo.strideWidth; + const dilationDepth = convInfo.dilationDepth; + const dilationHeight = convInfo.dilationHeight; + const dilationWidth = convInfo.dilationWidth; + const filterDepth = convInfo.filterDepth; + const filterHeight = convInfo.filterHeight; + const filterWidth = convInfo.filterWidth; + const inputDepthNearestVec4 = Math.floor(convInfo.inChannels / 4) * 4; + const inputDepthVec4Remainder = convInfo.inChannels % 4; + this.userCode = ` + const ivec3 strides = ivec3(${strideDepth}, ${strideHeight}, ${strideWidth}); + const ivec3 pads = ivec3(${padFront}, ${padTop}, ${padLeft}); + + void main() { + ivec5 coords = getOutputCoords(); + int batch = coords.x; + int d2 = coords.u; + + ivec3 xFRCCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads; + int xFCorner = xFRCCorner.x; + int xRCorner = xFRCCorner.y; + int xCCorner = xFRCCorner.z; + + // Convolve x(?, ?, ?, d1) with w(:, :, :, d1, d2) to get + // y(yF, yR, yC, d2). ? = to be determined. : = across all + // values in that axis. + float dotProd = 0.0; + for (int wF = 0; wF < ${filterDepth}; wF++) { + int xF = xFCorner + wF * ${dilationDepth}; + + if (xF < 0 || xF >= ${convInfo.inDepth}) { + continue; + } + + for (int wR = 0; wR < ${filterHeight}; wR++) { + int xR = xRCorner + wR * ${dilationHeight}; + + if (xR < 0 || xR >= ${convInfo.inHeight}) { + continue; + } + + for (int wC = 0; wC < ${filterWidth}; wC++) { + int xC = xCCorner + wC * ${dilationWidth}; + + if (xC < 0 || xC >= ${convInfo.inWidth}) { + continue; + } + + for (int d1 = 0; d1 < ${inputDepthNearestVec4}; d1 += 4) { + vec4 xValues = vec4( + getX(batch, xF, xR, xC, d1), + getX(batch, xF, xR, xC, d1 + 1), + getX(batch, xF, xR, xC, d1 + 2), + getX(batch, xF, xR, xC, d1 + 3) + ); + vec4 wValues = vec4( + getW(wF, wR, wC, d1, d2), + getW(wF, wR, wC, d1 + 1, d2), + getW(wF, wR, wC, d1 + 2, d2), + getW(wF, wR, wC, d1 + 3, d2) + ); + + dotProd += dot(xValues, wValues); + } + + if (${inputDepthVec4Remainder === 1}) { + dotProd += + getX(batch, xF, xR, xC, ${inputDepthNearestVec4}) * + getW(wF, wR, wC, ${inputDepthNearestVec4}, d2); + } else if (${inputDepthVec4Remainder === 2}) { + vec2 xValues = vec2( + getX(batch, xF, xR, xC, ${inputDepthNearestVec4}), + getX(batch, xF, xR, xC, ${inputDepthNearestVec4} + 1) + ); + vec2 wValues = vec2( + getW(wF, wR, wC, ${inputDepthNearestVec4}, d2), + getW(wF, wR, wC, ${inputDepthNearestVec4} + 1, d2) + ); + dotProd += dot(xValues, wValues); + } else if (${inputDepthVec4Remainder === 3}) { + vec3 xValues = vec3( + getX(batch, xF, xR, xC, ${inputDepthNearestVec4}), + getX(batch, xF, xR, xC, ${inputDepthNearestVec4} + 1), + getX(batch, xF, xR, xC, ${inputDepthNearestVec4} + 2) + ); + vec3 wValues = vec3( + getW(wF, wR, wC, ${inputDepthNearestVec4}, d2), + getW(wF, wR, wC, ${inputDepthNearestVec4} + 1, d2), + getW(wF, wR, wC, ${inputDepthNearestVec4} + 2, d2) + ); + dotProd += dot(xValues, wValues); + } + } + } + } + setOutput(dotProd); + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_gpu_depthwise.js + /** + * @license + * Copyright 2017 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class DepthwiseConv2DProgram { + constructor(convInfo, addBias = false, activation2 = null, hasPreluActivation = false) { + this.variableNames = ["x", "W"]; + this.outputShape = convInfo.outShape; + const xNumRows = convInfo.inHeight; + const xNumCols = convInfo.inWidth; + const padTop = convInfo.padInfo.top; + const padLeft = convInfo.padInfo.left; + const strideHeight = convInfo.strideHeight; + const strideWidth = convInfo.strideWidth; + const dilationHeight = convInfo.dilationHeight; + const dilationWidth = convInfo.dilationWidth; + const filterHeight = convInfo.filterHeight; + const filterWidth = convInfo.filterWidth; + const channelMul = convInfo.outChannels / convInfo.inChannels; + let activationSnippet = "", applyActivationSnippet = ""; + if (activation2) { + if (hasPreluActivation) { + activationSnippet = `float activation(float a) { + float b = getPreluActivationWeightsAtOutCoords(); + ${activation2} + }`; + } else { + activationSnippet = ` + float activation(float x) { + ${activation2} + } + `; + } + applyActivationSnippet = `result = activation(result);`; + } + const addBiasSnippet = addBias ? "result += getBiasAtOutCoords();" : ""; + if (addBias) { + this.variableNames.push("bias"); + } + if (hasPreluActivation) { + this.variableNames.push("preluActivationWeights"); + } + this.userCode = ` + ${activationSnippet} + + const ivec2 strides = ivec2(${strideHeight}, ${strideWidth}); + const ivec2 pads = ivec2(${padTop}, ${padLeft}); + + void main() { + ivec4 coords = getOutputCoords(); + int batch = coords.x; + ivec2 xRCCorner = coords.yz * strides - pads; + int d2 = coords.w; + int d1 = d2 / ${channelMul}; + int q = d2 - d1 * ${channelMul}; + + int xRCorner = xRCCorner.x; + int xCCorner = xRCCorner.y; + + // Convolve x(?, ?, d1) with w(:, :, d1, q) to get y(yR, yC, d2). + // ? = to be determined. : = across all values in that axis. + float dotProd = 0.0; + // TO DO(dsmilkov): Flatten the two for loops and vec4 the operations. + for (int wR = 0; wR < ${filterHeight}; wR++) { + int xR = xRCorner + wR * ${dilationHeight}; + + if (xR < 0 || xR >= ${xNumRows}) { + continue; + } + + for (int wC = 0; wC < ${filterWidth}; wC++) { + int xC = xCCorner + wC * ${dilationWidth}; + + if (xC < 0 || xC >= ${xNumCols}) { + continue; + } + + float xVal = getX(batch, xR, xC, d1); + float wVal = getW(wR, wC, d1, q); + dotProd += xVal * wVal; + } + } + + float result = dotProd; + ${addBiasSnippet} + ${applyActivationSnippet} + setOutput(result); + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_packed_gpu_depthwise.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class DepthwiseConvPacked2DProgram { + constructor(convInfo, addBias = false, activation2 = null, hasPreluActivation = false) { + this.variableNames = ["x", "W"]; + this.packedInputs = true; + this.packedOutput = true; + this.outputShape = convInfo.outShape; + const xNumRows = convInfo.inHeight; + const xNumCols = convInfo.inWidth; + const padTop = convInfo.padInfo.top; + const padLeft = convInfo.padInfo.left; + const strideHeight = convInfo.strideHeight; + const strideWidth = convInfo.strideWidth; + const dilationHeight = convInfo.dilationHeight; + const dilationWidth = convInfo.dilationWidth; + const filterHeight = convInfo.filterHeight; + const filterWidth = convInfo.filterWidth; + const texelsAcross = filterWidth; + let mainLoop = `int xR; int xC; int xCOffset;`; + for (let r = 0; r < filterHeight; r++) { + for (let c = 0; c < filterWidth; c++) { + mainLoop += ` + vec4 xTexelR${r}C${c * 2} = vec4(0.); + vec4 wR${r}C${c} = vec4(0.); + vec4 xR${r}C${c} = vec4(0.);`; + } + } + for (let r = 0; r < filterHeight; r++) { + for (let texelC = 0; texelC < texelsAcross; texelC++) { + const c = texelC * 2; + mainLoop += ` + xR = xRCorner + ${r * dilationHeight}; + xC = xCCorner + ${c * dilationWidth}; + `; + if (strideWidth === 1) { + if (c < filterWidth) { + if (padLeft % 2 === 1) { + mainLoop += ` + xCOffset = xC + 1; + if(xR >= 0 && xR < ${xNumRows} && xCOffset >= 0 && xCOffset < ${xNumCols}) { + xTexelR${r}C${c} = getX(batch, xR, xCOffset, d1); + + // Need to manually clear unused channels in case + // we're reading from recycled texture. + if(xCOffset + 1 >= ${xNumCols}) { + xTexelR${r}C${c}.zw = vec2(0.); + } + } else { + xTexelR${r}C${c} = vec4(0.); + } + + xCOffset = xC + 1 - 2; + if(xR >= 0 && xR < ${xNumRows} && xCOffset >= 0 && xCOffset < ${xNumCols}) { + vec4 previous = getX(batch, xR, xCOffset, d1); + + // Need to manually clear unused channels in case + // we're reading from recycled texture. + if(xCOffset + 1 >= ${xNumCols}) { + previous.zw = vec2(0.); + } + + xR${r}C${c} = vec4(previous.zw, xTexelR${r}C${c}.xy); + } else { + xR${r}C${c} = vec4(0, 0, xTexelR${r}C${c}.xy); + } + `; + } else { + mainLoop += ` + if(xR >= 0 && xR < ${xNumRows} && xC >= 0 && xC < ${xNumCols}) { + xTexelR${r}C${c} = getX(batch, xR, xC, d1); + } else { + xTexelR${r}C${c} = vec4(0.); + } + + xR${r}C${c} = xTexelR${r}C${c}; + `; + } + if (c + 1 < filterWidth) { + const nextTexelOffset = padLeft % 2 === 0 ? util_exports.nearestLargerEven(dilationWidth) : dilationWidth; + if (dilationWidth % 2 === 0 && padLeft % 2 === 1 || dilationWidth % 2 !== 0 && padLeft % 2 !== 1) { + mainLoop += ` + xCOffset = xC + ${padLeft % 2} + ${nextTexelOffset}; + + if(xR >= 0 && xR < ${xNumRows} && + xCOffset >= 0 && xCOffset < ${xNumCols}) { + xTexelR${r}C${c + 2} = getX(batch, xR, xCOffset, d1); + } + `; + if (dilationWidth > 1) { + mainLoop += ` + xCOffset -= 2; + if(xR >= 0 && xR < ${xNumRows} && + xCOffset >= 0 && xCOffset < ${xNumCols}) { + xTexelR${r}C${c} = getX(batch, xR, xCOffset, d1); + } else { + xTexelR${r}C${c} = vec4(0.); + } + `; + } + mainLoop += ` + xR${r}C${c + 1} = vec4( + xTexelR${r}C${c}.zw, xTexelR${r}C${c + 2}.xy); + `; + } else { + mainLoop += ` + xCOffset = xC + ${nextTexelOffset}; + + if(xR >= 0 && xR < ${xNumRows} && + xCOffset >= 0 && xCOffset < ${xNumCols}) { + xTexelR${r}C${c + 2} = getX(batch, xR, xCOffset, d1); + } + + xR${r}C${c + 1} = xTexelR${r}C${c + 2}; + `; + } + } + } + } else { + if (c < filterWidth) { + mainLoop += ` + if(xR >= 0 && xR < ${xNumRows}) { + `; + if (padLeft % 2 === 1) { + mainLoop += ` + xCOffset = xC + 1 - ${strideWidth}; + if(xCOffset >= 0 && xCOffset < ${xNumCols}) { + xTexelR${r}C${c} = getX(batch, xR, xCOffset, d1); + } else { + xTexelR${r}C${c} = vec4(0.); + } + + if(xC + 1 >= 0 && xC + 1 < ${xNumCols}) { + xTexelR${r}C${c + 2} = getX(batch, xR, xC + 1, d1); + } else { + xTexelR${r}C${c + 2} = vec4(0.); + } + + xR${r}C${c} = vec4( + xTexelR${r}C${c}.zw, xTexelR${r}C${c + 2}.zw); + `; + if (c + 1 < filterWidth) { + mainLoop += ` + vec4 final = vec4(0.); + xCOffset = xC + 1 + ${strideWidth}; + if(xCOffset >= 0 && xCOffset < ${xNumCols}) { + final = getX(batch, xR, xCOffset, d1); + } + xR${r}C${c + 1} = vec4(xTexelR${r}C${c + 2}.xy, final.xy); + `; + } + } else { + mainLoop += ` + if(xC >= 0 && xC < ${xNumCols}) { + xTexelR${r}C${c} = getX(batch, xR, xC, d1); + } else { + xTexelR${r}C${c} = vec4(0.); + } + + xCOffset = xC + ${strideWidth}; + if(xCOffset >= 0 && xCOffset < ${xNumCols}) { + xTexelR${r}C${c + 2} = getX(batch, xR, xCOffset, d1); + } else { + xTexelR${r}C${c + 2} = vec4(0.); + } + + xR${r}C${c} = vec4( + xTexelR${r}C${c}.xy, xTexelR${r}C${c + 2}.xy); + `; + if (c + 1 < filterWidth) { + mainLoop += ` + xR${r}C${c + 1} = vec4( + xTexelR${r}C${c}.zw, xTexelR${r}C${c + 2}.zw); + `; + } + } + mainLoop += `}`; + } + } + if (c < filterWidth) { + mainLoop += ` + vec4 wTexelR${r}C${c} = getW(${r}, ${c}, d1, q); + wR${r}C${c} = vec4(wTexelR${r}C${c}.xz, wTexelR${r}C${c}.xz); + `; + if (c + 1 < filterWidth) { + mainLoop += ` + vec4 wTexelR${r}C${c + 1} = getW(${r}, ${c + 1}, d1, q); + wR${r}C${c + 1} = + vec4(wTexelR${r}C${c + 1}.xz, wTexelR${r}C${c + 1}.xz);`; + } + } + } + } + for (let r = 0; r < filterHeight; r++) { + for (let c = 0; c < filterWidth; c++) { + mainLoop += `dotProd += xR${r}C${c} * wR${r}C${c};`; + } + } + let activationSnippet = "", applyActivationSnippet = ""; + if (activation2) { + if (hasPreluActivation) { + activationSnippet = `vec4 activation(vec4 a) { + vec4 b = getPreluActivationWeightsAtOutCoords(); + ${activation2} + }`; + } else { + activationSnippet = `vec4 activation(vec4 x) { + ${activation2} + }`; + } + applyActivationSnippet = `result = activation(result);`; + } + const addBiasSnippet = addBias ? "result += getBiasAtOutCoords();" : ""; + if (addBias) { + this.variableNames.push("bias"); + } + if (hasPreluActivation) { + this.variableNames.push("preluActivationWeights"); + } + this.userCode = ` + ${activationSnippet} + + const ivec2 strides = ivec2(${strideHeight}, ${strideWidth}); + const ivec2 pads = ivec2(${padTop}, ${padLeft}); + + void main() { + + ivec4 coords = getOutputCoords(); + int batch = coords.x; + ivec2 xRCCorner = coords.yz * strides - pads; + int d2 = coords.w; + int d1 = d2; + int q = 0; + int xRCorner = xRCCorner.x; + int xCCorner = xRCCorner.y; + + vec4 dotProd = vec4(0.); + + ${mainLoop} + + vec4 result = dotProd; + ${addBiasSnippet} + ${applyActivationSnippet} + setOutput(result); + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/crop_and_resize_gpu.js + /** + * @license + * Copyright 2017 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class CropAndResizeProgram { + constructor(imageShape, boxShape, cropSize, method, extrapolationValue) { + this.variableNames = ["Image", "Boxes", "BoxInd"]; + this.outputShape = []; + const [batch, imageHeight, imageWidth, depth] = imageShape; + const [numBoxes] = boxShape; + const [cropHeight, cropWidth] = cropSize; + this.outputShape = [numBoxes, cropHeight, cropWidth, depth]; + const methodId = method === "bilinear" ? 1 : 0; + const [inputHeightFloat, inputWidthFloat] = [`${imageHeight - 1}.0`, `${imageWidth - 1}.0`]; + const [heightRatio, heightScale, inY] = cropHeight > 1 ? [ + `${(imageHeight - 1) / (cropHeight - 1)}`, + "(y2-y1) * height_ratio", + `y1*${inputHeightFloat} + float(y)*(height_scale)` + ] : [ + "0.0", + "0.0", + `0.5 * (y1+y2) * ${inputHeightFloat}` + ]; + const [widthRatio, widthScale, inX] = cropWidth > 1 ? [ + `${(imageWidth - 1) / (cropWidth - 1)}`, + "(x2-x1) * width_ratio", + `x1*${inputWidthFloat} + float(x)*(width_scale)` + ] : [ + "0.0", + "0.0", + `0.5 * (x1+x2) * ${inputWidthFloat}` + ]; + this.userCode = ` + const float height_ratio = float(${heightRatio}); + const float width_ratio = float(${widthRatio}); + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int y = coords[1]; + int x = coords[2]; + int d = coords[3]; + + // get box vals + float y1 = getBoxes(b,0); + float x1 = getBoxes(b,1); + float y2 = getBoxes(b,2); + float x2 = getBoxes(b,3); + + // get image in batch index + int bInd = round(getBoxInd(b)); + if(bInd < 0 || bInd >= ${batch}) { + return; + } + + float height_scale = ${heightScale}; + float width_scale = ${widthScale}; + + float in_y = ${inY}; + if( in_y < 0.0 || in_y > ${inputHeightFloat} ) { + setOutput(float(${extrapolationValue})); + return; + } + float in_x = ${inX}; + if( in_x < 0.0 || in_x > ${inputWidthFloat} ) { + setOutput(float(${extrapolationValue})); + return; + } + + vec2 sourceFracIndexCR = vec2(in_x,in_y); + if(${methodId} == 1) { + // Compute the four integer indices. + ivec2 sourceFloorCR = ivec2(sourceFracIndexCR); + ivec2 sourceCeilCR = ivec2(ceil(sourceFracIndexCR)); + + float topLeft = getImage(b, sourceFloorCR.y, sourceFloorCR.x, d); + float bottomLeft = getImage(b, sourceCeilCR.y, sourceFloorCR.x, d); + float topRight = getImage(b, sourceFloorCR.y, sourceCeilCR.x, d); + float bottomRight = getImage(b, sourceCeilCR.y, sourceCeilCR.x, d); + + vec2 fracCR = sourceFracIndexCR - vec2(sourceFloorCR); + + float top = topLeft + (topRight - topLeft) * fracCR.x; + float bottom = bottomLeft + (bottomRight - bottomLeft) * fracCR.x; + float newValue = top + (bottom - top) * fracCR.y; + setOutput(newValue); + } else { + // Compute the coordinators of nearest neighbor point. + ivec2 sourceNearestCR = ivec2(floor( + sourceFracIndexCR + vec2(0.5,0.5))); + float newValue = getImage(b, sourceNearestCR.y, sourceNearestCR.x, d); + setOutput(newValue); + } + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/cumsum_gpu.js + class CumSumProgram { + constructor(shape, exclusive, reverse9) { + this.variableNames = ["x"]; + this.outputShape = shape; + const rank = shape.length; + const val = exclusive ? "0.0" : `getX(${getCoords(rank, "coords")})`; + const length = shape[shape.length - 1]; + let condition = ""; + let idxString = ""; + if (exclusive) { + condition = reverse9 ? `end != ${length - 1}` : "end != 0"; + idxString = reverse9 ? "end + 1" : "end - 1"; + } else { + condition = reverse9 ? `end + pow2 < ${length}` : "end >= pow2"; + idxString = reverse9 ? "end + pow2" : "end - pow2"; + } + this.userCode = ` + uniform float index; + void main() { + ${getCoordsDataType(rank)} coords = getOutputCoords(); + int end = ${getFinalCoord(rank, "coords")}; + float val = ${val}; + int pow2 = int(pow(2.0, index)); + if (${condition}) { + int idx = ${idxString}; + ${getFinalCoord(rank, "coords")} = idx; + val += getX(${getCoords(rank, "coords")}); + } + setOutput(val); + } + `; + } + getCustomSetupFunc(index) { + return (gpgpu, webGLProgram) => { + if (this.index == null) { + this.index = gpgpu.getUniformLocation(webGLProgram, "index"); + } + gpgpu.gl.uniform1f(this.index, index); + }; + } + } + function getCoords(rank, name) { + if (rank === 1) { + return `${name}`; + } else if (rank === 2) { + return `${name}.x, ${name}.y`; + } else if (rank === 3) { + return `${name}.x, ${name}.y, ${name}.z`; + } else if (rank === 4) { + return `${name}.x, ${name}.y, ${name}.z, ${name}.w`; + } else { + throw Error(`Cumulative sum for rank ${rank} is not yet supported`); + } + } + function getFinalCoord(rank, name) { + if (rank === 1) { + return `${name}`; + } else if (rank === 2) { + return `${name}.y`; + } else if (rank === 3) { + return `${name}.z`; + } else if (rank === 4) { + return `${name}.w`; + } else { + throw Error(`Cumulative sum for rank ${rank} is not yet supported`); + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/decode_matrix_gpu.js + /** + * @license + * Copyright 2019 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class DecodeMatrixProgram { + constructor(outputShape) { + this.variableNames = ["A"]; + this.packedInputs = false; + this.packedOutput = true; + this.outPackingScheme = PackingScheme.DENSE; + const texShape = getDenseTexShape(outputShape); + const glsl = getGlslDifferences(); + this.outputShape = outputShape; + this.userCode = ` + ivec3 outCoordsFromFlatIndex(int index) { + ${getLogicalCoordinatesFromFlatIndex(["r", "c", "d"], outputShape)} + return ivec3(r, c, d); + } + + void main() { + ivec2 resTexRC = ivec2(resultUV.yx * + vec2(${texShape[0]}, ${texShape[1]})); + int index = 4 * (resTexRC.x * ${texShape[1]} + resTexRC.y); + + vec4 result = vec4(0.); + + for (int i=0; i<4; i++) { + int flatIndex = index + i; + ivec3 rc = outCoordsFromFlatIndex(flatIndex); + result[i] = getA(rc.x, rc.y, rc.z); + } + + ${glsl.output} = result; + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/decode_matrix_packed_gpu.js + /** + * @license + * Copyright 2019 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class DecodeMatrixPackedProgram { + constructor(outputShape) { + this.variableNames = ["A"]; + this.packedInputs = true; + this.packedOutput = true; + this.outPackingScheme = PackingScheme.DENSE; + const texShape = getDenseTexShape(outputShape); + const glsl = getGlslDifferences(); + this.outputShape = outputShape; + this.userCode = ` + ivec3 outCoordsFromFlatIndex(int index) { + ${getLogicalCoordinatesFromFlatIndex(["r", "c", "d"], outputShape)} + return ivec3(r, c, d); + } + + void main() { + ivec2 resTexRC = ivec2(resultUV.yx * + vec2(${texShape[0]}, ${texShape[1]})); + int index = 4 * (resTexRC.x * ${texShape[1]} + resTexRC.y); + + vec4 result = vec4(0.); + + for (int i=0; i<4; i++) { + int flatIndex = index + i; + ivec3 rc = outCoordsFromFlatIndex(flatIndex); + result[i] = getChannel(getA(rc.x, rc.y, rc.z), vec2(rc.y, rc.z)); + } + + ${glsl.output} = result; + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/depth_to_space_gpu.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class DepthToSpaceProgram { + constructor(outputShape, blockSize, dataFormat) { + this.variableNames = ["x"]; + this.outputShape = []; + this.outputShape = outputShape; + this.blockSize = blockSize; + this.dataFormat = dataFormat; + this.userCode = ` + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int h = ${this.getHeightCoordString()}; + int w = ${this.getWidthCoordString()}; + int d = ${this.getDepthCoordString()}; + + int in_h = h / ${blockSize}; + int offset_h = imod(h, ${blockSize}); + int in_w = w / ${blockSize}; + int offset_w = imod(w, ${blockSize}); + int offset_d = (offset_h * ${blockSize} + offset_w) * + ${this.getOutputDepthSize()}; + int in_d = d + offset_d; + + float result = ${this.getInputSamplingString()}; + setOutput(result); + } + `; + } + getHeightCoordString() { + if (this.dataFormat === "NHWC") { + return `coords[1]`; + } else { + return `coords[2]`; + } + } + getWidthCoordString() { + if (this.dataFormat === "NHWC") { + return `coords[2]`; + } else { + return `coords[3]`; + } + } + getDepthCoordString() { + if (this.dataFormat === "NHWC") { + return `coords[3]`; + } else { + return `coords[1]`; + } + } + getOutputDepthSize() { + if (this.dataFormat === "NHWC") { + return this.outputShape[3]; + } else { + return this.outputShape[1]; + } + } + getInputSamplingString() { + if (this.dataFormat === "NHWC") { + return `getX(b, in_h, in_w, in_d)`; + } else { + return `getX(b, in_d, in_h, in_w)`; + } + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/diag_gpu.js + /** + * @license + * Copyright 2019 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class DiagProgram { + constructor(size) { + this.variableNames = ["X"]; + this.outputShape = [size, size]; + this.userCode = ` + void main() { + ivec2 coords = getOutputCoords(); + float val = coords[0] == coords[1] ? getX(coords[0]) : 0.0; + setOutput(val); + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/encode_float_gpu.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class EncodeFloatProgram { + constructor(outputShape) { + this.variableNames = ["A"]; + this.outTexUsage = TextureUsage.DOWNLOAD; + const glsl = getGlslDifferences(); + this.outputShape = outputShape; + this.userCode = ` + ${ENCODE_FLOAT_SNIPPET} + + void main() { + float x = getAAtOutCoords(); + ${glsl.output} = encode_float(x); + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/encode_float_packed_gpu.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class EncodeFloatPackedProgram { + constructor(outputShape) { + this.variableNames = ["A"]; + this.packedInputs = true; + this.packedOutput = false; + this.outTexUsage = TextureUsage.DOWNLOAD; + const glsl = getGlslDifferences(); + this.outputShape = outputShape; + this.userCode = ` + ${ENCODE_FLOAT_SNIPPET} + + void main() { + ivec3 coords = getOutputCoords(); + float x = getChannel(getAAtOutCoords(), vec2(coords.y, coords.z)); + ${glsl.output} = encode_float(x); + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/encode_matrix_gpu.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class EncodeMatrixProgram { + constructor(outputShape, texShape, inputIsUnsignedByte = false) { + this.variableNames = ["A"]; + const glsl = getGlslDifferences(); + const [height, width] = texShape; + this.outputShape = outputShape; + let output = `result`; + if (inputIsUnsignedByte) { + output = `floor(result * 255. + 0.5)`; + } + this.userCode = ` + ${getFlatIndexFrom3D(outputShape)} + + void main() { + ivec3 coords = getOutputCoords(); + + int flatIndex = getFlatIndex(coords); + int offset = imod(flatIndex, 4); + + flatIndex = idiv(flatIndex, 4, 1.); + + int r = flatIndex / ${width}; + int c = imod(flatIndex, ${width}); + vec2 uv = (vec2(c, r) + halfCR) / vec2(${width}.0, ${height}.0); + vec4 values = ${glsl.texture2D}(A, uv); + + float result; + + if(offset == 0) { + result = values[0]; + } else if(offset == 1) { + result = values[1]; + } else if(offset == 2) { + result = values[2]; + } else { + result = values[3]; + } + + ${glsl.output} = vec4(${output}, 0., 0., 0.); + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/encode_matrix_packed_gpu.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class EncodeMatrixPackedProgram { + constructor(outputShape, texShape, inputIsUnsignedByte = false) { + this.variableNames = ["A"]; + this.packedInputs = false; + this.packedOutput = true; + const glsl = getGlslDifferences(); + const [height, width] = texShape; + this.outputShape = outputShape; + let mainLoop = ""; + let output = "result"; + if (inputIsUnsignedByte) { + output = "floor(result * 255. + 0.5)"; + } + for (let row = 0; row <= 1; row++) { + for (let col = 0; col <= 1; col++) { + const channel = row * 2 + col; + mainLoop += ` + localCoords = coords; + if(localCoords[2] + ${col} < ${outputShape[2]}) { + localCoords[2] += ${col}; + if(localCoords[1] + ${row} < ${outputShape[1]}) { + localCoords[1] += ${row}; + + flatIndex = getFlatIndex(localCoords); + offset = imod(flatIndex, 4); + + flatIndex = idiv(flatIndex, 4, 1.); + + r = flatIndex / ${width}; + c = imod(flatIndex, ${width}); + uv = (vec2(c, r) + halfCR) / vec2(${width}.0, ${height}.0); + values = ${glsl.texture2D}(A, uv); + + if(offset == 0) { + result[${channel}] = values[0]; + } else if(offset == 1) { + result[${channel}] = values[1]; + } else if(offset == 2) { + result[${channel}] = values[2]; + } else { + result[${channel}] = values[3]; + } + } + } + `; + } + } + this.userCode = ` + ${getFlatIndexFrom3D(outputShape)} + + void main() { + ivec3 coords = getOutputCoords(); + + vec4 result = vec4(0.); + int flatIndex, r, c, offset; + ivec3 localCoords; + vec2 uv; + vec4 values; + + ${mainLoop} + + ${glsl.output} = ${output}; + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/fft_gpu.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const COMPLEX_FFT = { + REAL: "return real * expR - imag * expI;", + IMAG: "return real * expI + imag * expR;" + }; + class FFTProgram { + constructor(op2, inputShape, inverse) { + this.variableNames = ["real", "imag"]; + const innerDim = inputShape[1]; + this.outputShape = inputShape; + const exponentMultiplierSnippet = inverse ? `2.0 * ${Math.PI}` : `-2.0 * ${Math.PI}`; + const resultDenominator = inverse ? `${innerDim}.0` : "1.0"; + this.userCode = ` + const float exponentMultiplier = ${exponentMultiplierSnippet}; + + float unaryOpComplex(float real, float expR, float imag, float expI) { + ${op2} + } + + float mulMatDFT(int batch, int index) { + float indexRatio = float(index) / float(${innerDim}); + float exponentMultiplierTimesIndexRatio = + exponentMultiplier * indexRatio; + + float result = 0.0; + + for (int i = 0; i < ${innerDim}; i++) { + // x = (-2|2 * PI / N) * index * i; + float x = exponentMultiplierTimesIndexRatio * float(i); + float expR = cos(x); + float expI = sin(x); + float real = getReal(batch, i); + float imag = getImag(batch, i); + + result += + unaryOpComplex(real, expR, imag, expI) / ${resultDenominator}; + } + + return result; + } + + void main() { + ivec2 coords = getOutputCoords(); + setOutput(mulMatDFT(coords[0], coords[1])); + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/fill_gpu.js + /** + * @license + * Copyright 2019 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class FillProgram { + constructor(shape, value) { + this.outputShape = []; + this.variableNames = ["x"]; + this.outputShape = shape; + this.userCode = ` + uniform float value; + void main() { + // Input can be obtained from uniform value. + setOutput(value); + } + `; + } + getCustomSetupFunc(value) { + return (gpgpu, webGLProgram) => { + if (this.valueLoc == null) { + this.valueLoc = gpgpu.getUniformLocationNoThrow(webGLProgram, "value"); + } + gpgpu.gl.uniform1f(this.valueLoc, value); + }; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/gather_gpu.js + /** + * @license + * Copyright 2017 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class GatherProgram { + constructor(aShape, indicesLength, axis) { + this.variableNames = ["A", "indices"]; + const outputShape = aShape.slice(); + outputShape[axis] = indicesLength; + this.outputShape = outputShape; + this.rank = outputShape.length; + const dtype = getCoordsDataType(this.rank); + const sourceCoords = getSourceCoords2(aShape, axis); + this.userCode = ` + void main() { + ${dtype} resRC = getOutputCoords(); + setOutput(getA(${sourceCoords})); + } + `; + } + } + function getSourceCoords2(aShape, axis) { + const rank = aShape.length; + if (rank > 4) { + throw Error(`Gather for rank ${rank} is not yet supported`); + } + if (rank === 1) { + return `int(getIndices(resRC))`; + } + const currentCoords = ["resRC.x", "resRC.y", "resRC.z", "resRC.w"]; + const sourceCoords = []; + for (let i = 0; i < aShape.length; i++) { + if (i === axis) { + sourceCoords.push(`int(getIndices(${currentCoords[i]}))`); + } else { + sourceCoords.push(`${currentCoords[i]}`); + } + } + return sourceCoords.join(); + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/gather_nd_gpu.js + class GatherNDProgram { + constructor(sliceDim, strides, shape) { + this.sliceDim = sliceDim; + this.strides = strides; + this.variableNames = ["x", "indices"]; + this.outputShape = shape; + const stridesType = getCoordsDataType(strides.length); + const dtype = getCoordsDataType(shape.length); + const strideString = this.sliceDim > 1 ? "strides[j]" : "strides"; + this.userCode = ` + ${stridesType} strides = ${stridesType}(${this.strides}); + void main() { + ${dtype} coords = getOutputCoords(); + int flattenIndex = 0; + for (int j = 0; j < ${this.sliceDim}; j++) { + int index = round(getIndices(coords[0], j)); + flattenIndex += index * ${strideString}; + } + setOutput(getX(flattenIndex, coords[1])); + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/gpgpu_util.js + /** + * @license + * Copyright 2017 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + function createVertexShader2(gl) { + const glsl = getGlslDifferences(); + const vertexShaderSource = `${glsl.version} + precision highp float; + ${glsl.attribute} vec3 clipSpacePos; + ${glsl.attribute} vec2 uv; + ${glsl.varyingVs} vec2 resultUV; + + void main() { + gl_Position = vec4(clipSpacePos, 1); + resultUV = uv; + }`; + return createVertexShader(gl, vertexShaderSource); + } + function createVertexBuffer(gl) { + const vertexArray = new Float32Array([-1, 1, 0, 0, 1, -1, -1, 0, 0, 0, 1, 1, 0, 1, 1, 1, -1, 0, 1, 0]); + return createStaticVertexBuffer(gl, vertexArray); + } + function createIndexBuffer(gl) { + const triangleVertexIndices = new Uint16Array([0, 1, 2, 2, 1, 3]); + return createStaticIndexBuffer(gl, triangleVertexIndices); + } + function createAndConfigureTexture(gl, width, height, internalFormat, textureFormat, textureType) { + validateTextureSize(width, height); + const texture = createTexture(gl); + const tex2d = gl.TEXTURE_2D; + callAndCheck(gl, () => gl.bindTexture(tex2d, texture)); + callAndCheck(gl, () => gl.texParameteri(tex2d, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE)); + callAndCheck(gl, () => gl.texParameteri(tex2d, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE)); + callAndCheck(gl, () => gl.texParameteri(tex2d, gl.TEXTURE_MIN_FILTER, gl.NEAREST)); + callAndCheck(gl, () => gl.texParameteri(tex2d, gl.TEXTURE_MAG_FILTER, gl.NEAREST)); + callAndCheck(gl, () => gl.texImage2D(tex2d, 0, internalFormat, width, height, 0, textureFormat, textureType, null)); + callAndCheck(gl, () => gl.bindTexture(gl.TEXTURE_2D, null)); + return texture; + } + function getInternalFormatForFloat32MatrixTexture(textureConfig) { + return textureConfig.internalFormatFloat; + } + function createFloat32MatrixTexture(gl, rows, columns, textureConfig) { + const [width, height] = getUnpackedMatrixTextureShapeWidthHeight(rows, columns); + return createAndConfigureTexture(gl, width, height, getInternalFormatForFloat32MatrixTexture(textureConfig), textureConfig.textureFormatFloat, gl.FLOAT); + } + function getInternalFormatForFloat16MatrixTexture(textureConfig) { + return textureConfig.internalFormatHalfFloat; + } + function createFloat16MatrixTexture(gl, rows, columns, textureConfig) { + const [width, height] = getUnpackedMatrixTextureShapeWidthHeight(rows, columns); + return createAndConfigureTexture(gl, width, height, getInternalFormatForFloat16MatrixTexture(textureConfig), textureConfig.textureFormatFloat, textureConfig.textureTypeHalfFloat); + } + function getInternalFormatForUnsignedBytesMatrixTexture(textureConfig) { + return textureConfig.downloadTextureFormat; + } + function createUnsignedBytesMatrixTexture(gl, rows, columns, textureConfig) { + const [width, height] = getUnpackedMatrixTextureShapeWidthHeight(rows, columns); + return createAndConfigureTexture(gl, width, height, getInternalFormatForUnsignedBytesMatrixTexture(textureConfig), gl.RGBA, gl.UNSIGNED_BYTE); + } + function getInternalFormatForPackedMatrixTexture(textureConfig) { + return textureConfig.internalFormatPackedFloat; + } + function createPackedMatrixTexture(gl, rows, columns, textureConfig) { + const [width, height] = getPackedMatrixTextureShapeWidthHeight(rows, columns); + return createAndConfigureTexture(gl, width, height, getInternalFormatForPackedMatrixTexture(textureConfig), gl.RGBA, gl.FLOAT); + } + function getInternalFormatForFloat16PackedMatrixTexture(textureConfig) { + return textureConfig.internalFormatPackedHalfFloat; + } + function createFloat16PackedMatrixTexture(gl, rows, columns, textureConfig) { + const [width, height] = getPackedMatrixTextureShapeWidthHeight(rows, columns); + return createAndConfigureTexture(gl, width, height, getInternalFormatForFloat16PackedMatrixTexture(textureConfig), gl.RGBA, textureConfig.textureTypeHalfFloat); + } + function bindVertexProgramAttributeStreams(gl, program, vertexBuffer) { + const posOffset = 0; + const uvOffset = 3 * 4; + const stride = 3 * 4 + 2 * 4; + callAndCheck(gl, () => gl.bindBuffer(gl.ARRAY_BUFFER, vertexBuffer)); + const success = bindVertexBufferToProgramAttribute(gl, program, "clipSpacePos", vertexBuffer, 3, stride, posOffset); + return success && bindVertexBufferToProgramAttribute(gl, program, "uv", vertexBuffer, 2, stride, uvOffset); + } + function uploadDenseMatrixToTexture(gl, texture, width, height, data, textureConfig) { + callAndCheck(gl, () => gl.bindTexture(gl.TEXTURE_2D, texture)); + let dataForUpload, texelDataType, internalFormat; + if (data instanceof Uint8Array) { + dataForUpload = new Uint8Array(width * height * 4); + texelDataType = gl.UNSIGNED_BYTE; + internalFormat = gl.RGBA; + } else { + dataForUpload = new Float32Array(width * height * 4); + texelDataType = gl.FLOAT; + internalFormat = textureConfig.internalFormatPackedFloat; + } + dataForUpload.set(data); + callAndCheck(gl, () => gl.texImage2D(gl.TEXTURE_2D, 0, internalFormat, width, height, 0, gl.RGBA, texelDataType, dataForUpload)); + callAndCheck(gl, () => gl.bindTexture(gl.TEXTURE_2D, null)); + } + function uploadPixelDataToTexture(gl, texture, pixels) { + callAndCheck(gl, () => gl.bindTexture(gl.TEXTURE_2D, texture)); + if (pixels.data instanceof Uint8Array) { + callAndCheck(gl, () => gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, pixels.width, pixels.height, 0, gl.RGBA, gl.UNSIGNED_BYTE, pixels.data)); + } else { + callAndCheck(gl, () => gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, pixels)); + } + callAndCheck(gl, () => gl.bindTexture(gl.TEXTURE_2D, null)); + } + function createBufferFromOutputTexture(gl2, rows, columns, textureConfig) { + const buffer10 = gl2.createBuffer(); + callAndCheck(gl2, () => gl2.bindBuffer(gl2.PIXEL_PACK_BUFFER, buffer10)); + const bytesPerFloat = 4; + const valuesPerTexel = 4; + const bufferSizeBytes = bytesPerFloat * valuesPerTexel * rows * columns; + callAndCheck(gl2, () => gl2.bufferData(gl2.PIXEL_PACK_BUFFER, bufferSizeBytes, gl2.STREAM_READ)); + callAndCheck(gl2, () => gl2.readPixels(0, 0, columns, rows, gl2.RGBA, gl2.FLOAT, 0)); + callAndCheck(gl2, () => gl2.bindBuffer(gl2.PIXEL_PACK_BUFFER, null)); + return buffer10; + } + function downloadFloat32MatrixFromBuffer(gl, buffer10, size) { + const gl2 = gl; + const downloadTarget = new Float32Array(size); + gl2.bindBuffer(gl2.PIXEL_PACK_BUFFER, buffer10); + gl2.getBufferSubData(gl2.PIXEL_PACK_BUFFER, 0, downloadTarget); + gl2.bindBuffer(gl2.PIXEL_PACK_BUFFER, null); + return downloadTarget; + } + function downloadByteEncodedFloatMatrixFromOutputTexture(gl, rows, columns, textureConfig) { + const [w, h] = getUnpackedMatrixTextureShapeWidthHeight(rows, columns); + const numChannels = 4; + const downloadTarget = new Uint8Array(getUnpackedArraySizeFromMatrixSize(rows * columns, numChannels)); + callAndCheck(gl, () => gl.readPixels(0, 0, w, h, textureConfig.downloadTextureFormat, gl.UNSIGNED_BYTE, downloadTarget)); + return new Float32Array(downloadTarget.buffer); + } + function downloadPackedMatrixFromBuffer(gl, buffer10, batch, rows, cols, physicalRows, physicalCols, textureConfig) { + const gl2 = gl; + const downloadTarget = new Float32Array(getPackedRGBAArraySizeFromMatrixShape(physicalRows, physicalCols)); + gl2.bindBuffer(gl2.PIXEL_PACK_BUFFER, buffer10); + gl2.getBufferSubData(gl2.PIXEL_PACK_BUFFER, 0, downloadTarget); + gl2.bindBuffer(gl2.PIXEL_PACK_BUFFER, null); + return downloadTarget; + } + function downloadMatrixFromPackedOutputTexture(gl, physicalRows, physicalCols) { + const packedRGBA = new Float32Array(physicalRows * physicalCols * 4); + callAndCheck(gl, () => gl.readPixels(0, 0, physicalCols, physicalRows, gl.RGBA, gl.FLOAT, packedRGBA)); + return packedRGBA; + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/gpgpu_context.js + /** + * @license + * Copyright 2017 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class GPGPUContext { + constructor(gl) { + this.outputTexture = null; + this.program = null; + this.disposed = false; + this.vertexAttrsAreBound = false; + this.itemsToPoll = []; + const glVersion = env().getNumber("WEBGL_VERSION"); + if (gl != null) { + this.gl = gl; + setWebGLContext(glVersion, gl); + } else { + this.gl = getWebGLContext(glVersion); + } + let COLOR_BUFFER_FLOAT = "WEBGL_color_buffer_float"; + const COLOR_BUFFER_HALF_FLOAT = "EXT_color_buffer_half_float"; + if (env().getNumber("WEBGL_VERSION") === 1) { + const TEXTURE_FLOAT = "OES_texture_float"; + const TEXTURE_HALF_FLOAT = "OES_texture_half_float"; + this.textureFloatExtension = getExtensionOrThrow(this.gl, TEXTURE_FLOAT); + if (hasExtension(this.gl, TEXTURE_HALF_FLOAT)) { + this.textureHalfFloatExtension = getExtensionOrThrow(this.gl, TEXTURE_HALF_FLOAT); + } else if (env().get("WEBGL_FORCE_F16_TEXTURES")) { + throw new Error("GL context does not support half float textures, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true."); + } + this.colorBufferFloatExtension = this.gl.getExtension(COLOR_BUFFER_FLOAT); + if (hasExtension(this.gl, COLOR_BUFFER_HALF_FLOAT)) { + this.colorBufferHalfFloatExtension = getExtensionOrThrow(this.gl, COLOR_BUFFER_HALF_FLOAT); + } else if (env().get("WEBGL_FORCE_F16_TEXTURES")) { + throw new Error("GL context does not support color renderable half floats, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true."); + } + } else { + COLOR_BUFFER_FLOAT = "EXT_color_buffer_float"; + if (hasExtension(this.gl, COLOR_BUFFER_FLOAT)) { + this.colorBufferFloatExtension = this.gl.getExtension(COLOR_BUFFER_FLOAT); + } else if (hasExtension(this.gl, COLOR_BUFFER_HALF_FLOAT)) { + this.colorBufferHalfFloatExtension = this.gl.getExtension(COLOR_BUFFER_HALF_FLOAT); + } else { + throw new Error("GL context does not support color renderable floats"); + } + } + this.vertexBuffer = createVertexBuffer(this.gl); + this.indexBuffer = createIndexBuffer(this.gl); + this.framebuffer = createFramebuffer(this.gl); + this.textureConfig = getTextureConfig(this.gl, this.textureHalfFloatExtension); + } + get debug() { + return env().getBool("DEBUG"); + } + dispose() { + if (this.disposed) { + return; + } + if (this.program != null) { + console.warn("Disposing a GPGPUContext that still has a bound WebGLProgram. This is probably a resource leak, delete the program with GPGPUContext.deleteProgram before disposing."); + } + if (this.outputTexture != null) { + console.warn("Disposing a GPGPUContext that still has a bound output matrix texture. This is probably a resource leak, delete the output matrix texture with GPGPUContext.deleteMatrixTexture before disposing."); + } + const gl = this.gl; + callAndCheck(gl, () => gl.finish()); + callAndCheck(gl, () => gl.bindFramebuffer(gl.FRAMEBUFFER, null)); + callAndCheck(gl, () => gl.deleteFramebuffer(this.framebuffer)); + callAndCheck(gl, () => gl.bindBuffer(gl.ARRAY_BUFFER, null)); + callAndCheck(gl, () => gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, null)); + callAndCheck(gl, () => gl.deleteBuffer(this.indexBuffer)); + this.disposed = true; + } + createFloat32MatrixTexture(rows, columns) { + this.throwIfDisposed(); + return createFloat32MatrixTexture(this.gl, rows, columns, this.textureConfig); + } + createFloat16MatrixTexture(rows, columns) { + this.throwIfDisposed(); + return createFloat16MatrixTexture(this.gl, rows, columns, this.textureConfig); + } + createUnsignedBytesMatrixTexture(rows, columns) { + this.throwIfDisposed(); + return createUnsignedBytesMatrixTexture(this.gl, rows, columns, this.textureConfig); + } + uploadPixelDataToTexture(texture, pixels) { + this.throwIfDisposed(); + uploadPixelDataToTexture(this.gl, texture, pixels); + } + uploadDenseMatrixToTexture(texture, width, height, data) { + this.throwIfDisposed(); + uploadDenseMatrixToTexture(this.gl, texture, width, height, data, this.textureConfig); + } + createFloat16PackedMatrixTexture(rows, columns) { + this.throwIfDisposed(); + return createFloat16PackedMatrixTexture(this.gl, rows, columns, this.textureConfig); + } + createPackedMatrixTexture(rows, columns) { + this.throwIfDisposed(); + return createPackedMatrixTexture(this.gl, rows, columns, this.textureConfig); + } + deleteMatrixTexture(texture) { + this.throwIfDisposed(); + if (this.outputTexture === texture) { + unbindColorTextureFromFramebuffer(this.gl, this.framebuffer); + this.outputTexture = null; + } + callAndCheck(this.gl, () => this.gl.deleteTexture(texture)); + } + downloadByteEncodedFloatMatrixFromOutputTexture(texture, rows, columns) { + return this.downloadMatrixDriver(texture, () => downloadByteEncodedFloatMatrixFromOutputTexture(this.gl, rows, columns, this.textureConfig)); + } + downloadPackedMatrixFromBuffer(buffer10, batch, rows, columns, physicalRows, physicalCols) { + return downloadPackedMatrixFromBuffer(this.gl, buffer10, batch, rows, columns, physicalRows, physicalCols, this.textureConfig); + } + downloadFloat32MatrixFromBuffer(buffer10, size) { + return downloadFloat32MatrixFromBuffer(this.gl, buffer10, size); + } + createBufferFromTexture(texture, rows, columns) { + this.bindTextureToFrameBuffer(texture); + const result = createBufferFromOutputTexture(this.gl, rows, columns, this.textureConfig); + this.unbindTextureToFrameBuffer(); + return result; + } + createAndWaitForFence() { + const fenceContext = this.createFence(this.gl); + return this.pollFence(fenceContext); + } + createFence(gl) { + let query; + let isFencePassed; + if (env().getBool("WEBGL_FENCE_API_ENABLED")) { + const gl2 = gl; + const sync = gl2.fenceSync(gl2.SYNC_GPU_COMMANDS_COMPLETE, 0); + gl.flush(); + isFencePassed = () => { + const status = gl2.clientWaitSync(sync, 0, 0); + return status === gl2.ALREADY_SIGNALED || status === gl2.CONDITION_SATISFIED; + }; + query = sync; + } else if (env().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION") > 0) { + query = this.beginQuery(); + this.endQuery(); + isFencePassed = () => this.isQueryAvailable(query, env().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")); + } else { + isFencePassed = () => true; + } + return {query, isFencePassed}; + } + downloadMatrixFromPackedTexture(texture, physicalRows, physicalCols) { + return this.downloadMatrixDriver(texture, () => downloadMatrixFromPackedOutputTexture(this.gl, physicalRows, physicalCols)); + } + createProgram(fragmentShaderSource) { + this.throwIfDisposed(); + const gl = this.gl; + const fragmentShader = createFragmentShader(gl, fragmentShaderSource); + const vertexShader = createVertexShader2(gl); + const program = createProgram(gl); + callAndCheck(gl, () => gl.attachShader(program, vertexShader)); + callAndCheck(gl, () => gl.attachShader(program, fragmentShader)); + linkProgram(gl, program); + if (this.debug) { + validateProgram(gl, program); + } + if (!this.vertexAttrsAreBound) { + this.setProgram(program); + this.vertexAttrsAreBound = bindVertexProgramAttributeStreams(gl, this.program, this.vertexBuffer); + } + return program; + } + deleteProgram(program) { + this.throwIfDisposed(); + if (program === this.program) { + this.program = null; + } + if (program != null) { + callAndCheck(this.gl, () => this.gl.deleteProgram(program)); + } + } + setProgram(program) { + this.throwIfDisposed(); + this.program = program; + if (this.program != null && this.debug) { + validateProgram(this.gl, this.program); + } + callAndCheck(this.gl, () => this.gl.useProgram(program)); + } + getUniformLocation(program, uniformName, shouldThrow = true) { + this.throwIfDisposed(); + if (shouldThrow) { + return getProgramUniformLocationOrThrow(this.gl, program, uniformName); + } else { + return getProgramUniformLocation(this.gl, program, uniformName); + } + } + getAttributeLocation(program, attribute) { + this.throwIfDisposed(); + return callAndCheck(this.gl, () => this.gl.getAttribLocation(program, attribute)); + } + getUniformLocationNoThrow(program, uniformName) { + this.throwIfDisposed(); + return this.gl.getUniformLocation(program, uniformName); + } + setInputMatrixTexture(inputMatrixTexture, uniformLocation, textureUnit) { + this.throwIfDisposed(); + this.throwIfNoProgram(); + bindTextureToProgramUniformSampler(this.gl, inputMatrixTexture, uniformLocation, textureUnit); + } + setOutputMatrixTexture(outputMatrixTexture, rows, columns) { + this.setOutputMatrixTextureDriver(outputMatrixTexture, columns, rows); + } + setOutputPackedMatrixTexture(outputPackedMatrixTexture, rows, columns) { + this.throwIfDisposed(); + const [width, height] = getPackedMatrixTextureShapeWidthHeight(rows, columns); + this.setOutputMatrixTextureDriver(outputPackedMatrixTexture, width, height); + } + setOutputMatrixWriteRegion(startRow, numRows, startColumn, numColumns) { + this.setOutputMatrixWriteRegionDriver(startColumn, startRow, numColumns, numRows); + } + setOutputPackedMatrixWriteRegion(startRow, numRows, startColumn, numColumns) { + throw new Error("setOutputPackedMatrixWriteRegion not implemented."); + } + debugValidate() { + if (this.program != null) { + validateProgram(this.gl, this.program); + } + validateFramebuffer(this.gl); + } + executeProgram() { + this.throwIfDisposed(); + this.throwIfNoProgram(); + const gl = this.gl; + if (this.debug) { + this.debugValidate(); + } + callAndCheck(gl, () => gl.drawElements(gl.TRIANGLES, 6, gl.UNSIGNED_SHORT, 0)); + } + blockUntilAllProgramsCompleted() { + this.throwIfDisposed(); + callAndCheck(this.gl, () => this.gl.finish()); + } + getQueryTimerExtension() { + if (this.disjointQueryTimerExtension == null) { + this.disjointQueryTimerExtension = getExtensionOrThrow(this.gl, env().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION") === 2 ? "EXT_disjoint_timer_query_webgl2" : "EXT_disjoint_timer_query"); + } + return this.disjointQueryTimerExtension; + } + getQueryTimerExtensionWebGL2() { + return this.getQueryTimerExtension(); + } + getQueryTimerExtensionWebGL1() { + return this.getQueryTimerExtension(); + } + beginQuery() { + if (env().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION") === 2) { + const gl2 = this.gl; + const ext2 = this.getQueryTimerExtensionWebGL2(); + const query2 = gl2.createQuery(); + gl2.beginQuery(ext2.TIME_ELAPSED_EXT, query2); + return query2; + } + const ext = this.getQueryTimerExtensionWebGL1(); + const query = ext.createQueryEXT(); + ext.beginQueryEXT(ext.TIME_ELAPSED_EXT, query); + return query; + } + endQuery() { + if (env().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION") === 2) { + const gl2 = this.gl; + const ext2 = this.getQueryTimerExtensionWebGL2(); + gl2.endQuery(ext2.TIME_ELAPSED_EXT); + return; + } + const ext = this.getQueryTimerExtensionWebGL1(); + ext.endQueryEXT(ext.TIME_ELAPSED_EXT); + } + async waitForQueryAndGetTime(query) { + await util_exports.repeatedTry(() => this.disposed || this.isQueryAvailable(query, env().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))); + return this.getQueryTime(query, env().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")); + } + getQueryTime(query, queryTimerVersion) { + if (queryTimerVersion === 0) { + return null; + } + if (queryTimerVersion === 2) { + const gl2 = this.gl; + const timeElapsedNanos = gl2.getQueryParameter(query, gl2.QUERY_RESULT); + return timeElapsedNanos / 1e6; + } else { + const ext = this.getQueryTimerExtensionWebGL1(); + const timeElapsedNanos = ext.getQueryObjectEXT(query, ext.QUERY_RESULT_EXT); + return timeElapsedNanos / 1e6; + } + } + isQueryAvailable(query, queryTimerVersion) { + if (queryTimerVersion === 0) { + return true; + } + if (queryTimerVersion === 2) { + const gl2 = this.gl; + const ext = this.getQueryTimerExtensionWebGL2(); + const available = gl2.getQueryParameter(query, gl2.QUERY_RESULT_AVAILABLE); + if (this.disjoint == null) { + this.disjoint = this.gl.getParameter(ext.GPU_DISJOINT_EXT); + } + return available && !this.disjoint; + } else { + const ext = this.getQueryTimerExtensionWebGL1(); + const available = ext.getQueryObjectEXT(query, ext.QUERY_RESULT_AVAILABLE_EXT); + if (this.disjoint == null) { + this.disjoint = this.gl.getParameter(ext.GPU_DISJOINT_EXT); + } + return available && !this.disjoint; + } + } + pollFence(fenceContext) { + return new Promise((resolve) => { + this.addItemToPoll(() => fenceContext.isFencePassed(), () => resolve()); + }); + } + pollItems() { + const index = linearSearchLastTrue(this.itemsToPoll.map((x) => x.isDoneFn)); + for (let i = 0; i <= index; ++i) { + const {resolveFn} = this.itemsToPoll[i]; + resolveFn(); + } + this.itemsToPoll = this.itemsToPoll.slice(index + 1); + } + addItemToPoll(isDoneFn, resolveFn) { + this.itemsToPoll.push({isDoneFn, resolveFn}); + if (this.itemsToPoll.length > 1) { + return; + } + util_exports.repeatedTry(() => { + this.pollItems(); + return this.itemsToPoll.length === 0; + }); + } + bindTextureToFrameBuffer(texture) { + this.throwIfDisposed(); + bindColorTextureToFramebuffer(this.gl, texture, this.framebuffer); + if (this.debug) { + validateFramebuffer(this.gl); + } + } + unbindTextureToFrameBuffer() { + if (this.outputTexture != null) { + bindColorTextureToFramebuffer(this.gl, this.outputTexture, this.framebuffer); + if (this.debug) { + validateFramebuffer(this.gl); + } + } else { + unbindColorTextureFromFramebuffer(this.gl, this.framebuffer); + } + } + downloadMatrixDriver(texture, downloadAndDecode) { + this.bindTextureToFrameBuffer(texture); + const result = downloadAndDecode(); + this.unbindTextureToFrameBuffer(); + return result; + } + setOutputMatrixTextureDriver(outputMatrixTextureMaybePacked, width, height) { + this.throwIfDisposed(); + const gl = this.gl; + bindColorTextureToFramebuffer(gl, outputMatrixTextureMaybePacked, this.framebuffer); + if (this.debug) { + validateFramebuffer(gl); + } + this.outputTexture = outputMatrixTextureMaybePacked; + callAndCheck(gl, () => gl.viewport(0, 0, width, height)); + callAndCheck(gl, () => gl.scissor(0, 0, width, height)); + } + setOutputMatrixWriteRegionDriver(x, y, width, height) { + this.throwIfDisposed(); + callAndCheck(this.gl, () => this.gl.scissor(x, y, width, height)); + } + throwIfDisposed() { + if (this.disposed) { + throw new Error("Attempted to use disposed GPGPUContext."); + } + } + throwIfNoProgram() { + if (this.program == null) { + throw new Error("No GPU program is currently set."); + } + } + } + function linearSearchLastTrue(arr) { + let i = 0; + for (; i < arr.length; ++i) { + const isDone = arr[i](); + if (!isDone) { + break; + } + } + return i - 1; + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/gpgpu_math.js + /** + * @license + * Copyright 2017 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + function compileProgram(gpgpu, program, inputs, output) { + const userCode = program.userCode; + const inputInfos = inputs.map((input2, i) => { + const shapeInfo = { + logicalShape: input2.shape, + texShape: input2.isUniform ? null : input2.texData.texShape, + isUniform: input2.isUniform, + isPacked: input2.isUniform ? false : input2.texData.isPacked, + flatOffset: null + }; + if (input2.texData != null && input2.texData.slice != null && input2.texData.slice.flatOffset > 0) { + shapeInfo.flatOffset = input2.texData.slice.flatOffset; + } + return {name: program.variableNames[i], shapeInfo}; + }); + const inShapeInfos = inputInfos.map((x) => x.shapeInfo); + const outShapeInfo = { + logicalShape: output.shape, + texShape: output.texData.texShape, + isUniform: false, + isPacked: output.texData.isPacked, + flatOffset: null + }; + const source = makeShader(inputInfos, outShapeInfo, userCode, program.packedInputs); + const webGLProgram = gpgpu.createProgram(source); + let infLoc = null; + const nanLoc = gpgpu.getUniformLocation(webGLProgram, "NAN", false); + if (env().getNumber("WEBGL_VERSION") === 1) { + infLoc = gpgpu.getUniformLocation(webGLProgram, "INFINITY", false); + } + const uniformLocations = {}; + for (let i = 0; i < program.variableNames.length; i++) { + const varName = program.variableNames[i]; + const shouldThrow = false; + uniformLocations[varName] = gpgpu.getUniformLocation(webGLProgram, varName, shouldThrow); + uniformLocations[`offset${varName}`] = gpgpu.getUniformLocation(webGLProgram, `offset${varName}`, shouldThrow); + } + return { + program, + source, + webGLProgram, + uniformLocations, + inShapeInfos, + outShapeInfo, + infLoc, + nanLoc + }; + } + function validateBinaryAndProgram(shapeInfos, inputs) { + if (shapeInfos.length !== inputs.length) { + throw Error(`Binary was compiled with ${shapeInfos.length} inputs, but was executed with ${inputs.length} inputs`); + } + shapeInfos.forEach((s, i) => { + const shapeA = s.logicalShape; + const input2 = inputs[i]; + const shapeB = input2.shape; + if (!util_exports.arraysEqual(shapeA, shapeB)) { + throw Error(`Binary was compiled with different shapes than the current args. Shapes ${shapeA} and ${shapeB} must match`); + } + if (s.isUniform && input2.isUniform) { + return; + } + const texShapeA = s.texShape; + const texShapeB = input2.isUniform ? null : input2.texData.texShape; + if (!util_exports.arraysEqual(texShapeA, texShapeB)) { + throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${texShapeA} and ${texShapeB} must match`); + } + }); + } + function runProgram(gpgpu, binary, inputs, output, customSetup) { + validateBinaryAndProgram(binary.inShapeInfos, inputs); + validateBinaryAndProgram([binary.outShapeInfo], [output]); + const outTex = output.texData.texture; + const outTexShape = output.texData.texShape; + if (output.texData.isPacked) { + gpgpu.setOutputPackedMatrixTexture(outTex, outTexShape[0], outTexShape[1]); + } else { + gpgpu.setOutputMatrixTexture(outTex, outTexShape[0], outTexShape[1]); + } + gpgpu.setProgram(binary.webGLProgram); + if (env().getNumber("WEBGL_VERSION") === 1) { + if (binary.infLoc !== null) { + gpgpu.gl.uniform1f(binary.infLoc, Infinity); + } + } + if (binary.nanLoc !== null) { + gpgpu.gl.uniform1f(binary.nanLoc, NaN); + } + inputs.forEach((input2, i) => { + const varName = binary.program.variableNames[i]; + const varLoc = binary.uniformLocations[varName]; + const varOffsetLoc = binary.uniformLocations[`offset${varName}`]; + if (varLoc == null) { + return; + } + if (input2.isUniform) { + if (util_exports.sizeFromShape(input2.shape) < 2) { + gpgpu.gl.uniform1f(varLoc, input2.uniformValues[0]); + } else { + let vals = input2.uniformValues; + if (!(vals instanceof Float32Array)) { + vals = new Float32Array(vals); + } + gpgpu.gl.uniform1fv(varLoc, vals); + } + return; + } + if (input2.texData.slice != null && varOffsetLoc != null) { + gpgpu.gl.uniform1i(varOffsetLoc, input2.texData.slice.flatOffset); + } + gpgpu.setInputMatrixTexture(input2.texData.texture, varLoc, i); + }); + if (customSetup != null) { + customSetup(gpgpu, binary.webGLProgram); + } + gpgpu.executeProgram(); + } + function makeShaderKey(program, inputs, output) { + let keyInputs = ""; + inputs.concat(output).forEach((x) => { + const hasOffset = x.texData != null && x.texData.slice != null && x.texData.slice.flatOffset > 0; + const texShape = x.isUniform ? "uniform" : x.texData.texShape; + keyInputs += `${x.shape}_${texShape}_${hasOffset}`; + }); + const keyUserCode = program.userCode; + let key = program.constructor.name; + key += "_" + keyInputs + "_" + keyUserCode; + return key; + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/im2col_packed_gpu.js + /** + * @license + * Copyright 2019 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class Im2ColPackedProgram { + constructor(outputShape, inputShape, convInfo) { + this.variableNames = ["A"]; + this.packedInputs = true; + this.packedOutput = true; + this.outputShape = outputShape; + const {filterWidth, inChannels, strideWidth, strideHeight, padInfo, outWidth, dilationWidth, dilationHeight, dataFormat} = convInfo; + const {left, top} = padInfo; + const itemsPerBlockRow = inChannels * filterWidth; + const glsl = getGlslDifferences(); + const isChannelsLast = dataFormat === "channelsLast"; + const rowDim = isChannelsLast ? 0 : 1; + const colDim = isChannelsLast ? 1 : 2; + let unrolled = ``; + for (let row = 0; row <= 1; row++) { + for (let col = 0; col <= 1; col++) { + unrolled += ` + blockIndex = rc.y + ${col}; + pos = rc.x + ${row}; + + if(blockIndex < ${outputShape[1]} && pos < ${outputShape[0]}) { + offsetY = int(blockIndex / (${outWidth})) * ${strideHeight} - ${top}; + d0 = offsetY + ${dilationHeight} * (pos / ${itemsPerBlockRow}); + + if(d0 < ${inputShape[rowDim]} && d0 >= 0) { + + offsetX = int(mod(float(blockIndex), ${outWidth}.) * ${strideWidth}. - ${left}.); + d1 = offsetX + ${dilationWidth} * (int(mod(float(pos), ${itemsPerBlockRow}.) / ${inChannels}.)); + + if(d1 < ${inputShape[colDim]} && d1 >= 0) { + + ch = int(mod(float(pos), ${inChannels}.)); + + if (${isChannelsLast}) { + innerDims = vec2(d1, ch); + result[${row * 2 + col}] = getChannel( + getA(d0, int(innerDims.x), + int(innerDims.y)), innerDims); + } else { + innerDims = vec2(d0, d1); + result[${row * 2 + col}] = getChannel( + getA(ch, int(innerDims.x), + int(innerDims.y)), innerDims); + } + } + } + } + `; + } + } + this.userCode = ` + void main() { + ivec2 rc = getOutputCoords(); + + vec4 result = vec4(0); + + int blockIndex, pos, offsetY, d0, offsetX, d1, ch; + vec2 innerDims; + + ${unrolled} + + ${glsl.output} = result; + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/lrn_gpu.js + /** + * @license + * Copyright 2017 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class LRNProgram { + constructor(xShape, radius, bias, alpha, beta) { + this.variableNames = ["x"]; + this.outputShape = []; + const rad = radius; + const maxD = xShape[3] - 1; + this.outputShape = xShape; + let powOperator; + const basis = `float(${bias}) + float(${alpha}) * sum`; + if (beta === 0.5) { + powOperator = `inversesqrt(${basis})`; + } else if (beta === 1) { + powOperator = `1.0/(${basis})`; + } else { + powOperator = `exp(log(${basis}) * float(-${beta}));`; + } + this.userCode = ` + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int r = coords[1]; + int c = coords[2]; + int d = coords[3]; + float x = getX(b, r, c, d); + float sum = 0.0; + for (int j = -${rad}; j <= ${rad}; j++) { + int idx = d + j; + if (idx >= 0 && idx <= ${maxD}) { + float z = getX(b, r, c, idx); + sum += z * z; + } + } + float val = x * ${powOperator}; + setOutput(val); + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/lrn_grad_gpu.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class LRNGradProgram { + constructor(inputShape, depthRadius, bias, alpha, beta) { + this.variableNames = ["inputImage", "outputImage", "dy"]; + this.outputShape = []; + this.outputShape = inputShape; + this.depth = inputShape[3]; + this.depthRadius = depthRadius; + this.bias = bias; + this.alpha = alpha; + this.beta = beta; + this.userCode = ` + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int r = coords[1]; + int c = coords[2]; + + float result = 0.0; + for (int d = 0; d < ${this.depth}; ++d) { + int depthBegin = int(max(0.0, float(d - ${depthRadius}))); + int depthEnd = int(min(float(${this.depth}), + float(d + ${depthRadius} + 1))); + + const int MIN_DEPTH_BEGIN = 0; + const int MAX_DEPTH_END = ${this.depth}; + + float norm = 0.0; + for (int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k) { + if (k < depthBegin){ + continue; + } + else if (k >= depthBegin && k < depthEnd) { + norm += getInputImage(b, r, c, k) * getInputImage(b, r, c, k); + } + else { + break; + } + } + + norm = float(${alpha}) * norm + float(${bias}); + + for(int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k){ + if (k < depthBegin){ + continue; + } + else if (k >= depthBegin && k < depthEnd){ + float dyi = -2.0 * float(${alpha}) + * float(${beta}) + * getInputImage(b ,r ,c, k) * getOutputImage(b, r, c, d) + / norm; + if (k == d) { + dyi += pow(norm, -1.0 * ${beta}); + } + if (k == coords[3]) { + dyi *= getDy(b, r, c, d); + result += dyi; + } + } + else { + break; + } + } + } + setOutput(result); + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/lrn_packed_gpu.js + /** + * @license + * Copyright 2019 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class LRNPackedProgram { + constructor(xShape, radius, bias, alpha, beta) { + this.variableNames = ["x"]; + this.outputShape = []; + this.packedInputs = true; + this.packedOutput = true; + const rad = radius; + const maxD = xShape[3] - 1; + this.outputShape = xShape; + let powOperator; + const basis = `float(${bias}) + float(${alpha}) * sum`; + if (beta === 0.5) { + powOperator = `inversesqrt(${basis})`; + } else if (beta === 1) { + powOperator = `1.0/(${basis})`; + } else { + powOperator = `exp(log(${basis}) * float(-${beta}));`; + } + this.userCode = ` + void main() { + ivec4 coords = getOutputCoords(); + int b = coords.x; + int r = coords.y; + int c = coords.z; + int d = coords.w; + + bool hasNextCol = d < ${this.outputShape[3]}; + bool hasNextRow = c < ${this.outputShape[2]}; + + vec4 sum = vec4(0.); + vec4 xFragAtOutputCoords = getX(b, r, c, d); + + vec4 xAtOutputCoords = vec4( + getChannel(xFragAtOutputCoords, vec2(c, d)), + hasNextCol ? + getChannel(xFragAtOutputCoords, vec2(c, d + 1)) : 0.0, + hasNextRow ? + getChannel(xFragAtOutputCoords , vec2(c + 1, d)) : 0.0, + (hasNextRow && hasNextCol) ? + getChannel(xFragAtOutputCoords, vec2(c + 1, d + 1)) : 0.0 + ); + + int firstChannel = d - ${rad}; + vec2 cache = vec2(0.); + if(firstChannel >= 0){ + vec4 firstChannelFrag = getX(b, r, c, firstChannel); + cache.x = getChannel(firstChannelFrag, vec2(c, firstChannel)); + if(hasNextRow){ + cache.y = getChannel(firstChannelFrag, vec2(c + 1, firstChannel)); + } + } + + ivec2 depth = ivec2(d, d + 1); + for (int j = - ${rad}; j <= ${rad}; j++) { + ivec2 idx = depth + j; + bvec2 aboveLowerBound = greaterThanEqual(idx, ivec2(0)); + bvec2 belowUpperBound = lessThanEqual(idx, ivec2(${maxD})); + + bool depthInRange = aboveLowerBound.x && belowUpperBound.x; + bool depthPlusOneInRange = aboveLowerBound.y && belowUpperBound.y; + + if(depthInRange || depthPlusOneInRange){ + vec4 z = vec4(0.); + vec4 xFragAtCurrentDepth; + z.xz = cache.xy; + if(depthPlusOneInRange && hasNextCol){ + xFragAtCurrentDepth = idx.y != d ? + getX(b, r, c, idx.y) : xFragAtOutputCoords; + z.y = getChannel(xFragAtCurrentDepth, vec2(c, idx.y)); + if(hasNextRow){ + z.w = getChannel(xFragAtCurrentDepth, vec2(c + 1, idx.y)); + } + } + cache.xy = z.yw; + sum += z * z; + } + } + vec4 result = xAtOutputCoords * ${powOperator}; + setOutput(result); + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/max_pool_backprop_gpu.js + /** + * @license + * Copyright 2017 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class MaxPool2DBackpropProgram { + constructor(convInfo) { + this.variableNames = ["dy", "maxPos"]; + this.outputShape = convInfo.inShape; + const strideHeight = convInfo.strideHeight; + const strideWidth = convInfo.strideWidth; + const dilationHeight = convInfo.dilationHeight; + const effectiveFilterHeight = convInfo.effectiveFilterHeight; + const effectiveFilterWidth = convInfo.effectiveFilterWidth; + const padTop = effectiveFilterHeight - 1 - convInfo.padInfo.top; + const padLeft = effectiveFilterWidth - 1 - convInfo.padInfo.left; + const lastIndex = effectiveFilterHeight * effectiveFilterWidth - 1; + this.userCode = ` + const ivec2 pads = ivec2(${padTop}, ${padLeft}); + + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int d = coords[3]; + + ivec2 dyRCCorner = coords.yz - pads; + int dyRCorner = dyRCCorner.x; + int dyCCorner = dyRCCorner.y; + + // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d). + // ? = to be determined. : = across all values in that axis. + float dotProd = 0.0; + for (int wR = 0; wR < ${effectiveFilterHeight}; + wR += ${dilationHeight}) { + float dyR = float(dyRCorner + wR) / ${strideHeight}.0; + + if (dyR < 0.0 || dyR >= ${convInfo.outHeight}.0 || fract(dyR) > 0.0) { + continue; + } + int idyR = int(dyR); + + for (int wC = 0; wC < ${effectiveFilterWidth}; wC++) { + float dyC = float(dyCCorner + wC) / ${strideWidth}.0; + + if (dyC < 0.0 || dyC >= ${convInfo.outWidth}.0 || + fract(dyC) > 0.0) { + continue; + } + int idyC = int(dyC); + + float dyValue = getDy(b, idyR, idyC, d); + int maxPosValue = ${lastIndex} - int(getMaxPos(b, idyR, idyC, d)); + + // Get the current value, check it against the value from the + // position matrix. + int curPosValue = wR * ${effectiveFilterWidth} + wC; + float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0); + + dotProd += dyValue * mask; + } + } + setOutput(dotProd); + } + `; + } + } + class MaxPool3DBackpropProgram { + constructor(convInfo) { + this.variableNames = ["dy", "maxPos"]; + this.outputShape = convInfo.inShape; + const strideDepth = convInfo.strideDepth; + const strideHeight = convInfo.strideHeight; + const strideWidth = convInfo.strideWidth; + const dilationDepth = convInfo.dilationDepth; + const dilationHeight = convInfo.dilationHeight; + const dilationWidth = convInfo.dilationWidth; + const effectiveFilterDepth = convInfo.effectiveFilterDepth; + const effectiveFilterHeight = convInfo.effectiveFilterHeight; + const effectiveFilterWidth = convInfo.effectiveFilterWidth; + const padFront = effectiveFilterDepth - 1 - convInfo.padInfo.front; + const padTop = effectiveFilterHeight - 1 - convInfo.padInfo.top; + const padLeft = effectiveFilterWidth - 1 - convInfo.padInfo.left; + const lastIndex = effectiveFilterDepth * effectiveFilterHeight * effectiveFilterWidth - 1; + this.userCode = ` + const ivec3 pads = ivec3(${padFront}, ${padTop}, ${padLeft}); + + void main() { + ivec5 coords = getOutputCoords(); + int batch = coords.x; + int ch = coords.u; + + ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads; + int dyDCorner = dyCorner.x; + int dyRCorner = dyCorner.y; + int dyCCorner = dyCorner.z; + + // Convolve dy(?, ?, ?, ch) with pos mask(:, :, :, d) to get + // dx(xD, xR, xC, ch). + // ? = to be determined. : = across all values in that axis. + float dotProd = 0.0; + + for (int wD = 0; wD < ${effectiveFilterDepth}; + wD += ${dilationDepth}) { + float dyD = float(dyDCorner + wD) / ${strideDepth}.0; + + if (dyD < 0.0 || dyD >= ${convInfo.outDepth}.0 || fract(dyD) > 0.0) { + continue; + } + int idyD = int(dyD); + + for (int wR = 0; wR < ${effectiveFilterHeight}; + wR += ${dilationHeight}) { + float dyR = float(dyRCorner + wR) / ${strideHeight}.0; + + if (dyR < 0.0 || dyR >= ${convInfo.outHeight}.0 || + fract(dyR) > 0.0) { + continue; + } + int idyR = int(dyR); + + for (int wC = 0; wC < ${effectiveFilterWidth}; + wC += ${dilationWidth}) { + float dyC = float(dyCCorner + wC) / ${strideWidth}.0; + + if (dyC < 0.0 || dyC >= ${convInfo.outWidth}.0 || + fract(dyC) > 0.0) { + continue; + } + int idyC = int(dyC); + + float dyValue = getDy(batch, idyD, idyR, idyC, ch); + int maxPosValue = ${lastIndex} - + int(getMaxPos(batch, idyD, idyR, idyC, ch)); + + // Get the current value, check it against the value from the + // position matrix. + int curPosValue = + wD * ${effectiveFilterHeight} * ${effectiveFilterWidth} + + wR * ${effectiveFilterWidth} + wC; + float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0); + + dotProd += dyValue * mask; + } + } + } + setOutput(dotProd); + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/mulmat_packed_gpu.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class MatMulPackedProgram { + constructor(aShape, outputShape, transposeA = false, transposeB = false, addBias = false, activation2 = null, hasPreluActivation = false) { + this.variableNames = ["matrixA", "matrixB"]; + this.packedInputs = true; + this.packedOutput = true; + this.outputShape = outputShape; + const sharedDim = transposeA ? aShape[1] : aShape[2]; + const sharedDimensionPacked = Math.ceil(sharedDim / 2); + const aSample = transposeA ? "i * 2, rc.y" : "rc.y, i * 2"; + const bSample = transposeB ? "rc.z, i * 2" : "i * 2, rc.z"; + const aSwizzle = transposeA ? ["a.xxyy", "a.zzww"] : ["a.xxzz", "a.yyww"]; + const bSwizzle = transposeB ? ["b.xzxz", "b.ywyw"] : ["b.xyxy", "b.zwzw"]; + let activationSnippet = "", applyActivationSnippet = ""; + if (activation2) { + if (hasPreluActivation) { + activationSnippet = `vec4 activation(vec4 a) { + vec4 b = getPreluActivationWeightsAtOutCoords(); + ${activation2} + }`; + } else { + activationSnippet = `vec4 activation(vec4 x) { + ${activation2} + }`; + } + applyActivationSnippet = `result = activation(result);`; + } + const addBiasSnippet = addBias ? "result += getBiasAtOutCoords();" : ""; + if (addBias) { + this.variableNames.push("bias"); + } + if (hasPreluActivation) { + this.variableNames.push("preluActivationWeights"); + } + this.userCode = ` + ${activationSnippet} + + const float sharedDimension = ${sharedDimensionPacked}.0; + + vec4 dot2x2ARowBCol(ivec3 rc) { + vec4 result = vec4(0); + for (int i = 0; i < ${sharedDimensionPacked}; i++) { + vec4 a = getMatrixA(rc.x, ${aSample}); + vec4 b = getMatrixB(rc.x, ${bSample}); + + // These swizzled products need to be separately added. + // See: https://github.com/tensorflow/tfjs/issues/1735 + result += (${aSwizzle[0]} * ${bSwizzle[0]}); + result += (${aSwizzle[1]} * ${bSwizzle[1]}); + } + return result; + } + + void main() { + ivec3 rc = getOutputCoords(); + vec4 result = dot2x2ARowBCol(rc); + + ${addBiasSnippet} + + ${applyActivationSnippet} + + setOutput(result); + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/multinomial_gpu.js + /** + * @license + * Copyright 2017 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class MultinomialProgram { + constructor(batchSize, numOutcomes, numSamples) { + this.variableNames = ["probs"]; + this.outputShape = [batchSize, numSamples]; + this.userCode = ` + uniform float seed; + + void main() { + ivec2 coords = getOutputCoords(); + int batch = coords[0]; + + float r = random(seed); + float cdf = 0.0; + + for (int i = 0; i < ${numOutcomes - 1}; i++) { + cdf += getProbs(batch, i); + + if (r < cdf) { + setOutput(float(i)); + return; + } + } + + // If no other event happened, last event happened. + setOutput(float(${numOutcomes - 1})); + } + `; + } + getCustomSetupFunc(seed) { + return (gpgpu, webGLProgram) => { + if (this.seedLoc == null) { + this.seedLoc = gpgpu.getUniformLocation(webGLProgram, "seed"); + } + gpgpu.gl.uniform1f(this.seedLoc, seed); + }; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/onehot_gpu.js + /** + * @license + * Copyright 2017 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class OneHotProgram { + constructor(numIndices, depth, onValue, offValue) { + this.variableNames = ["indices"]; + this.outputShape = [numIndices, depth]; + this.userCode = ` + void main() { + ivec2 coords = getOutputCoords(); + int index = round(getIndices(coords.x)); + setOutput(mix(float(${offValue}), float(${onValue}), + float(index == coords.y))); + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/pack_gpu.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class PackProgram { + constructor(outputShape) { + this.variableNames = ["A"]; + this.packedInputs = false; + this.packedOutput = true; + this.outputShape = outputShape; + const rank = outputShape.length; + if (rank === 0) { + this.userCode = ` + void main() { + setOutput(vec4(getA(), 0., 0., 0.)); + } + `; + } else { + const channels = getChannels("rc", rank); + const dtype = getCoordsDataType(rank); + const outOfBoundsCondition = getOutOfBoundsCondition(rank, outputShape, channels); + const setup = getSetup(rank, outputShape[outputShape.length - 1], outputShape[outputShape.length - 2], channels); + const output = getOutput(outputShape, channels); + this.userCode = ` + void main() { + ${dtype} rc = getOutputCoords(); + + if(${outOfBoundsCondition}) { + setOutput(vec4(0)); + } else { + ${setup} + + setOutput(vec4(${output})); + } + } + `; + } + } + } + function getSourceCoordsArr(rank, dims) { + const coords2 = []; + for (let row = 0; row <= 1; row++) { + for (let col = 0; col <= 1; col++) { + let coord = `${row === 0 ? "r" : "rp1"}, ${col === 0 ? "c" : "cp1"}`; + for (let d = 2; d < rank; d++) { + coord = `${dims[dims.length - 1 - d]},` + coord; + } + coords2.push(coord); + } + } + return coords2; + } + function getOutOfBoundsCondition(rank, shape, dims) { + if (rank === 1) { + return `rc > ${shape[0]}`; + } + let cond = ""; + for (let i = rank - 2; i < rank; i++) { + cond += `${dims[i]} >= ${shape[i]}`; + if (i < rank - 1) { + cond += "||"; + } + } + return cond; + } + function getSetup(rank, cols, rows, dims) { + if (rank === 1) { + return ""; + } + const innerDims = dims.slice(-2); + return ` + int r = ${innerDims[0]}; + int c = ${innerDims[1]}; + int rp1 = r + 1; + int cp1 = c + 1; + + bool cEdge = cp1 >= ${cols}; + bool rEdge = rp1 >= ${rows}; + `; + } + function getOutput(shape, dims) { + const rank = shape.length; + const sourceCoords = getSourceCoordsArr(rank, dims); + if (rank === 1) { + return `getA(rc), + rc + 1 >= ${shape[0]} ? 0. : getA(rc + 1), + 0, 0`; + } + return `getA(${sourceCoords[0]}), + cEdge ? 0. : getA(${sourceCoords[1]}), + rEdge ? 0. : getA(${sourceCoords[2]}), + rEdge || cEdge ? 0. : getA(${sourceCoords[3]})`; + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/pad_gpu.js + /** + * @license + * Copyright 2017 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class PadProgram { + constructor(xShape, paddings, constantValue) { + this.variableNames = ["x"]; + this.outputShape = paddings.map((p, i) => p[0] + xShape[i] + p[1]); + const rank = xShape.length; + const type = getCoordsDataType(rank); + const start = paddings.map((p) => p[0]).join(","); + const end = paddings.map((p, i) => p[0] + xShape[i]).join(","); + const unpackedCoords = ["coords[0]", "coords[1]", "coords[2]", "coords[3]"].slice(0, rank); + if (rank === 1) { + this.userCode = ` + int start = ${start}; + int end = ${end}; + + void main() { + int outC = getOutputCoords(); + if (outC < start || outC >= end) { + setOutput(float(${constantValue})); + } else { + setOutput(getX(outC - start)); + } + } + `; + return; + } + this.userCode = ` + ${type} start = ${type}(${start}); + ${type} end = ${type}(${end}); + + void main() { + ${type} outC = getOutputCoords(); + if (any(lessThan(outC, start)) || any(greaterThanEqual(outC, end))) { + setOutput(float(${constantValue})); + } else { + ${type} coords = outC - start; + setOutput(getX(${unpackedCoords})); + } + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/pad_packed_gpu.js + /** + * @license + * Copyright 2019 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class PadPackedProgram { + constructor(xShape, paddings, constantValue) { + this.variableNames = ["x"]; + this.packedInputs = true; + this.packedOutput = true; + this.outputShape = paddings.map((p, i) => p[0] + xShape[i] + p[1]); + const rank = xShape.length; + const dtype = getCoordsDataType(rank); + const start = paddings.map((p) => p[0]).join(","); + const end = paddings.map((p, i) => p[0] + xShape[i]).join(","); + const coords2 = getChannels("rc", rank); + const source = getChannels("source", rank); + const cLimit = `${coords2[rank - 1]} < ${this.outputShape[rank - 1]}`; + const innerDims = rank === 1 ? "source" : `vec2(${source.slice(-2).join()})`; + const componentSetup = [ + `${dtype} rc = outputLoc;`, + `${coords2[rank - 1]} += 1; + if(${cLimit}) { + `, + rank === 1 ? "" : `} + rc = outputLoc; + ${coords2[rank - 2]} += 1; + if(${coords2[rank - 2]} < ${this.outputShape[rank - 2]}) {`, + rank === 1 ? "" : ` ${coords2[rank - 1]} += 1; + if(${cLimit}) {` + ]; + const paddingArea = rank === 1 ? "rc < start || rc >= end" : "any(lessThan(rc, start)) || any(greaterThanEqual(rc, end))"; + let mainLoop = ""; + for (let i = 0, j = rank === 1 ? 2 : 4; i < j; i++) { + mainLoop += ` + ${componentSetup[i]} + if (${paddingArea}) { + result[${i}] = float(${constantValue}); + } else { + ${dtype} source = rc - start; + result[${i}] = getChannel(getX(${source.join()}), ${innerDims}); + } + `; + } + mainLoop += rank === 1 ? `} ` : `}}`; + this.userCode = ` + const ${dtype} start = ${dtype}(${start}); + const ${dtype} end = ${dtype}(${end}); + + void main() { + ${dtype} outputLoc = getOutputCoords(); + vec4 result = vec4(0.); + ${mainLoop} + setOutput(result); + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/pool_gpu.js + /** + * @license + * Copyright 2017 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class Pool2DProgram { + constructor(convInfo, poolType, computePositions, flattenPositions = false, includeBatchInIndex = false) { + this.variableNames = ["x"]; + if (poolType === "avg" && computePositions) { + throw new Error("Cannot compute positions for average pool."); + } + const filterWidth = convInfo.filterWidth; + const strideHeight = convInfo.strideHeight; + const strideWidth = convInfo.strideWidth; + const dilationHeight = convInfo.dilationHeight; + const dilationWidth = convInfo.dilationWidth; + const effectiveFilterHeight = convInfo.effectiveFilterHeight; + const effectiveFilterWidth = convInfo.effectiveFilterWidth; + const padTop = convInfo.padInfo.top; + const padLeft = convInfo.padInfo.left; + this.outputShape = convInfo.outShape; + const isAvgPool = poolType === "avg"; + const batchFlattenPositionStr = `((batch * ${convInfo.inHeight} + xR) * ${convInfo.inWidth} + xC) * ${convInfo.inChannels} + d`; + const flattenPositionStr = `(xR * ${convInfo.inWidth} + xC) * ${convInfo.inChannels} + d`; + let initializationValue = "0.0"; + if (!isAvgPool) { + initializationValue = "-1.0 / 1e-20"; + } + if (computePositions) { + const compareOp2 = ">="; + this.userCode = ` + const ivec2 strides = ivec2(${strideHeight}, ${strideWidth}); + const ivec2 pads = ivec2(${padTop}, ${padLeft}); + + void main() { + ivec4 coords = getOutputCoords(); + int batch = coords[0]; + int d = coords[3]; + + ivec2 xRCCorner = coords.yz * strides - pads; + int xRCorner = xRCCorner.x; + int xCCorner = xRCCorner.y; + + // max/min x(?, ?, d) to get y(yR, yC, d). + // ? = to be determined + float minMaxValue = 0.0; + float minMaxValueFound = 0.0; + int minMaxPosition = 0; + float avgValue = 0.0; + + for (int wR = 0; wR < ${effectiveFilterHeight}; + wR += ${dilationHeight}) { + int xR = xRCorner + wR; + + if (xR < 0 || xR >= ${convInfo.inHeight}) { + continue; + } + + for (int wC = 0; wC < ${effectiveFilterWidth}; + wC += ${dilationWidth}) { + int xC = xCCorner + wC; + + if (xC < 0 || xC >= ${convInfo.inWidth}) { + continue; + } + + float value = getX(batch, xR, xC, d); + + // If a min / max value has already been found, use it. If not, + // use the current value. + float currMinMaxValue = mix( + value, minMaxValue, minMaxValueFound); + if (value ${compareOp2} currMinMaxValue) { + minMaxValue = value; + minMaxValueFound = 1.0; + minMaxPosition = ${flattenPositions ? includeBatchInIndex ? batchFlattenPositionStr : flattenPositionStr : `wR * ${effectiveFilterWidth} + wC`}; + } + } + } + setOutput(float(minMaxPosition)); + } + `; + return; + } + const compareOp = "max"; + let returnValue = `${poolType}(${poolType}(${poolType}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`; + if (poolType === "avg") { + returnValue = `avgValue / count`; + } + const filterWidthNearestVec4 = Math.floor(filterWidth / 4) * 4; + const filterWidthVec4Remainder = filterWidth % 4; + const updateSnippet = ` + if (${isAvgPool}) { + avgValue += dot(values, ones); + } else { + minMaxValue = ${compareOp}(values, minMaxValue); + } + `; + this.userCode = ` + const ivec2 strides = ivec2(${strideHeight}, ${strideWidth}); + const ivec2 pads = ivec2(${padTop}, ${padLeft}); + const float initializationValue = ${initializationValue}; + const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0); + + float count = 0.0; + + float getValue(int batch, int xR, int xC, int d) { + if (xC < 0 || xC >= ${convInfo.inWidth}) { + return initializationValue; + } + count += 1.0; + return getX(batch, xR, xC, d); + } + + void main() { + ivec4 coords = getOutputCoords(); + int batch = coords[0]; + int d = coords[3]; + + ivec2 xRCCorner = coords.yz * strides - pads; + int xRCorner = xRCCorner.x; + int xCCorner = xRCCorner.y; + + // max/min x(?, ?, d) to get y(yR, yC, d). + // ? = to be determined + vec4 minMaxValue = vec4(${initializationValue}); + float avgValue = 0.0; + count = 0.0; + + for (int wR = 0; wR < ${effectiveFilterHeight}; + wR += ${dilationHeight}) { + int xR = xRCorner + wR; + + if (xR < 0 || xR >= ${convInfo.inHeight}) { + continue; + } + + for (int wC = 0; wC < ${filterWidthNearestVec4}; wC += 4) { + int xC = xCCorner + wC * ${dilationWidth}; + + vec4 values = vec4( + getValue(batch, xR, xC, d), + getValue(batch, xR, xC + ${dilationWidth}, d), + getValue(batch, xR, xC + 2 * ${dilationWidth}, d), + getValue(batch, xR, xC + 3 * ${dilationWidth}, d) + ); + + ${updateSnippet} + } + + int xC = xCCorner + ${filterWidthNearestVec4}; + if (${filterWidthVec4Remainder === 1}) { + vec4 values = vec4( + getValue(batch, xR, xC, d), + initializationValue, + initializationValue, + initializationValue + ); + + ${updateSnippet} + } else if (${filterWidthVec4Remainder === 2}) { + vec4 values = vec4( + getValue(batch, xR, xC, d), + getValue(batch, xR, xC + ${dilationWidth}, d), + initializationValue, + initializationValue + ); + + ${updateSnippet} + } else if (${filterWidthVec4Remainder === 3}) { + vec4 values = vec4( + getValue(batch, xR, xC, d), + getValue(batch, xR, xC + ${dilationWidth}, d), + getValue(batch, xR, xC + 2 * ${dilationWidth}, d), + initializationValue + ); + + ${updateSnippet} + } + } + setOutput(${returnValue}); + } + `; + } + } + class Pool3DProgram { + constructor(convInfo, poolType, computePositions, flattenPositions = false, includeBatchInIndex = false) { + this.variableNames = ["x"]; + if (poolType === "avg" && computePositions) { + throw new Error("Cannot compute positions for average pool."); + } + const filterWidth = convInfo.filterWidth; + const strideDepth = convInfo.strideDepth; + const strideHeight = convInfo.strideHeight; + const strideWidth = convInfo.strideWidth; + const dilationDepth = convInfo.dilationDepth; + const dilationHeight = convInfo.dilationHeight; + const dilationWidth = convInfo.dilationWidth; + const effectiveFilterDepth = convInfo.effectiveFilterDepth; + const effectiveFilterHeight = convInfo.effectiveFilterHeight; + const effectiveFilterWidth = convInfo.effectiveFilterWidth; + const padFront = convInfo.padInfo.front; + const padTop = convInfo.padInfo.top; + const padLeft = convInfo.padInfo.left; + this.outputShape = convInfo.outShape; + const isAvgPool = poolType === "avg"; + let initializationValue = "0.0"; + if (!isAvgPool) { + initializationValue = "-1.0 / 1e-20"; + } + if (computePositions) { + const compareOp2 = ">="; + this.userCode = ` + const ivec3 strides = + ivec3(${strideDepth}, ${strideHeight}, ${strideWidth}); + const ivec3 pads = ivec3(${padFront}, ${padTop}, ${padLeft}); + + void main() { + ivec5 coords = getOutputCoords(); + int batch = coords.x; + int ch = coords.u; + + ivec3 xCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads; + int xDCorner = xCorner.x; + int xRCorner = xCorner.y; + int xCCorner = xCorner.z; + + // max/min x(?, ?, ?, ch) to get y(yD, yR, yC, ch). + // ? = to be determined + float minMaxValue = 0.0; + float minMaxValueFound = 0.0; + int minMaxPosition = 0; + + for (int wD = 0; wD < ${effectiveFilterDepth}; + wD += ${dilationDepth}) { + int xD = xDCorner + wD; + + if (xD < 0 || xD >= ${convInfo.inDepth}) { + continue; + } + + for (int wR = 0; wR < ${effectiveFilterHeight}; + wR += ${dilationHeight}) { + int xR = xRCorner + wR; + + if (xR < 0 || xR >= ${convInfo.inHeight}) { + continue; + } + + for (int wC = 0; wC < ${effectiveFilterWidth}; + wC += ${dilationWidth}) { + int xC = xCCorner + wC; + + if (xC < 0 || xC >= ${convInfo.inWidth}) { + continue; + } + + float value = getX(batch, xD, xR, xC, ch); + + // If a min / max value has already been found, use it. If not, + // use the current value. + float currMinMaxValue = mix( + value, minMaxValue, minMaxValueFound); + if (value ${compareOp2} currMinMaxValue) { + minMaxValue = value; + minMaxValueFound = 1.0; + minMaxPosition = ${flattenPositions ? includeBatchInIndex ? `(((batch * ${convInfo.inDepth} + xD) * ${convInfo.inHeight} + xR) * ${convInfo.inWidth} + xC) * ${convInfo.inChannels} + ch` : `((xD * ${convInfo.inHeight} + xR) * ${convInfo.inWidth} + xC) * ${convInfo.inChannels} + ch` : `wD * ${effectiveFilterHeight} * ${effectiveFilterWidth} + + wR * ${effectiveFilterWidth} + wC`}; + } + } + } + } + setOutput(float(minMaxPosition)); + } + `; + return; + } + const compareOp = "max"; + let returnValue = `${poolType}(${poolType}(${poolType}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`; + if (poolType === "avg") { + returnValue = `avgValue / count`; + } + const filterWidthNearestVec4 = Math.floor(filterWidth / 4) * 4; + const filterWidthVec4Remainder = filterWidth % 4; + const updateSnippet = ` + if (${isAvgPool}) { + avgValue += dot(values, ones); + } else { + minMaxValue = ${compareOp}(values, minMaxValue); + } + `; + this.userCode = ` + const ivec3 strides = + ivec3(${strideDepth}, ${strideHeight}, ${strideWidth}); + const ivec3 pads = ivec3(${padFront}, ${padTop}, ${padLeft}); + const float initializationValue = ${initializationValue}; + const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0); + + float count = 0.0; + + float getValue(int batch, int xD, int xR, int xC, int ch) { + if (xC < 0 || xC >= ${convInfo.inWidth}) { + return initializationValue; + } + count += 1.0; + return getX(batch, xD, xR, xC, ch); + } + + void main() { + ivec5 coords = getOutputCoords(); + int batch = coords.x; + int ch = coords.u; + + ivec3 xCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads; + int xDCorner = xCorner.x; + int xRCorner = xCorner.y; + int xCCorner = xCorner.z; + + // max/min x(?, ?, ?, d) to get y(yD, yR, yC, ch). + // ? = to be determined + vec4 minMaxValue = vec4(${initializationValue}); + float avgValue = 0.0; + count = 0.0; + + for (int wD = 0; wD < ${effectiveFilterDepth}; + wD += ${dilationDepth}) { + int xD = xDCorner + wD; + + if (xD < 0 || xD >= ${convInfo.inDepth}) { + continue; + } + + for (int wR = 0; wR < ${effectiveFilterHeight}; + wR += ${dilationHeight}) { + int xR = xRCorner + wR; + + if (xR < 0 || xR >= ${convInfo.inHeight}) { + continue; + } + + for (int wC = 0; wC < ${filterWidthNearestVec4}; wC += 4) { + int xC = xCCorner + wC * ${dilationWidth}; + + vec4 values = vec4( + getValue(batch, xD, xR, xC, ch), + getValue(batch, xD, xR, xC + ${dilationWidth}, ch), + getValue(batch, xD, xR, xC + 2 * ${dilationWidth}, ch), + getValue(batch, xD, xR, xC + 3 * ${dilationWidth}, ch) + ); + + ${updateSnippet} + } + + int xC = xCCorner + ${filterWidthNearestVec4}; + if (${filterWidthVec4Remainder === 1}) { + vec4 values = vec4( + getValue(batch, xD, xR, xC, ch), + initializationValue, + initializationValue, + initializationValue + ); + + ${updateSnippet} + } else if (${filterWidthVec4Remainder === 2}) { + vec4 values = vec4( + getValue(batch, xD, xR, xC, ch), + getValue(batch, xD, xR, xC + ${dilationWidth}, ch), + initializationValue, + initializationValue + ); + + ${updateSnippet} + } else if (${filterWidthVec4Remainder === 3}) { + vec4 values = vec4( + getValue(batch, xD, xR, xC, ch), + getValue(batch, xD, xR, xC + ${dilationWidth}, ch), + getValue(batch, xD, xR, xC + 2 * ${dilationWidth}, ch), + initializationValue + ); + + ${updateSnippet} + } + } + setOutput(${returnValue}); + } + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/reduce_gpu.js + /** + * @license + * Copyright 2017 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class ReduceProgram { + constructor(reduceInfo, reduceType) { + this.variableNames = ["x"]; + const windowSize = reduceInfo.windowSize; + const batchSize = reduceInfo.batchSize; + const inSize = reduceInfo.inSize; + const outSize = Math.ceil(inSize / windowSize); + this.outputShape = [batchSize, outSize]; + let initializationValue = "0.0"; + let compareOp = ``; + if (reduceType === "prod") { + initializationValue = "1.0"; + } else if (reduceType === "min") { + initializationValue = "1.0 / 1e-20"; + compareOp = `min`; + } else if (reduceType === "max") { + initializationValue = "-1.0 / 1e-20"; + compareOp = `max`; + } + let returnValue = `${reduceType}(${reduceType}(${reduceType}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`; + if (reduceType === "sum") { + returnValue = `sumValue`; + } else if (reduceType === "prod") { + returnValue = `prodValue`; + } else if (reduceType === "all") { + returnValue = `allValue`; + } else if (reduceType === "any") { + returnValue = `anyValue`; + } + const windowSizeNearestVec4 = Math.floor(windowSize / 4) * 4; + const windowSizeVec4Remainder = windowSize % 4; + let updateSnippet = ` + if (${reduceType === "sum"}) { + sumValue += dot(values, ones); + } else if (${reduceType === "prod"}) { + vec2 tmp = vec2(values[0], values[1]) * vec2(values[2], values[3]); + prodValue *= tmp[0] * tmp[1]; + } else { + minMaxValue = ${compareOp}(values, minMaxValue); + } + `; + let vecType = `vec4`; + if (reduceType === "all") { + initializationValue = "1.0"; + updateSnippet = ` + bool reducedAllValue = all(values); + float floatedReducedAllValue = float(reducedAllValue); + allValue = float(allValue >= 1.0 && floatedReducedAllValue >= 1.0); + `; + vecType = `bvec4`; + } else if (reduceType === "any") { + initializationValue = "0.0"; + updateSnippet = ` + bool reducedAnyValue = any(values); + float floatedReducedAnyValue = float(reducedAnyValue); + anyValue = float(anyValue >= 1.0 || floatedReducedAnyValue >= 1.0); + `; + vecType = `bvec4`; + } + let checkOutOfBounds = ""; + if (inSize % windowSize > 0) { + checkOutOfBounds = ` + if (inIdx < 0 || inIdx >= ${inSize}) { + return initializationValue; + } + `; + } + this.userCode = ` + const float initializationValue = ${initializationValue}; + const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0); + + float getValue(int batch, int inIdx) { + ${checkOutOfBounds} + return getX(batch, inIdx); + } + + void main() { + ivec2 coords = getOutputCoords(); + int batch = coords[0]; + int outIdx = coords[1]; + int inOffset = outIdx * ${windowSize}; + + vec4 minMaxValue = vec4(${initializationValue}); + float prodValue = 1.0; + float sumValue = 0.0; + float allValue = 1.0; + float anyValue = 0.0; + + for (int i = 0; i < ${windowSizeNearestVec4}; i += 4) { + int inIdx = inOffset + i; + ${vecType} values = ${vecType}( + getValue(batch, inIdx), + getValue(batch, inIdx + 1), + getValue(batch, inIdx + 2), + getValue(batch, inIdx + 3) + ); + + ${updateSnippet} + } + + int inIdx = inOffset + ${windowSizeNearestVec4}; + if (${windowSizeVec4Remainder === 1}) { + ${vecType} values = ${vecType}( + getValue(batch, inIdx), + initializationValue, + initializationValue, + initializationValue + ); + + ${updateSnippet} + } else if (${windowSizeVec4Remainder === 2}) { + ${vecType} values = ${vecType}( + getValue(batch, inIdx), + getValue(batch, inIdx + 1), + initializationValue, + initializationValue + ); + + ${updateSnippet} + } else if (${windowSizeVec4Remainder === 3}) { + ${vecType} values = ${vecType}( + getValue(batch, inIdx), + getValue(batch, inIdx + 1), + getValue(batch, inIdx + 2), + initializationValue + ); + + ${updateSnippet} + } + setOutput(${returnValue}); + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/reshape_packed_gpu.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class ReshapePackedProgram { + constructor(outputShape, inputShape) { + this.variableNames = ["A"]; + this.packedInputs = true; + this.packedOutput = true; + this.outputShape = outputShape; + let mainLoop = ``; + for (let i = 0; i < 4; i++) { + let thisRC = `thisRC = rc;`; + if (i % 2 === 1) { + thisRC += `thisRC.z += 1;`; + } + if (i > 1) { + thisRC += `thisRC.y += 1;`; + } + mainLoop += ` + ${thisRC} + ${i > 0 ? `if(thisRC.y < rows && thisRC.z < cols){` : ""} + int flatIndex = getFlatIndex(thisRC); + + ivec3 inputRC = inputCoordsFromReshapedOutCoords(flatIndex); + vec2 inputRCInnerDims = vec2(float(inputRC.y),float(inputRC.z)); + + result[${i}] = + getChannel(getA(inputRC.x, inputRC.y, inputRC.z), inputRCInnerDims); + ${i > 0 ? "}" : ""} + `; + } + this.userCode = ` + ${getReshapedInputCoords(inputShape)} + ${getFlatIndexFrom3D(outputShape)} + + void main() { + ivec3 rc = getOutputCoords(); + + vec4 result = vec4(0.); + + ivec3 thisRC; + int rows = ${outputShape[1]}; + int cols = ${outputShape[2]}; + + ${mainLoop} + + setOutput(result); + } + `; + } + } + function getReshapedInputCoords(shape) { + const coordsFromIndexSnippet = getLogicalCoordinatesFromFlatIndex(["r", "c", "d"], shape); + return ` + ivec3 inputCoordsFromReshapedOutCoords(int index) { + ${coordsFromIndexSnippet} + return ivec3(r, c, d); + } + `; + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/resize_bilinear_backprop_gpu.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class ResizeBilinearBackpropProgram { + constructor(dy, x, alignCorners) { + this.variableNames = ["dy"]; + this.outputShape = []; + this.outputShape = x.shape; + const [, xHeight, xWidth] = x.shape; + const [, yHeight, yWidth] = dy.shape; + const effectiveXSize = [ + alignCorners && yHeight > 1 ? xHeight - 1 : xHeight, + alignCorners && yWidth > 1 ? xWidth - 1 : xWidth + ]; + const effectiveYSize = [ + alignCorners && yHeight > 1 ? yHeight - 1 : yHeight, + alignCorners && yWidth > 1 ? yWidth - 1 : yWidth + ]; + const heightScale = effectiveXSize[0] / effectiveYSize[0]; + const widthScale = effectiveXSize[1] / effectiveYSize[1]; + const invHeightScale = 1 / heightScale; + const invWidthScale = 1 / widthScale; + const winHeight = Math.ceil(invHeightScale) * 2 + 2; + const winWidth = Math.ceil(invWidthScale) * 2 + 2; + this.userCode = ` + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int d = coords[3]; + int r = coords[1]; + int c = coords[2]; + + float accumulator = 0.0; + + const float heightScale = float(${heightScale}); + const float widthScale = float(${widthScale}); + + const float invHeightScale = float(${invHeightScale}); + const float invWidthScale = float(${invWidthScale}); + + const int winHeight = int(${winHeight}); + const int winWidth = int(${winWidth}); + + // Compute bounds for where in dy we will look + float startRLerp = floor(float(r) * invHeightScale); + int startDyR = int(startRLerp - float(winHeight / 2)); + + float startCLerp = floor(float(c) * invWidthScale); + int startDyC = int(startCLerp - float(winWidth / 2)); + + // Loop over dy + for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) { + int dyR = dyROffset + startDyR; + + // Guard against the window exceeding the bounds of dy + if (dyR < 0 || dyR >= ${yHeight}) { + continue; + } + + for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) { + int dyC = dyCOffset + startDyC; + + // Guard against the window exceeding the bounds of dy + if (dyC < 0 || dyC >= ${yWidth}) { + continue; + } + + float dxR = float(dyR) * heightScale; + int topDxRIndex = int(floor(dxR)); + int bottomDxRIndex = int(min(ceil(dxR), ${xHeight - 1}.0)); + float dxRLerp = dxR - float(topDxRIndex); + float inverseDxRLerp = 1.0 - dxRLerp; + + float dxC = float(dyC) * widthScale; + int leftDxCIndex = int(floor(dxC)); + int rightDxCIndex = int(min(ceil(dxC), ${xWidth - 1}.0)); + float dxCLerp = dxC - float(leftDxCIndex); + float inverseDxCLerp = 1.0 - dxCLerp; + + if (r == topDxRIndex && c == leftDxCIndex) { + // topLeft + accumulator += + getDy(b, dyR, dyC, d) * inverseDxRLerp * inverseDxCLerp; + } + + if (r == topDxRIndex && c == rightDxCIndex) { + // topRight + accumulator += getDy(b, dyR, dyC, d) * inverseDxRLerp * dxCLerp; + } + + if (r == bottomDxRIndex && c == leftDxCIndex) { + // bottomLeft + accumulator += getDy(b, dyR, dyC, d) * dxRLerp * inverseDxCLerp; + } + + if (r == bottomDxRIndex && c == rightDxCIndex) { + // bottomRight + accumulator += getDy(b, dyR, dyC, d) * dxRLerp * dxCLerp; + } + } + } + // End loop over dy + + setOutput(accumulator); + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/resize_bilinear_gpu.js + /** + * @license + * Copyright 2017 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class ResizeBilinearProgram { + constructor(inputShape, newHeight, newWidth, alignCorners) { + this.variableNames = ["A"]; + this.outputShape = []; + const [batch, oldHeight, oldWidth, depth] = inputShape; + this.outputShape = [batch, newHeight, newWidth, depth]; + const effectiveInSize = [ + alignCorners && newHeight > 1 ? oldHeight - 1 : oldHeight, + alignCorners && newWidth > 1 ? oldWidth - 1 : oldWidth + ]; + const effectiveOutSize = [ + alignCorners && newHeight > 1 ? newHeight - 1 : newHeight, + alignCorners && newWidth > 1 ? newWidth - 1 : newWidth + ]; + this.userCode = ` + const vec2 effectiveInputOverOutputRatioRC = vec2( + ${effectiveInSize[0] / effectiveOutSize[0]}, + ${effectiveInSize[1] / effectiveOutSize[1]}); + const vec2 inputShapeRC = vec2(${oldHeight}.0, ${oldWidth}.0); + + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int d = coords[3]; + ivec2 yRC = coords.yz; + + // Fractional source index. + vec2 sourceFracIndexRC = vec2(yRC) * effectiveInputOverOutputRatioRC; + + // Compute the four integer indices. + ivec2 sourceFloorRC = ivec2(sourceFracIndexRC); + ivec2 sourceCeilRC = ivec2( + min(inputShapeRC - 1.0, ceil(sourceFracIndexRC))); + + float topLeft = getA(b, sourceFloorRC.x, sourceFloorRC.y, d); + float bottomLeft = getA(b, sourceCeilRC.x, sourceFloorRC.y, d); + float topRight = getA(b, sourceFloorRC.x, sourceCeilRC.y, d); + float bottomRight = getA(b, sourceCeilRC.x, sourceCeilRC.y, d); + + vec2 fracRC = sourceFracIndexRC - vec2(sourceFloorRC); + + float top = topLeft + (topRight - topLeft) * fracRC.y; + float bottom = bottomLeft + (bottomRight - bottomLeft) * fracRC.y; + float newValue = top + (bottom - top) * fracRC.x; + + setOutput(newValue); + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/resize_bilinear_packed_gpu.js + /** + * @license + * Copyright 2019 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class ResizeBilinearPackedProgram { + constructor(inputShape, newHeight, newWidth, alignCorners) { + this.variableNames = ["A"]; + this.packedInputs = true; + this.packedOutput = true; + this.outputShape = []; + const [batch, oldHeight, oldWidth, depth] = inputShape; + this.outputShape = [batch, newHeight, newWidth, depth]; + const effectiveInSize = [ + alignCorners && newHeight > 1 ? oldHeight - 1 : oldHeight, + alignCorners && newWidth > 1 ? oldWidth - 1 : oldWidth + ]; + const effectiveOutSize = [ + alignCorners && newHeight > 1 ? newHeight - 1 : newHeight, + alignCorners && newWidth > 1 ? newWidth - 1 : newWidth + ]; + this.userCode = ` + const vec3 effectiveInputOverOutputRatioRC = vec3( + ${effectiveInSize[0] / effectiveOutSize[0]}, + ${effectiveInSize[1] / effectiveOutSize[1]}, + ${effectiveInSize[1] / effectiveOutSize[1]}); + const vec3 inputShapeRC = vec3(${oldHeight}.0, ${oldWidth}.0, + ${oldWidth}.0); + + float getAValue(int b, int r, int c, int d) { + return getChannel(getA(b, r, c, d), vec2(c, d)); + } + + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int d = coords[3]; + // Calculate values for next column in yRC.z. + ivec3 yRC = coords.yzz + ivec3(0, 0, 1); + + // Fractional source index. + vec3 sourceFracIndexRC = vec3(yRC) * effectiveInputOverOutputRatioRC; + + // Compute the four integer indices. + ivec3 sourceFloorRC = ivec3(sourceFracIndexRC); + ivec3 sourceCeilRC = ivec3( + min(inputShapeRC - 1.0, ceil(sourceFracIndexRC))); + + // Should we calculate next column and row elements in 2x2 packed cell. + bool hasNextCol = d < ${depth - 1}; + bool hasNextRow = coords.z < ${newWidth - 1}; + + // In parallel, construct four corners for all four components in + // packed 2x2 cell. + vec4 topLeft = vec4( + getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d), + hasNextCol ? getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d + 1) + : 0.0, + hasNextRow ? getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d) + : 0.0, + (hasNextRow && hasNextCol) ? + getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d + 1) : 0.0); + + vec4 bottomLeft = vec4( + getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d), + hasNextCol ? getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d + 1) + : 0.0, + hasNextRow ? getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d) + : 0.0, + (hasNextRow && hasNextCol) ? + getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d + 1) : 0.0); + + vec4 topRight = vec4( + getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d), + hasNextCol ? getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d + 1) + : 0.0, + hasNextRow ? getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d) + : 0.0, + (hasNextRow && hasNextCol) ? + getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d + 1) : 0.0); + + vec4 bottomRight = vec4( + getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d), + hasNextCol ? getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d + 1) + : 0.0, + hasNextRow ? getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d) + : 0.0, + (hasNextRow && hasNextCol) ? + getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d + 1) : 0.0); + + vec3 fracRC = sourceFracIndexRC - vec3(sourceFloorRC); + + vec4 top = mix(topLeft, topRight, fracRC.yyzz); + vec4 bottom = mix(bottomLeft, bottomRight, fracRC.yyzz); + vec4 newValue = mix(top, bottom, fracRC.x); + + setOutput(newValue); + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/resize_nearest_neighbor_backprop_gpu.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class ResizeNearestNeigborBackpropProgram { + constructor(dy, x, alignCorners) { + this.variableNames = ["dy"]; + this.outputShape = []; + this.outputShape = x.shape; + const [, xHeight, xWidth] = x.shape; + const [, yHeight, yWidth] = dy.shape; + const effectiveXSize = [ + alignCorners && yHeight > 1 ? xHeight - 1 : xHeight, + alignCorners && yWidth > 1 ? xWidth - 1 : xWidth + ]; + const effectiveYSize = [ + alignCorners && yHeight > 1 ? yHeight - 1 : yHeight, + alignCorners && yWidth > 1 ? yWidth - 1 : yWidth + ]; + const heightScale = effectiveXSize[0] / effectiveYSize[0]; + const widthScale = effectiveXSize[1] / effectiveYSize[1]; + const invHeightScale = 1 / heightScale; + const invWidthScale = 1 / widthScale; + const winHeight = Math.ceil(invHeightScale) * 2 + 2; + const winWidth = Math.ceil(invWidthScale) * 2 + 2; + this.userCode = ` + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int d = coords[3]; + int r = coords[1]; + int c = coords[2]; + + float accumulator = 0.0; + + const float heightScale = float(${heightScale}); + const float widthScale = float(${widthScale}); + + const float invHeightScale = float(${invHeightScale}); + const float invWidthScale = float(${invWidthScale}); + + const int winHeight = int(${winHeight}); + const int winWidth = int(${winWidth}); + + // Compute bounds for where in dy we will look + float startRLerp = floor(float(r) * invHeightScale); + int startDyR = int(floor(startRLerp - float(winHeight / 2))); + + float startCLerp = floor(float(c) * invWidthScale); + int startDyC = int(floor(startCLerp - float(winWidth / 2))); + + // Loop over dy + for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) { + int dyR = dyROffset + startDyR; + + // Guard against the window exceeding the bounds of dy + if (dyR < 0 || dyR >= ${yHeight}) { + continue; + } + + for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) { + int dyC = dyCOffset + startDyC; + + // Guard against the window exceeding the bounds of dy + if (dyC < 0 || dyC >= ${yWidth}) { + continue; + } + + float sourceFracRow = + float(${effectiveXSize[0]}) * + (float(dyR) / float(${effectiveYSize[0]})); + + float sourceFracCol = + float(${effectiveXSize[1]}) * + (float(dyC) / float(${effectiveYSize[1]})); + + int sourceNearestRow = int(min( + float(int(${xHeight}) - 1), + ${alignCorners} ? float(round(sourceFracRow)) : + float(floor(sourceFracRow)))); + + int sourceNearestCol = int(min( + float(int(${xWidth}) - 1), + ${alignCorners} ? float(round(sourceFracCol)) : + float(floor(sourceFracCol)))); + + if (r == sourceNearestRow && c == sourceNearestCol) { + accumulator += getDy(b, dyR, dyC, d); + } + } + } + // End loop over dy + + setOutput(accumulator); + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/resize_nearest_neighbor_gpu.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class ResizeNearestNeighborProgram { + constructor(inputShape, newHeight, newWidth, alignCorners) { + this.variableNames = ["A"]; + this.outputShape = []; + const [batch, oldHeight, oldWidth, depth] = inputShape; + this.outputShape = [batch, newHeight, newWidth, depth]; + const effectiveInSize = [ + alignCorners && newHeight > 1 ? oldHeight - 1 : oldHeight, + alignCorners && newWidth > 1 ? oldWidth - 1 : oldWidth + ]; + const effectiveOutSize = [ + alignCorners && newHeight > 1 ? newHeight - 1 : newHeight, + alignCorners && newWidth > 1 ? newWidth - 1 : newWidth + ]; + const roundBase = alignCorners ? "0.5" : "0.0"; + this.userCode = ` + const vec2 effectiveInputOverOutputRatioRC = vec2( + ${effectiveInSize[0] / effectiveOutSize[0]}, + ${effectiveInSize[1] / effectiveOutSize[1]}); + const vec2 inputShapeRC = vec2(${oldHeight}.0, ${oldWidth}.0); + + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int d = coords[3]; + ivec2 yRC = coords.yz; + + // Fractional source index. + vec2 sourceFracIndexRC = vec2(yRC) * effectiveInputOverOutputRatioRC; + + // Compute the coordinators of nearest neighbor point. + ivec2 sourceNearestRC = ivec2( + min(inputShapeRC - 1.0, floor(sourceFracIndexRC + ${roundBase}))); + + float newValue = getA(b, sourceNearestRC.x, sourceNearestRC.y, d); + + setOutput(newValue); + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/reverse_gpu.js + /** + * @license + * Copyright 2017 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class ReverseProgram { + constructor(xShape, axis) { + this.variableNames = ["x"]; + const rank = xShape.length; + if (rank > 4) { + throw new Error(`WebGL backend: Reverse of rank-${rank} tensor is not yet supported`); + } + this.outputShape = xShape; + if (rank === 1) { + this.userCode = ` + void main() { + int coord = getOutputCoords(); + setOutput(getX(${xShape[0]} - coord - 1)); + } + `; + return; + } + const getInCoord = (i) => { + if (axis.indexOf(i) !== -1 && xShape[i] !== 1) { + return `${xShape[i]} - coords[${i}] - 1`; + } + return `coords[${i}]`; + }; + const inCoords = xShape.map((_, i) => getInCoord(i)).join(","); + const type = getCoordsDataType(rank); + this.userCode = ` + void main() { + ${type} coords = getOutputCoords(); + setOutput(getX(${inCoords})); + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/reverse_packed_gpu.js + /** + * @license + * Copyright 2019 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class ReversePackedProgram { + constructor(xShape, axis) { + this.variableNames = ["x"]; + this.packedInputs = true; + this.packedOutput = true; + const rank = xShape.length; + if (rank > 4) { + throw new Error(`WebGL backend: Reverse of rank-${rank} tensor is not yet supported`); + } + this.outputShape = xShape; + const channels = getChannels("rc", rank); + const nextColumn = `${channels[rank - 1]} + 1 < ${this.outputShape[rank - 1]}`; + const nextRow = `${channels[rank - 2]} + 1 < ${this.outputShape[rank - 2]}`; + const type = getCoordsDataType(rank); + if (rank === 1) { + this.userCode = ` + void main(){ + int rc = getOutputCoords(); + vec4 result = vec4(0.); + result.r = getChannel(getX(${xShape[0]} - rc - 1), + ${xShape[0]} - rc - 1); + if(${nextColumn}){ + result.g = getChannel(getX(${xShape[0]} - (rc + 1) - 1), + ${xShape[0]} - (rc + 1) - 1); + } + setOutput(result); + } + `; + } else { + this.userCode = ` + void main() { + ${type} rc = getOutputCoords(); + vec4 result = vec4(0.); + result.r = ${getR(channels.slice())}; + if(${nextColumn}){ + result.g = ${getG(channels.slice())}; + } + if(${nextRow}) { + result.b = ${getB(channels.slice())}; + if(${nextColumn}) { + result.a = ${getA(channels.slice())}; + } + } + setOutput(result); + } + `; + } + function getR(channels2) { + return getChannel(channels2); + } + function getG(channels2) { + channels2[rank - 1] = "(" + channels2[rank - 1] + ` + 1)`; + return getChannel(channels2); + } + function getB(channels2) { + channels2[rank - 2] = "(" + channels2[rank - 2] + ` + 1)`; + return getChannel(channels2); + } + function getA(channels2) { + channels2[rank - 1] = "(" + channels2[rank - 1] + ` + 1)`; + channels2[rank - 2] = "(" + channels2[rank - 2] + ` + 1)`; + return getChannel(channels2); + } + function getChannel(channels2) { + const inCoordsArray = xShape.map((_, i) => getInCoord(i, channels2)); + const inCoords = inCoordsArray.join(","); + const innerDims = inCoordsArray.slice(-2).join(","); + return `getChannel(getX(${inCoords}), vec2(${innerDims}))`; + } + function getInCoord(i, channels1) { + if (axis.indexOf(i) !== -1 && xShape[i] !== 1) { + return `${xShape[i]} - ${channels1[i]} - 1`; + } else { + return `${channels1[i]}`; + } + } + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/scatter_gpu.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class ScatterProgram { + constructor(updateSize, sliceDim, indicesRank, updatesRank, strides, shape, summingDupeIndex = true) { + this.variableNames = ["updates", "indices", "defaultValue"]; + this.outputShape = shape; + const stridesType = getCoordsDataType(strides.length); + const dtype = getCoordsDataType(shape.length); + let indicesString = ""; + if (indicesRank === 1) { + indicesString = "i"; + } else if (indicesRank === 2) { + indicesString = "i, j"; + } + const indicesSnippet = `getIndices(${indicesString})`; + let updatesString = ""; + if (updatesRank === 1) { + updatesString = "i"; + } else if (updatesRank === 2) { + updatesString = "i, coords[1]"; + } + const updatesSnippet = `getUpdates(${updatesString})`; + const strideString = sliceDim > 1 ? "strides[j]" : "strides"; + this.userCode = ` + ${stridesType} strides = ${stridesType}(${strides}); + + void main() { + ${dtype} coords = getOutputCoords(); + float sum = 0.0; + bool found = false; + for (int i = 0; i < ${updateSize}; i++) { + int flattenedIndex = 0; + for (int j = 0; j < ${sliceDim}; j++) { + int index = round(${indicesSnippet}); + flattenedIndex += index * ${strideString}; + } + if (flattenedIndex == coords[0]) { + sum += ${updatesSnippet}; + found = true; + } + } + setOutput(mix(getDefaultValue(), sum, float(found))); + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/segment_gpu.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class SegmentOpProgram { + constructor(segOpInfo, segOpType) { + this.variableNames = ["x", "segmentIds"]; + const windowSize = segOpInfo.windowSize; + const batchSize = segOpInfo.batchSize; + const inSize = segOpInfo.inSize; + const numSegments = segOpInfo.numSegments; + const outSize = numSegments * Math.ceil(inSize / windowSize); + this.outputShape = [batchSize, outSize]; + const initializationValue = "0.0"; + const returnValue = `sumValue`; + const windowSizeNearestVec4 = Math.floor(windowSize / 4) * 4; + const windowSizeVec4Remainder = windowSize % 4; + const updateSnippet = ` + sumValue += dot(values, segFilter); + `; + let checkValueOutOfBounds = ""; + if (inSize % windowSize > 0) { + checkValueOutOfBounds = ` + if (inIdx < 0 || inIdx >= ${inSize}) { + return initializationValue; + } + `; + } + let checkSegmentIdOutOfBounds = ""; + if (inSize % windowSize > 0) { + checkSegmentIdOutOfBounds = ` + if (inIdx < 0 || inIdx >= ${inSize}) { + return -1.0; + } + `; + } + this.userCode = ` + const float initializationValue = ${initializationValue}; + + float getValue(int batch, int inIdx) { + ${checkValueOutOfBounds} + return getX(batch, inIdx); + } + + float getSegmentIdAtIndex(int inIdx) { + ${checkSegmentIdOutOfBounds} + return getSegmentIds(inIdx); + } + + void main() { + ivec2 coords = getOutputCoords(); + int batch = coords[0]; + int outIdx = coords[1]; + int inOffset = int(floor(float(outIdx) / float( + ${numSegments})) * float(${windowSize})); + int currentSeg = int(mod(float(outIdx), float(${numSegments}))); + + float sumValue = 0.0; + + for (int i = 0; i < ${windowSizeNearestVec4}; i += 4) { + int inIdx = inOffset + i; + vec4 values = vec4( + getValue(batch, inIdx), + getValue(batch, inIdx + 1), + getValue(batch, inIdx + 2), + getValue(batch, inIdx + 3) + ); + + vec4 segFilter = vec4( + int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0, + int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0, + int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0, + int(getSegmentIdAtIndex(inIdx + 3)) == currentSeg ? 1 : 0 + ); + + ${updateSnippet} + } + + int inIdx = inOffset + ${windowSizeNearestVec4}; + if (${windowSizeVec4Remainder === 1}) { + vec4 values = vec4( + getValue(batch, inIdx), + initializationValue, + initializationValue, + initializationValue + ); + + int inIdxSeg = int(getSegmentIdAtIndex(inIdx)); + + vec4 segFilter = vec4( + int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0, + 0, + 0, + 0 + ); + + ${updateSnippet} + } else if (${windowSizeVec4Remainder === 2}) { + vec4 values = vec4( + getValue(batch, inIdx), + getValue(batch, inIdx + 1), + initializationValue, + initializationValue + ); + + vec4 segFilter = vec4( + int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0, + int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0, + 0, + 0 + ); + + ${updateSnippet} + } else if (${windowSizeVec4Remainder === 3}) { + vec4 values = vec4( + getValue(batch, inIdx), + getValue(batch, inIdx + 1), + getValue(batch, inIdx + 2), + initializationValue + ); + + vec4 segFilter = vec4( + int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0, + int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0, + int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0, + 0 + ); + + ${updateSnippet} + } + setOutput(${returnValue}); + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/select_gpu.js + /** + * @license + * Copyright 2017 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class SelectProgram { + constructor(cRank, shape, rank) { + this.variableNames = ["c", "a", "b"]; + this.outputShape = shape; + let cCoords; + let abCoords; + if (rank > 4) { + throw Error(`Where for rank ${rank} is not yet supported`); + } + if (rank === 1) { + abCoords = `resRC`; + cCoords = `resRC`; + } else { + const currentCoords = ["resRC.x", "resRC.y", "resRC.z", "resRC.w"]; + const cCoordVars = []; + const abCoordVars = []; + for (let i = 0; i < shape.length; i++) { + abCoordVars.push(`${currentCoords[i]}`); + if (i < cRank) { + cCoordVars.push(`${currentCoords[i]}`); + } + } + cCoords = cCoordVars.join(); + abCoords = abCoordVars.join(); + } + const dtype = getCoordsDataType(rank); + this.userCode = ` + void main() { + ${dtype} resRC = getOutputCoords(); + float cVal = getC(${cCoords}); + if (cVal >= 1.0) { + setOutput(getA(${abCoords})); + } else { + setOutput(getB(${abCoords})); + } + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/slice_gpu.js + /** + * @license + * Copyright 2017 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class SliceProgram { + constructor(destSize) { + this.variableNames = ["source"]; + this.outputShape = destSize; + this.rank = destSize.length; + const dtype = getCoordsDataType(this.rank); + const uniformPart = `uniform int start[${this.rank}];`; + const sourceCoords = getCoords2(this.rank); + let body; + const coordSum = destSize.map((_, i) => { + return `sourceLoc.${coords[i]} = start[${i}] + coords.${coords[i]};`; + }); + body = ` + ${dtype} sourceLoc; + ${dtype} coords = getOutputCoords(); + ${coordSum.join("\n")} + `; + this.userCode = ` + ${uniformPart} + void main() { + ${body} + setOutput(getSource(${sourceCoords})); + } + `; + } + getCustomSetupFunc(start) { + if (start.length !== this.rank) { + throw Error(`The rank (${this.rank}) of the program must match the length of start (${start.length})`); + } + return (gpgpu, webGLProgram) => { + if (this.startLoc == null) { + this.startLoc = gpgpu.getUniformLocationNoThrow(webGLProgram, "start"); + if (this.startLoc == null) { + return; + } + } + gpgpu.gl.uniform1iv(this.startLoc, start); + }; + } + } + const coords = ["x", "y", "z", "w", "u", "v"]; + function getCoords2(rank) { + if (rank === 1) { + return "sourceLoc"; + } else if (rank <= 6) { + return coords.slice(0, rank).map((x) => "sourceLoc." + x).join(","); + } else { + throw Error(`Slicing for rank ${rank} is not yet supported`); + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/slice_packed_gpu.js + /** + * @license + * Copyright 2019 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class SlicePackedProgram { + constructor(destSize) { + this.variableNames = ["source"]; + this.packedInputs = true; + this.packedOutput = true; + this.outputShape = destSize; + this.rank = destSize.length; + const dtype = getCoordsDataType(this.rank); + const coords2 = getChannels("coords", this.rank); + const sourceLoc = getChannels("sourceLoc", this.rank); + const innerDims = this.rank === 1 ? "sourceLoc" : `vec2(${sourceLoc.slice(-2).join()})`; + const getChannel = `getChannel(getSource(${sourceLoc.join()}), ${innerDims})`; + const upperRow = ` + result.x = ${getChannel}; + if (++${coords2[this.rank - 1]} < ${destSize[this.rank - 1]}) { + ++${sourceLoc[this.rank - 1]}; + result.y = ${getChannel}; + --${sourceLoc[this.rank - 1]}; + } + `; + const lowerRow = this.rank === 1 ? "" : ` + --${coords2[this.rank - 1]}; + if (++${coords2[this.rank - 2]} < ${destSize[this.rank - 2]}) { + ++${sourceLoc[this.rank - 2]}; + result.z = ${getChannel}; + if (++${coords2[this.rank - 1]} < ${destSize[this.rank - 1]}) { + ++${sourceLoc[this.rank - 1]}; + result.w = ${getChannel}; + } + } + `; + const sourceLocSetup = this.rank <= 4 ? `sourceLoc = coords + + ${dtype}(${destSize.map((_, i) => `start[${i}]`).join()});` : destSize.map((_, i) => `${sourceLoc[i]} = ${coords2[i]} + start[${i}];`).join("\n"); + this.userCode = ` + uniform int start[${this.rank}]; + void main() { + ${dtype} coords = getOutputCoords(); + ${dtype} sourceLoc; + ${sourceLocSetup} + vec4 result = vec4(0.); + ${upperRow} + ${lowerRow} + setOutput(result); + } + `; + } + getCustomSetupFunc(start) { + if (start.length !== this.rank) { + throw Error(`The rank (${this.rank}) of the program must match the length of start (${start.length})`); + } + return (gpgpu, webGLProgram) => { + if (this.startLoc == null) { + this.startLoc = gpgpu.getUniformLocationNoThrow(webGLProgram, "start"); + if (this.startLoc == null) { + return; + } + } + gpgpu.gl.uniform1iv(this.startLoc, start); + }; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/strided_slice_gpu.js + /** + * @license + * Copyright 2017 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class StridedSliceProgram { + constructor(begin, strides, size) { + this.variableNames = ["x"]; + this.outputShape = size; + const rank = size.length; + const inputDtype = getCoordsDataType(size.length); + const dtype = getCoordsDataType(size.length); + let newCoords = ""; + if (rank === 1) { + newCoords = "coords * strides + begin"; + } else { + let outputAxis = 0; + newCoords = size.map((_, i) => { + outputAxis++; + return size.length === 1 ? `coords * strides[${i}] + begin[${i}]` : `coords[${outputAxis - 1}] * strides[${i}] + begin[${i}]`; + }).join(","); + } + this.userCode = ` + ${inputDtype} begin = ${inputDtype}(${begin}); + ${inputDtype} strides = ${inputDtype}(${strides}); + + void main() { + ${dtype} coords = getOutputCoords(); + setOutput(getX(${newCoords})); + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/texture_manager.js + /** + * @license + * Copyright 2017 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class TextureManager { + constructor(gpgpu) { + this.gpgpu = gpgpu; + this.numUsedTextures = 0; + this.numFreeTextures = 0; + this._numBytesAllocated = 0; + this._numBytesFree = 0; + this.freeTextures = {}; + this.logEnabled = false; + this.usedTextures = {}; + } + acquireTexture(shapeRC, usage, isPacked) { + const physicalTexType = getPhysicalFromLogicalTextureType(usage, isPacked); + const shapeKey = getKeyFromTextureShape(shapeRC, physicalTexType, isPacked); + if (!(shapeKey in this.freeTextures)) { + this.freeTextures[shapeKey] = []; + } + if (!(shapeKey in this.usedTextures)) { + this.usedTextures[shapeKey] = []; + } + const texBytes = computeBytes(shapeRC, physicalTexType, this.gpgpu.gl, this.gpgpu.textureConfig, isPacked); + if (this.freeTextures[shapeKey].length > 0) { + this.numFreeTextures--; + this.numUsedTextures++; + this._numBytesFree -= texBytes; + this.log(); + const newTexture2 = this.freeTextures[shapeKey].shift(); + this.usedTextures[shapeKey].push(newTexture2); + return newTexture2; + } + let newTexture; + if (physicalTexType === PhysicalTextureType.PACKED_2X2_FLOAT32) { + newTexture = this.gpgpu.createPackedMatrixTexture(shapeRC[0], shapeRC[1]); + } else if (physicalTexType === PhysicalTextureType.PACKED_2X2_FLOAT16) { + newTexture = this.gpgpu.createFloat16PackedMatrixTexture(shapeRC[0], shapeRC[1]); + } else if (physicalTexType === PhysicalTextureType.UNPACKED_FLOAT32) { + newTexture = this.gpgpu.createFloat32MatrixTexture(shapeRC[0], shapeRC[1]); + } else if (physicalTexType === PhysicalTextureType.UNPACKED_FLOAT16) { + newTexture = this.gpgpu.createFloat16MatrixTexture(shapeRC[0], shapeRC[1]); + } else if (physicalTexType === PhysicalTextureType.PACKED_4X1_UNSIGNED_BYTE) { + newTexture = this.gpgpu.createUnsignedBytesMatrixTexture(shapeRC[0], shapeRC[1]); + } + this.usedTextures[shapeKey].push(newTexture); + this.numUsedTextures++; + this._numBytesAllocated += texBytes; + this.log(); + return newTexture; + } + releaseTexture(texture, shape, logicalTexType, isPacked) { + if (this.freeTextures == null) { + return; + } + const physicalTexType = getPhysicalFromLogicalTextureType(logicalTexType, isPacked); + const shapeKey = getKeyFromTextureShape(shape, physicalTexType, isPacked); + if (!(shapeKey in this.freeTextures)) { + this.freeTextures[shapeKey] = []; + } + const texBytes = computeBytes(shape, physicalTexType, this.gpgpu.gl, this.gpgpu.textureConfig, isPacked); + const deleteTexThreshold = env().get("WEBGL_DELETE_TEXTURE_THRESHOLD"); + if (deleteTexThreshold !== -1 && this._numBytesAllocated > deleteTexThreshold) { + this.gpgpu.deleteMatrixTexture(texture); + this._numBytesAllocated -= texBytes; + } else { + this.freeTextures[shapeKey].push(texture); + this.numFreeTextures++; + this._numBytesFree += texBytes; + } + this.numUsedTextures--; + const texList = this.usedTextures[shapeKey]; + const texIndex = texList.indexOf(texture); + if (texIndex < 0) { + throw new Error("Cannot release a texture that was never provided by this texture manager"); + } + texList.splice(texIndex, 1); + this.log(); + } + log() { + if (!this.logEnabled) { + return; + } + const total = this.numFreeTextures + this.numUsedTextures; + console.log("Free/Used", `${this.numFreeTextures} / ${this.numUsedTextures}`, `(${total})`); + const freeRatio = this._numBytesFree / this._numBytesAllocated; + console.log(`Bytes allocated: ${this._numBytesAllocated}`); + console.log(`Bytes unused: ${this._numBytesFree} (${Math.round(100 * freeRatio)}%)`); + } + get numBytesAllocated() { + return this._numBytesAllocated; + } + get numBytesFree() { + return this._numBytesFree; + } + getNumUsedTextures() { + return this.numUsedTextures; + } + getNumFreeTextures() { + return this.numFreeTextures; + } + dispose() { + if (this.freeTextures == null) { + return; + } + for (const texShape in this.freeTextures) { + this.freeTextures[texShape].forEach((tex) => { + this.gpgpu.deleteMatrixTexture(tex); + }); + } + for (const texShape in this.usedTextures) { + this.usedTextures[texShape].forEach((tex) => { + this.gpgpu.deleteMatrixTexture(tex); + }); + } + this.freeTextures = null; + this.usedTextures = null; + this.numUsedTextures = 0; + this.numFreeTextures = 0; + this._numBytesAllocated = 0; + this._numBytesFree = 0; + } + } + function numBytesForInternalFormat(gl, internalFormat) { + const glany = gl; + if (internalFormat === glany.R32F) { + return 4; + } else if (internalFormat === glany.R16F) { + return 2; + } else if (internalFormat === glany.RGBA32F) { + return 16; + } else if (internalFormat === gl.RGBA) { + return 16; + } else if (internalFormat === glany.RGBA16F) { + return 8; + } + throw new Error(`Unknown internal format ${internalFormat}`); + } + function computeBytes(shape, physicalTexType, gl, textureConfig, isPacked) { + const internalFormat = internalFormatForPhysicalTexType(physicalTexType, textureConfig); + let numElements; + if (isPacked) { + const [packedWidth, packedHeight] = getPackedMatrixTextureShapeWidthHeight(shape[0], shape[1]); + numElements = packedWidth * packedHeight; + } else { + const [width, height] = getUnpackedMatrixTextureShapeWidthHeight(shape[0], shape[1]); + numElements = width * height; + } + const bytesPerElement2 = numBytesForInternalFormat(gl, internalFormat); + return numElements * bytesPerElement2; + } + function internalFormatForPhysicalTexType(physicalTexType, textureConfig) { + switch (physicalTexType) { + case PhysicalTextureType.PACKED_2X2_FLOAT32: + return getInternalFormatForPackedMatrixTexture(textureConfig); + case PhysicalTextureType.PACKED_2X2_FLOAT16: + return getInternalFormatForFloat16PackedMatrixTexture(textureConfig); + case PhysicalTextureType.UNPACKED_FLOAT32: + return getInternalFormatForFloat32MatrixTexture(textureConfig); + case PhysicalTextureType.UNPACKED_FLOAT16: + return getInternalFormatForFloat16MatrixTexture(textureConfig); + case PhysicalTextureType.PACKED_4X1_UNSIGNED_BYTE: + return getInternalFormatForUnsignedBytesMatrixTexture(textureConfig); + default: + throw new Error(`Unknown physical texture type ${physicalTexType}`); + } + } + function getPhysicalTextureForRendering(isPacked) { + if (env().getBool("WEBGL_RENDER_FLOAT32_ENABLED")) { + if (isPacked) { + return PhysicalTextureType.PACKED_2X2_FLOAT32; + } + return PhysicalTextureType.UNPACKED_FLOAT32; + } + if (isPacked) { + return PhysicalTextureType.PACKED_2X2_FLOAT16; + } + return PhysicalTextureType.UNPACKED_FLOAT16; + } + function getPhysicalFromLogicalTextureType(logicalTexType, isPacked) { + if (logicalTexType === TextureUsage.UPLOAD) { + return PhysicalTextureType.PACKED_2X2_FLOAT32; + } else if (logicalTexType === TextureUsage.RENDER || logicalTexType == null) { + return getPhysicalTextureForRendering(isPacked); + } else if (logicalTexType === TextureUsage.DOWNLOAD || logicalTexType === TextureUsage.PIXELS) { + return PhysicalTextureType.PACKED_4X1_UNSIGNED_BYTE; + } + throw new Error(`Unknown logical texture type ${logicalTexType}`); + } + function getKeyFromTextureShape(shapeRowsCol, physicalTexType, isPacked) { + return `${shapeRowsCol[0]}_${shapeRowsCol[1]}_${physicalTexType}_${isPacked}`; + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/tile_gpu.js + /** + * @license + * Copyright 2017 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class TileProgram { + constructor(aShape, reps) { + this.variableNames = ["A"]; + const outputShape = new Array(aShape.length); + for (let i = 0; i < outputShape.length; i++) { + outputShape[i] = aShape[i] * reps[i]; + } + this.outputShape = outputShape; + this.rank = outputShape.length; + const dtype = getCoordsDataType(this.rank); + const sourceCoords = getSourceCoords3(aShape); + this.userCode = ` + void main() { + ${dtype} resRC = getOutputCoords(); + setOutput(getA(${sourceCoords})); + } + `; + } + } + function getSourceCoords3(aShape) { + const rank = aShape.length; + if (rank > 5) { + throw Error(`Tile for rank ${rank} is not yet supported`); + } + if (rank === 1) { + return `imod(resRC, ${aShape[0]})`; + } + const currentCoords = ["resRC.x", "resRC.y", "resRC.z", "resRC.w", "resRC.u"]; + const sourceCoords = []; + for (let i = 0; i < aShape.length; i++) { + sourceCoords.push(`imod(${currentCoords[i]}, ${aShape[i]})`); + } + return sourceCoords.join(); + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/unaryop_gpu.js + /** + * @license + * Copyright 2017 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class UnaryOpProgram { + constructor(aShape, opSnippet) { + this.variableNames = ["A"]; + this.outputShape = aShape; + this.userCode = ` + float unaryOperation(float x) { + ${opSnippet} + } + + void main() { + float x = getAAtOutCoords(); + float y = unaryOperation(x); + + setOutput(y); + } + `; + } + } + const CHECK_NAN_SNIPPET3 = `if (isnan(x)) return x;`; + const LINEAR = `return x;`; + const ABS = `return abs(x);`; + const RELU = CHECK_NAN_SNIPPET3 + ` + return (x < 0.0) ? 0.0 : x; +`; + const RELU6 = CHECK_NAN_SNIPPET3 + ` + return (x < 0.0) ? 0.0 : min(6.0, x); +`; + const ELU2 = `return (x >= 0.0) ? x : (exp(x) - 1.0);`; + const SELU = ` + // Stable and Attracting Fixed Point (0, 1) for Normalized Weights. + // see: https://arxiv.org/abs/1706.02515 + float scaleAlpha = ${backend_util_exports.SELU_SCALEALPHA}; + float scale = ${backend_util_exports.SELU_SCALE}; + return (x >= 0.0) ? scale * x : scaleAlpha * (exp(x) - 1.0); +`; + function STEP(alpha = 0) { + return CHECK_NAN_SNIPPET3 + ` + return x > 0.0 ? 1.0 : float(${alpha}); + `; + } + const NEG = `return -x;`; + const CEIL = `return ceil(x);`; + const FLOOR = `return floor(x);`; + const SIGN = ` + if (isnan(x)) { return 0.0; } + return sign(x); +`; + const IS_NAN = `return float(isnan(x));`; + const IS_INF = `return float(isinf(x));`; + const IS_FINITE = `return float(!isnan(x) && !isinf(x));`; + const ROUND = ` + // OpenGL ES does not support round function. + // The algorithm is based on banker's rounding. + float base = floor(x); + if ((x - base) < 0.5) { + return floor(x); + } else if ((x - base) > 0.5) { + return ceil(x); + } else { + if (mod(base, 2.0) == 0.0) { + return base; + } else { + return base + 1.0; + } + } +`; + const EXP = `return exp(x);`; + const EXPM1 = `return exp(x) - 1.0;`; + const LOG = `if (x < 0.0) return NAN; + return log(x);`; + const LOG1P = `return log(1.0 + x);`; + const SQRT = `return sqrt(x);`; + const RSQRT = `return inversesqrt(x);`; + const SIGMOID = `return 1.0 / (1.0 + exp(-1.0 * x));`; + const SOFTPLUS = ` + float epsilon = 1.1920928955078125e-7; + float threshold = log(epsilon) + 2.0; + + bool too_large = x > -threshold; + bool too_small = x < threshold; + + float result; + float exp_x = exp(x); + + if (too_large){ + result = x; + } + else if (too_small){ + result = exp_x; + } + else{ + result = log(exp_x + 1.0); + } + return result; +`; + const SIN = CHECK_NAN_SNIPPET3 + ` + return sin(x); +`; + const COS = CHECK_NAN_SNIPPET3 + ` + return cos(x); +`; + const TAN = `return tan(x);`; + const ASIN = CHECK_NAN_SNIPPET3 + ` + if (abs(x) > 1.) { + return NAN; + } + return asin(x); +`; + const ACOS = CHECK_NAN_SNIPPET3 + ` + if (abs(x) > 1.) { + return NAN; + } + return acos(x); +`; + const ATAN = CHECK_NAN_SNIPPET3 + ` + return atan(x); +`; + const SINH = ` + float e2x = exp(x); + return (e2x - 1.0 / e2x) / 2.0; +`; + const COSH = ` + float e2x = exp(-x); + return (e2x + 1.0 / e2x) / 2.0; +`; + const TANH = ` + float e2x = exp(-2.0 * abs(x)); + return sign(x) * (1.0 - e2x) / (1.0 + e2x); +`; + const ASINH = CHECK_NAN_SNIPPET3 + `return log(x + sqrt(x * x + 1.0));`; + const ACOSH = CHECK_NAN_SNIPPET3 + ` + if (x < 1.0) return NAN; + return log(x + sqrt(x * x - 1.0));`; + const ATANH = CHECK_NAN_SNIPPET3 + ` + if ((x < -1.0) || (x > 1.0)) return NAN; + return (log(1.0 + x) - log(1.0 - x)) / 2.0;`; + const ERF = ` + // Error function is calculated approximately with elementary function. + // See "Handbook of Mathematical Functions with Formulas, + // Graphs, and Mathematical Tables", Abramowitz and Stegun. + float p = ${backend_util_exports.ERF_P}; + float a1 = ${backend_util_exports.ERF_A1}; + float a2 = ${backend_util_exports.ERF_A2}; + float a3 = ${backend_util_exports.ERF_A3}; + float a4 = ${backend_util_exports.ERF_A4}; + float a5 = ${backend_util_exports.ERF_A5}; + + float sign = sign(x); + x = abs(x); + float t = 1.0 / (1.0 + p * x); + return sign * (1.0 - (((((a5*t + a4)*t) + a3)*t + a2)*t + a1)*t*exp(-x*x)); +`; + const SQUARE = `return x * x;`; + const RECIPROCAL = `return 1.0 / x;`; + const LOGICAL_NOT = `return float(!(x >= 1.0));`; + const TO_INT = `return float(int(x));`; + const CLONE = "return x;"; + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/unaryop_packed_gpu.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const LINEAR2 = `return x;`; + const LOG2 = ` + vec4 result = log(x); + vec4 isNaN = vec4(lessThan(x, vec4(0.0))); + result.r = isNaN.r == 1.0 ? NAN : result.r; + result.g = isNaN.g == 1.0 ? NAN : result.g; + result.b = isNaN.b == 1.0 ? NAN : result.b; + result.a = isNaN.a == 1.0 ? NAN : result.a; + + return result; +`; + const RELU2 = ` + vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); + bvec4 isNaN = isnan(x); + + result.r = isNaN.r ? x.r : result.r; + result.g = isNaN.g ? x.g : result.g; + result.b = isNaN.b ? x.b : result.b; + result.a = isNaN.a ? x.a : result.a; + + return result; +`; + const RELU62 = ` + vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); + bvec4 isNaN = isnan(x); + + result.r = isNaN.r ? x.r : result.r; + result.g = isNaN.g ? x.g : result.g; + result.b = isNaN.b ? x.b : result.b; + result.a = isNaN.a ? x.a : result.a; + + return result; +`; + const ELU3 = ` + vec4 result; + + result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); + result.g = (x.g >= 0.0) ? x.g : (exp(x.g) - 1.0); + result.b = (x.b >= 0.0) ? x.b : (exp(x.b) - 1.0); + result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); + + return result; +`; + class UnaryOpPackedProgram { + constructor(aShape, opSnippet) { + this.variableNames = ["A"]; + this.packedInputs = true; + this.packedOutput = true; + this.outputShape = aShape; + this.userCode = ` + vec4 unaryOperation(vec4 x) { + ${opSnippet} + } + + void main() { + vec4 x = getAAtOutCoords(); + vec4 y = unaryOperation(x); + + setOutput(y); + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/unpack_gpu.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class UnpackProgram { + constructor(outputShape) { + this.variableNames = ["A"]; + this.packedInputs = true; + this.packedOutput = false; + this.outputShape = outputShape; + const rank = outputShape.length; + const channels = getChannels("rc", rank); + const dtype = getCoordsDataType(rank); + const sourceCoords = getSourceCoords(rank, channels); + const innerDims = channels.slice(-2); + const coords2 = rank <= 1 ? "rc" : `vec2(${innerDims.join(",")})`; + this.userCode = ` + void main() { + ${dtype} rc = getOutputCoords(); + vec4 packedInput = getA(${sourceCoords}); + + setOutput(getChannel(packedInput, ${coords2})); + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/backend_webgl.js + /** + * @license + * Copyright 2017 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const {segment_util: segment_util2} = backend_util_exports; + const split9 = kernel_impls_exports.split; + const tile8 = kernel_impls_exports.tile; + const topkImpl3 = kernel_impls_exports.topkImpl; + const whereImpl3 = kernel_impls_exports.whereImpl; + const EPSILON_FLOAT322 = 1e-7; + const EPSILON_FLOAT162 = 1e-4; + const binaryCaches = {}; + function getBinaryCache(webGLVersion) { + if (webGLVersion in binaryCaches) { + return binaryCaches[webGLVersion]; + } + binaryCaches[webGLVersion] = {}; + return binaryCaches[webGLVersion]; + } + function mapActivationToShaderProgram(activation2, packed = false) { + if (activation2 === "linear") { + if (packed) { + return LINEAR2; + } + return LINEAR; + } else if (activation2 === "relu") { + if (packed) { + return RELU2; + } + return RELU; + } else if (activation2 === "elu") { + if (packed) { + return ELU3; + } + return ELU2; + } else if (activation2 === "relu6") { + if (packed) { + return RELU62; + } + return RELU6; + } else if (activation2 === "prelu") { + if (packed) { + return PRELU2; + } + return PRELU; + } + throw new Error(`Activation ${activation2} has not been implemented for the WebGL backend.`); + } + const CPU_HANDOFF_SIZE_THRESHOLD = 128; + const BEFORE_PAGING_CONSTANT = 600; + function numMBBeforeWarning() { + if (env().global.screen == null) { + return 1024; + } + return env().global.screen.height * env().global.screen.width * window.devicePixelRatio * BEFORE_PAGING_CONSTANT / 1024 / 1024; + } + const MATMUL_SHARED_DIM_THRESHOLD = 1e3; + class MathBackendWebGL extends KernelBackend { + constructor(gpgpu) { + super(); + this.pendingRead = new WeakMap(); + this.pendingDisposal = new WeakSet(); + this.dataRefCount = new WeakMap(); + this.numBytesInGPU = 0; + this.uploadWaitMs = 0; + this.downloadWaitMs = 0; + this.warnedAboutMemory = false; + this.warnedAboutCPUBackend = false; + this.pendingDeletes = 0; + this.disposed = false; + if (!env().getBool("HAS_WEBGL")) { + throw new Error("WebGL is not supported on this device"); + } + if (gpgpu == null) { + const gl = getWebGLContext(env().getNumber("WEBGL_VERSION")); + this.binaryCache = getBinaryCache(env().getNumber("WEBGL_VERSION")); + this.gpgpu = new GPGPUContext(gl); + this.canvas = gl.canvas; + this.gpgpuCreatedLocally = true; + } else { + this.gpgpu = gpgpu; + this.binaryCache = {}; + this.gpgpuCreatedLocally = false; + this.canvas = gpgpu.gl.canvas; + } + this.textureManager = new TextureManager(this.gpgpu); + this.numMBBeforeWarning = numMBBeforeWarning(); + this.texData = new DataStorage(this, engine22()); + } + numDataIds() { + return this.texData.numDataIds() + (this.cpuBackend ? this.cpuBackend.numDataIds() : 0) - this.pendingDeletes; + } + write(values, shape, dtype) { + if (env().getBool("WEBGL_CHECK_NUMERICAL_PROBLEMS") || env().getBool("DEBUG")) { + this.checkNumericalProblems(values); + } + if (dtype === "complex64" && values != null) { + throw new Error(`Cannot write to a complex64 dtype. Please use tf.complex(real, imag).`); + } + const dataId = {}; + this.texData.set(dataId, {shape, dtype, values, usage: TextureUsage.UPLOAD}); + return dataId; + } + move(dataId, values, shape, dtype) { + if (env().getBool("DEBUG")) { + this.checkNumericalProblems(values); + } + if (dtype === "complex64") { + throw new Error(`Cannot write to a complex64 dtype. Please use tf.complex(real, imag).`); + } + this.texData.set(dataId, {shape, dtype, values, usage: TextureUsage.UPLOAD}); + } + readSync(dataId) { + const texData = this.texData.get(dataId); + const {values, dtype, complexTensors, slice: slice17, shape, isPacked} = texData; + if (slice17 != null) { + let program; + if (isPacked) { + program = new UnaryOpPackedProgram(shape, CLONE); + } else { + program = new UnaryOpProgram(shape, CLONE); + } + const res = this.runWebGLProgram(program, [{dataId, shape, dtype}], dtype); + const data = this.readSync(res.dataId); + this.disposeData(res.dataId); + return data; + } + if (values != null) { + return this.convertAndCacheOnCPU(dataId); + } + if (dtype === "string") { + return values; + } + const shouldTimeProgram = this.activeTimers != null; + let start; + if (shouldTimeProgram) { + start = util_exports.now(); + } + let result; + if (dtype === "complex64") { + const realValues = complexTensors.real.dataSync(); + const imagValues = complexTensors.imag.dataSync(); + result = backend_util_exports.mergeRealAndImagArrays(realValues, imagValues); + } else { + result = this.getValuesFromTexture(dataId); + } + if (shouldTimeProgram) { + this.downloadWaitMs += util_exports.now() - start; + } + return this.convertAndCacheOnCPU(dataId, result); + } + async read(dataId) { + if (this.pendingRead.has(dataId)) { + const subscribers2 = this.pendingRead.get(dataId); + return new Promise((resolve) => subscribers2.push(resolve)); + } + const texData = this.texData.get(dataId); + const {values, shape, slice: slice17, dtype, complexTensors, isPacked} = texData; + if (slice17 != null) { + let program; + if (isPacked) { + program = new UnaryOpPackedProgram(shape, CLONE); + } else { + program = new UnaryOpProgram(shape, CLONE); + } + const res = this.runWebGLProgram(program, [{dataId, shape, dtype}], dtype); + const data = this.read(res.dataId); + this.disposeData(res.dataId); + return data; + } + if (values != null) { + return this.convertAndCacheOnCPU(dataId); + } + if (!env().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED") && env().getNumber("WEBGL_VERSION") === 2) { + throw new Error(`tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.`); + } + let buffer10 = null; + let tmpDownloadTarget; + if (dtype !== "complex64" && env().get("WEBGL_BUFFER_SUPPORTED")) { + tmpDownloadTarget = this.decode(dataId); + const tmpData = this.texData.get(tmpDownloadTarget.dataId); + buffer10 = this.gpgpu.createBufferFromTexture(tmpData.texture, ...getDenseTexShape(shape)); + } + this.pendingRead.set(dataId, []); + if (dtype !== "complex64") { + await this.gpgpu.createAndWaitForFence(); + } + let vals; + if (dtype === "complex64") { + const ps = await Promise.all([complexTensors.real.data(), complexTensors.imag.data()]); + const realValues = ps[0]; + const imagValues = ps[1]; + vals = backend_util_exports.mergeRealAndImagArrays(realValues, imagValues); + } else if (buffer10 == null) { + vals = this.getValuesFromTexture(dataId); + } else { + const size = util_exports.sizeFromShape(shape); + vals = this.gpgpu.downloadFloat32MatrixFromBuffer(buffer10, size); + } + if (tmpDownloadTarget != null) { + this.disposeData(tmpDownloadTarget.dataId); + } + const dTypeVals = this.convertAndCacheOnCPU(dataId, vals); + const subscribers = this.pendingRead.get(dataId); + this.pendingRead.delete(dataId); + subscribers.forEach((resolve) => resolve(dTypeVals)); + if (this.pendingDisposal.has(dataId)) { + this.pendingDisposal.delete(dataId); + this.disposeData(dataId); + this.pendingDeletes--; + } + return dTypeVals; + } + checkNumericalProblems(values) { + if (values == null) { + return; + } + for (let i = 0; i < values.length; i++) { + const num = values[i]; + if (!canBeRepresented(num)) { + if (env().getBool("WEBGL_RENDER_FLOAT32_CAPABLE")) { + throw Error(`The value ${num} cannot be represented with your current settings. Consider enabling float32 rendering: 'tf.env().set('WEBGL_RENDER_FLOAT32_ENABLED', true);'`); + } + throw Error(`The value ${num} cannot be represented on this device.`); + } + } + } + getValuesFromTexture(dataId) { + const {shape, dtype, isPacked} = this.texData.get(dataId); + const size = util_exports.sizeFromShape(shape); + if (env().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")) { + const tmpTarget = this.decode(dataId); + const tmpData2 = this.texData.get(tmpTarget.dataId); + const vals2 = this.gpgpu.downloadMatrixFromPackedTexture(tmpData2.texture, ...getDenseTexShape(shape)).subarray(0, size); + this.disposeData(tmpTarget.dataId); + return vals2; + } + const shouldUsePackedProgram = env().getBool("WEBGL_PACK") && isPacked === true; + const outputShape = shouldUsePackedProgram ? getShapeAs3D(shape) : shape; + const program = shouldUsePackedProgram ? new EncodeFloatPackedProgram(outputShape) : new EncodeFloatProgram(outputShape); + const output = this.runWebGLProgram(program, [{shape: outputShape, dtype, dataId}], "float32"); + const tmpData = this.texData.get(output.dataId); + const vals = this.gpgpu.downloadByteEncodedFloatMatrixFromOutputTexture(tmpData.texture, tmpData.texShape[0], tmpData.texShape[1]).subarray(0, size); + this.disposeData(output.dataId); + return vals; + } + async time(f) { + const oldActiveTimers = this.activeTimers; + const newActiveTimers = []; + let outerMostTime = false; + if (this.programTimersStack == null) { + this.programTimersStack = newActiveTimers; + outerMostTime = true; + } else { + this.activeTimers.push(newActiveTimers); + } + this.activeTimers = newActiveTimers; + f(); + const flattenedActiveTimerQueries = util_exports.flatten(this.activeTimers.map((d) => d.query)).filter((d) => d != null); + const flattenedActiveTimerNames = util_exports.flatten(this.activeTimers.map((d) => d.name)).filter((d) => d != null); + this.activeTimers = oldActiveTimers; + if (outerMostTime) { + this.programTimersStack = null; + } + const res = { + uploadWaitMs: this.uploadWaitMs, + downloadWaitMs: this.downloadWaitMs, + kernelMs: null, + wallMs: null + }; + if (env().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE") > 0) { + const kernelMs = await Promise.all(flattenedActiveTimerQueries); + res["kernelMs"] = util_exports.sum(kernelMs); + res["getExtraProfileInfo"] = () => kernelMs.map((d, i) => ({name: flattenedActiveTimerNames[i], ms: d})).map((d) => `${d.name}: ${d.ms}`).join(", "); + } else { + res["kernelMs"] = { + error: "WebGL query timers are not supported in this environment." + }; + } + this.uploadWaitMs = 0; + this.downloadWaitMs = 0; + return res; + } + memory() { + return { + unreliable: false, + numBytesInGPU: this.numBytesInGPU, + numBytesInGPUAllocated: this.textureManager.numBytesAllocated, + numBytesInGPUFree: this.textureManager.numBytesFree + }; + } + startTimer() { + if (env().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE") > 0) { + return this.gpgpu.beginQuery(); + } + return {startMs: util_exports.now(), endMs: null}; + } + endTimer(query) { + if (env().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE") > 0) { + this.gpgpu.endQuery(); + return query; + } + query.endMs = util_exports.now(); + return query; + } + async getQueryTime(query) { + if (env().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE") > 0) { + return this.gpgpu.waitForQueryAndGetTime(query); + } + const timerQuery = query; + return timerQuery.endMs - timerQuery.startMs; + } + disposeData(dataId) { + if (this.pendingDisposal.has(dataId)) { + return; + } + if (this.pendingRead.has(dataId)) { + this.pendingDisposal.add(dataId); + this.pendingDeletes++; + return; + } + if (!this.texData.has(dataId)) { + return; + } + this.releaseGPUData(dataId); + const {complexTensors} = this.texData.get(dataId); + if (complexTensors != null) { + complexTensors.real.dispose(); + complexTensors.imag.dispose(); + } + this.texData.delete(dataId); + } + releaseGPUData(dataId) { + const {texture, dtype, texShape, usage, isPacked, slice: slice17} = this.texData.get(dataId); + const key = slice17 && slice17.origDataId || dataId; + const refCount = this.dataRefCount.get(key); + if (refCount > 1) { + this.dataRefCount.set(key, refCount - 1); + } else { + this.dataRefCount.delete(key); + if (texture != null) { + this.numBytesInGPU -= this.computeBytes(texShape, dtype); + this.textureManager.releaseTexture(texture, texShape, usage, isPacked); + } + } + const texData = this.texData.get(dataId); + texData.texture = null; + texData.texShape = null; + texData.isPacked = false; + texData.slice = null; + } + getTexture(dataId) { + this.uploadToGPU(dataId); + return this.texData.get(dataId).texture; + } + getDataInfo(dataId) { + return this.texData.get(dataId); + } + getCPUBackend() { + if (!env().getBool("WEBGL_CPU_FORWARD")) { + return null; + } + if (this.cpuBackend == null) { + this.cpuBackend = engine22().findBackend("cpu"); + } + return this.cpuBackend; + } + shouldExecuteOnCPU(inputs, sizeThreshold = CPU_HANDOFF_SIZE_THRESHOLD) { + const cpuBackend = this.getCPUBackend(); + if (!this.warnedAboutCPUBackend && cpuBackend == null && !env().getBool("IS_TEST")) { + console.warn("Your application contains ops that are small enough to be executed on the CPU backend, however the CPU backend cannot be found. Consider importing the CPU backend (@tensorflow/tfjs-backend-cpu) for better performance."); + this.warnedAboutCPUBackend = true; + } + return cpuBackend != null && inputs.every((input2) => this.texData.get(input2.dataId).texture == null && util_exports.sizeFromShape(input2.shape) < sizeThreshold); + } + getGPGPUContext() { + return this.gpgpu; + } + complex(real6, imag6) { + const result = this.makeOutput(real6.shape, "complex64"); + const resultData = this.texData.get(result.dataId); + resultData.complexTensors = { + real: engine22().keep(real6.clone()), + imag: engine22().keep(imag6.clone()) + }; + return result; + } + real(input2) { + const resultData = this.texData.get(input2.dataId); + return resultData.complexTensors.real.clone(); + } + imag(input2) { + const resultData = this.texData.get(input2.dataId); + return resultData.complexTensors.imag.clone(); + } + slice(x, begin, size) { + if (this.shouldExecuteOnCPU([x])) { + return this.cpuBackend.slice(x, begin, size); + } + if (util_exports.sizeFromShape(size) === 0) { + return tensor5([], size, x.dtype); + } + const {isPacked} = this.texData.get(x.dataId); + const isContinous = slice_util_exports.isSliceContinous(x.shape, begin, size); + if (isPacked || !isContinous) { + const program = env().getBool("WEBGL_PACK_ARRAY_OPERATIONS") ? new SlicePackedProgram(size) : new SliceProgram(size); + const customSetup = program.getCustomSetupFunc(begin); + return this.compileAndRun(program, [x], null, customSetup); + } + this.uploadToGPU(x.dataId); + return this.shallowSlice(x, begin, size); + } + shallowSlice(x, begin, size) { + const xTexData = this.texData.get(x.dataId); + const t = this.makeOutput(size, x.dtype); + const newTexData = this.texData.get(t.dataId); + Object.assign(newTexData, xTexData); + newTexData.shape = size; + newTexData.dtype = x.dtype; + let flatOffset = slice_util_exports.computeFlatOffset(begin, x.strides); + if (xTexData.slice) { + flatOffset += xTexData.slice.flatOffset; + } + newTexData.slice = { + flatOffset, + origDataId: xTexData.slice && xTexData.slice.origDataId || x.dataId + }; + const refCount = this.dataRefCount.get(newTexData.slice.origDataId) || 1; + this.dataRefCount.set(newTexData.slice.origDataId, refCount + 1); + return t; + } + stridedSlice(x, begin, end, strides) { + if (this.shouldExecuteOnCPU([x])) { + return this.cpuBackend.stridedSlice(x, begin, end, strides); + } + const outShape = slice_util_exports.computeOutShape(begin, end, strides); + if (outShape.some((axis) => axis === 0)) { + return tensor5([], outShape); + } + const program = new StridedSliceProgram(begin, strides, outShape); + return this.compileAndRun(program, [x]); + } + reverse(x, axis) { + const program = env().getBool("WEBGL_PACK_ARRAY_OPERATIONS") ? new ReversePackedProgram(x.shape, axis) : new ReverseProgram(x.shape, axis); + return this.compileAndRun(program, [x]); + } + concat(tensors, axis) { + if (tensors[0].dtype === "complex64") { + const reals = tensors.map((t) => real(t)); + const imags = tensors.map((t) => imag(t)); + return complex(this.concat(reals, axis), this.concat(imags, axis)); + } + if (this.shouldExecuteOnCPU(tensors)) { + return this.cpuBackend.concat(tensors, axis); + } + if (tensors.length === 1) { + return tensors[0]; + } + if (tensors.length > env().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER")) { + const midIndex = Math.floor(tensors.length / 2); + const leftSide = this.concat(tensors.slice(0, midIndex), axis); + const rightSide = this.concat(tensors.slice(midIndex), axis); + return this.concat([leftSide, rightSide], axis); + } + if (env().getBool("WEBGL_PACK_ARRAY_OPERATIONS") && tensors[0].rank > 1) { + const program2 = new ConcatPackedProgram(tensors.map((t) => t.shape), axis); + return this.compileAndRun(program2, tensors); + } + const outShape = backend_util_exports.computeOutShape(tensors.map((t) => t.shape), axis); + const tensors2D = tensors.map((t) => t.as2D(-1, util_exports.sizeFromShape(t.shape.slice(axis)))); + const program = new ConcatProgram(tensors2D.map((t) => t.shape)); + const res = this.compileAndRun(program, tensors2D); + return res.reshape(outShape); + } + neg(x) { + if (this.shouldExecuteOnCPU([x])) { + return this.cpuBackend.neg(x); + } + if (env().getBool("WEBGL_PACK_UNARY_OPERATIONS")) { + return this.packedUnaryOp(x, NEG, x.dtype); + } + const program = new UnaryOpProgram(x.shape, NEG); + return this.compileAndRun(program, [x]); + } + batchMatMul(a, b, transposeA, transposeB) { + const outerShapeA = transposeA ? a.shape[2] : a.shape[1]; + const outerShapeB = transposeB ? b.shape[1] : b.shape[2]; + const sharedDim = transposeA ? a.shape[1] : a.shape[2]; + const [batch, ,] = a.shape; + if ((outerShapeA === 1 || outerShapeB === 1) && sharedDim > MATMUL_SHARED_DIM_THRESHOLD) { + if (transposeA) { + a = transpose(a, [0, 2, 1]); + } + if (transposeB) { + b = transpose(b, [0, 2, 1]); + } + const a3D = outerShapeB === 1 ? a : a.as3D(batch, sharedDim, 1); + const axis = outerShapeB === 1 ? 2 : 1; + const b3D = outerShapeB === 1 ? b.as3D(batch, 1, sharedDim) : b; + return this.multiply(a3D, b3D).sum(axis, true); + } + const dtype = upcastType(a.dtype, b.dtype); + const program = new MatMulPackedProgram(a.shape, [batch, outerShapeA, outerShapeB], transposeA, transposeB); + return this.compileAndRun(program, [a, b], dtype); + } + fusedBatchMatMul({a, b, transposeA, transposeB, bias, activation: activation2, preluActivationWeights}) { + const outerShapeA = transposeA ? a.shape[2] : a.shape[1]; + const outerShapeB = transposeB ? b.shape[1] : b.shape[2]; + const [batch, ,] = a.shape; + const dtype = upcastType(a.dtype, b.dtype); + const hasBias = bias != null; + const hasPreluActivationWeights = preluActivationWeights != null; + const fusedActivation = activation2 ? mapActivationToShaderProgram(activation2, true) : null; + const program = new MatMulPackedProgram(a.shape, [batch, outerShapeA, outerShapeB], transposeA, transposeB, hasBias, fusedActivation, hasPreluActivationWeights); + const inputs = [a, b]; + if (bias) { + inputs.push(bias); + } + if (preluActivationWeights) { + inputs.push(preluActivationWeights); + } + return this.compileAndRun(program, inputs, dtype); + } + multiply(a, b) { + if (a.dtype === "complex64") { + const aData = this.texData.get(a.dataId); + const bData = this.texData.get(b.dataId); + const realProgram = new BinaryOpComplexProgram(COMPLEX_MULTIPLY.REAL, a.shape, b.shape); + const imagProgram = new BinaryOpComplexProgram(COMPLEX_MULTIPLY.IMAG, a.shape, b.shape); + const inputs = [ + this.makeComplexComponentTensorInfo(a, aData.complexTensors.real), + this.makeComplexComponentTensorInfo(a, aData.complexTensors.imag), + this.makeComplexComponentTensorInfo(b, bData.complexTensors.real), + this.makeComplexComponentTensorInfo(b, bData.complexTensors.imag) + ]; + const real6 = this.compileAndRun(realProgram, inputs); + const imag6 = this.compileAndRun(imagProgram, inputs); + const complex9 = this.complex(real6, imag6); + real6.dispose(); + imag6.dispose(); + return complex9; + } + if (this.shouldExecuteOnCPU([a, b])) { + return this.cpuBackend.multiply(a, b); + } + if (env().getBool("WEBGL_PACK_BINARY_OPERATIONS")) { + return this.packedBinaryOp(a, b, MUL, a.dtype); + } + const program = new BinaryOpProgram(MUL, a.shape, b.shape); + return this.compileAndRun(program, [a, b], a.dtype); + } + batchNorm(x, mean5, variance, offset, scale2, varianceEpsilon) { + const inputs = [x, mean5, variance]; + let offsetShape = null; + if (offset != null) { + offsetShape = offset.shape; + inputs.push(offset); + } + let scaleShape = null; + if (scale2 != null) { + scaleShape = scale2.shape; + inputs.push(scale2); + } + if (env().getBool("WEBGL_PACK_NORMALIZATION")) { + const batchNormPackedProgram = new BatchNormPackedProgram(x.shape, mean5.shape, variance.shape, offsetShape, scaleShape, varianceEpsilon); + return this.compileAndRun(batchNormPackedProgram, inputs); + } + const batchNormProgram = new BatchNormProgram(x.shape, mean5.shape, variance.shape, offsetShape, scaleShape, varianceEpsilon); + return this.compileAndRun(batchNormProgram, inputs); + } + localResponseNormalization4D(x, radius, bias, alpha, beta) { + const program = env().getBool("WEBGL_PACK_NORMALIZATION") ? new LRNPackedProgram(x.shape, radius, bias, alpha, beta) : new LRNProgram(x.shape, radius, bias, alpha, beta); + return this.compileAndRun(program, [x]); + } + LRNGrad(dy, inputImage, outputImage, depthRadius, bias, alpha, beta) { + const program = new LRNGradProgram(inputImage.shape, depthRadius, bias, alpha, beta); + return this.compileAndRun(program, [inputImage, outputImage, dy]); + } + tile(x, reps) { + if (x.dtype === "string") { + const data = this.readSync(x.dataId); + const decodedData = data.map((d) => util_exports.decodeString(d)); + const buf = buffer(x.shape, x.dtype, decodedData); + return tile8(buf, reps); + } + const program = new TileProgram(x.shape, reps); + return this.compileAndRun(program, [x]); + } + pad(x, paddings, constantValue) { + const program = env().getBool("WEBGL_PACK_ARRAY_OPERATIONS") ? new PadPackedProgram(x.shape, paddings, constantValue) : new PadProgram(x.shape, paddings, constantValue); + return this.compileAndRun(program, [x]); + } + gather(x, indices, axis) { + if (this.shouldExecuteOnCPU([x, indices])) { + return this.cpuBackend.gather(x, indices, axis); + } + const program = new GatherProgram(x.shape, indices.size, axis); + return this.compileAndRun(program, [x, indices]); + } + batchToSpaceND(x, blockShape, crops) { + util_exports.assert(x.rank <= 4, () => "batchToSpaceND for rank > 4 with a WebGL backend not implemented yet"); + const prod3 = blockShape.reduce((a, b) => a * b); + const reshaped = backend_util_exports.getReshaped(x.shape, blockShape, prod3); + const permuted = backend_util_exports.getPermuted(reshaped.length, blockShape.length); + const reshapedPermuted = backend_util_exports.getReshapedPermuted(x.shape, blockShape, prod3); + const sliceBeginCoords = backend_util_exports.getSliceBeginCoords(crops, blockShape.length); + const sliceSize = backend_util_exports.getSliceSize(reshapedPermuted, crops, blockShape.length); + return transpose(x.reshape(reshaped), permuted).reshape(reshapedPermuted).slice(sliceBeginCoords, sliceSize); + } + spaceToBatchND(x, blockShape, paddings) { + util_exports.assert(x.rank <= 4, () => "spaceToBatchND for rank > 4 with a WebGL backend not implemented yet"); + const prod3 = blockShape.reduce((a, b) => a * b); + const completePaddings = [[0, 0]]; + completePaddings.push(...paddings); + for (let i = 1 + blockShape.length; i < x.shape.length; ++i) { + completePaddings.push([0, 0]); + } + const paddedX = x.pad(completePaddings); + const reshapedPaddedShape = backend_util_exports.getReshaped(paddedX.shape, blockShape, prod3, false); + const permutedReshapedPaddedPermutation = backend_util_exports.getPermuted(reshapedPaddedShape.length, blockShape.length, false); + const flattenShape = backend_util_exports.getReshapedPermuted(paddedX.shape, blockShape, prod3, false); + const paddedXT = transpose(paddedX.reshape(reshapedPaddedShape), permutedReshapedPaddedPermutation); + return reshape(paddedXT, flattenShape); + } + reduce(x, reduceType, dtype) { + const batchSize = x.shape[0]; + const inSize = x.shape[1]; + const windowSize = backend_util_exports.computeOptimalWindowSize(inSize); + const reduceInfo = {windowSize, inSize, batchSize}; + const program = new ReduceProgram(reduceInfo, reduceType); + const output = this.compileAndRun(program, [x], dtype); + if (output.shape[1] === 1) { + return output; + } + return this.reduce(output, reduceType, dtype); + } + argReduce(x, reduceType, bestIndicesA = null) { + let batchSize = x.shape[0]; + let inSize = x.shape[1]; + if (bestIndicesA != null) { + batchSize = bestIndicesA.shape[0]; + inSize = bestIndicesA.shape[1]; + } + const windowSize = backend_util_exports.computeOptimalWindowSize(inSize); + const reduceInfo = {windowSize, inSize, batchSize}; + const program = new ArgMinMaxProgram(reduceInfo, reduceType, bestIndicesA == null); + const inputs = [x]; + if (bestIndicesA != null) { + inputs.push(bestIndicesA); + } + const output = this.compileAndRun(program, inputs, "int32"); + if (output.shape[1] === 1) { + return output; + } + return this.argReduce(x, reduceType, output); + } + argReducePacked(x, reduceType, bestIndicesA = null) { + const inShape = bestIndicesA != null ? bestIndicesA.shape : x.shape; + const inSize = inShape[inShape.length - 1]; + const windowSize = backend_util_exports.computeOptimalWindowSize(inSize); + const program = new ArgMinMaxPackedProgram(inShape, windowSize, reduceType, bestIndicesA == null); + const inputs = bestIndicesA == null ? [x] : [x, bestIndicesA]; + const output = this.compileAndRun(program, inputs, "int32"); + if (output.rank === x.rank) { + return this.argReducePacked(x, reduceType, output); + } + return output; + } + sum(x, axes) { + backend_util_exports.assertAxesAreInnerMostDims("sum", axes, x.rank); + const [outShape, reduceShape] = backend_util_exports.computeOutAndReduceShapes(x.shape, axes); + const inSize = util_exports.sizeFromShape(reduceShape); + const a2D = x.as2D(-1, inSize); + const outputDType = sumOutType(x.dtype); + return this.reduce(a2D, "sum", outputDType).reshape(outShape); + } + prod(x, axes) { + if (this.shouldExecuteOnCPU([x])) { + return this.cpuBackend.prod(x, axes); + } + const [outShape, reduceShape] = backend_util_exports.computeOutAndReduceShapes(x.shape, axes); + const inSize = util_exports.sizeFromShape(reduceShape); + const a2D = x.as2D(-1, inSize); + const outputDType = sumOutType(x.dtype); + return this.reduce(a2D, "prod", outputDType).reshape(outShape); + } + unsortedSegmentSum(x, segmentIds, numSegments) { + let axis = 0; + const permutation = backend_util_exports.getAxesPermutation([axis], x.rank); + let permutedX = x; + if (permutation != null) { + permutedX = transpose(x, permutation); + axis = backend_util_exports.getInnerMostAxes(1, x.rank)[0]; + } + const outShape = segment_util2.computeOutShape(permutedX.shape, axis, numSegments); + const inSize = util_exports.sizeFromShape([permutedX.shape[axis]]); + const a2D = permutedX.as2D(-1, inSize); + const outputDType = sumOutType(x.dtype); + let result = this.segOpCompute(a2D, "unsortedSegmentSum", segmentIds, outputDType, numSegments).reshape(outShape); + if (permutation != null) { + result = transpose(result, backend_util_exports.getUndoAxesPermutation(permutation)); + } + return result; + } + segOpCompute(x, segOpType, segmentIds, dtype, numSegments) { + const batchSize = x.shape[0]; + const inSize = x.shape[1]; + const windowSize = segment_util2.segOpComputeOptimalWindowSize(inSize, numSegments); + const segOpInfo = {windowSize, inSize, batchSize, numSegments}; + const program = new SegmentOpProgram(segOpInfo, segOpType); + const output = this.compileAndRun(program, [x, segmentIds], dtype); + if (output.shape[1] === numSegments) { + return output; + } + segmentIds = range(0, numSegments).tile([inSize / windowSize]); + return this.segOpCompute(output, segOpType, segmentIds, dtype, numSegments); + } + argMinMaxReduce(x, axis, reduceType) { + const axes = [axis]; + backend_util_exports.assertAxesAreInnerMostDims("arg" + reduceType.charAt(0).toUpperCase() + reduceType.slice(1), axes, x.rank); + if (!env().getBool("WEBGL_PACK_REDUCE") || x.rank <= 2) { + const [outShape, reduceShape] = backend_util_exports.computeOutAndReduceShapes(x.shape, axes); + const inSize = util_exports.sizeFromShape(reduceShape); + const a2D = x.as2D(-1, inSize); + return this.argReduce(a2D, reduceType).reshape(outShape); + } + return this.argReducePacked(x, reduceType); + } + argMin(x, axis) { + return this.argMinMaxReduce(x, axis, "min"); + } + argMax(x, axis) { + return this.argMinMaxReduce(x, axis, "max"); + } + cumsum(x, axis, exclusive, reverse9) { + if (axis !== x.rank - 1) { + throw new Error(`WebGL cumsum shader expects an inner-most axis=${x.rank - 1} but got axis=${axis}`); + } + const size = x.shape[axis]; + let result = x; + for (let i = 0; i <= Math.ceil(Math.log2(size)) - 1; i++) { + const program = new CumSumProgram(x.shape, false, reverse9); + const customSetup = program.getCustomSetupFunc(i); + const prevResult = result; + result = this.compileAndRun(program, [result], result.dtype, customSetup); + prevResult.dispose(); + } + if (exclusive) { + const program = new CumSumProgram(x.shape, exclusive, reverse9); + const prevResult = result; + result = this.compileAndRun(program, [result]); + prevResult.dispose(); + } + return result; + } + equal(a, b) { + if (env().getBool("WEBGL_PACK_BINARY_OPERATIONS")) { + return this.packedBinaryOp(a, b, EQUAL2, "bool"); + } + const program = new BinaryOpProgram(EQUAL, a.shape, b.shape); + return this.compileAndRun(program, [a, b], "bool"); + } + notEqual(a, b) { + if (env().getBool("WEBGL_PACK_BINARY_OPERATIONS")) { + return this.packedBinaryOp(a, b, NOT_EQUAL2, "bool"); + } + const program = new BinaryOpProgram(NOT_EQUAL, a.shape, b.shape); + return this.compileAndRun(program, [a, b], "bool"); + } + less(a, b) { + if (this.shouldExecuteOnCPU([a, b])) { + return this.cpuBackend.less(a, b); + } + if (env().getBool("WEBGL_PACK_BINARY_OPERATIONS")) { + return this.packedBinaryOp(a, b, LESS2, "bool"); + } + const program = new BinaryOpProgram(LESS, a.shape, b.shape); + return this.compileAndRun(program, [a, b], "bool"); + } + lessEqual(a, b) { + if (env().getBool("WEBGL_PACK_BINARY_OPERATIONS")) { + return this.packedBinaryOp(a, b, LESS_EQUAL2, "bool"); + } + const program = new BinaryOpProgram(LESS_EQUAL, a.shape, b.shape); + return this.compileAndRun(program, [a, b], "bool"); + } + greater(a, b) { + if (this.shouldExecuteOnCPU([a, b])) { + return this.cpuBackend.greater(a, b); + } + if (env().getBool("WEBGL_PACK_BINARY_OPERATIONS")) { + return this.packedBinaryOp(a, b, GREATER2, "bool"); + } + const program = new BinaryOpProgram(GREATER, a.shape, b.shape); + return this.compileAndRun(program, [a, b], "bool"); + } + greaterEqual(a, b) { + if (env().getBool("WEBGL_PACK_BINARY_OPERATIONS")) { + return this.packedBinaryOp(a, b, GREATER_EQUAL2, "bool"); + } + const program = new BinaryOpProgram(GREATER_EQUAL, a.shape, b.shape); + return this.compileAndRun(program, [a, b], "bool"); + } + logicalNot(x) { + const program = new UnaryOpProgram(x.shape, LOGICAL_NOT); + return this.compileAndRun(program, [x]); + } + logicalAnd(a, b) { + if (env().getBool("WEBGL_PACK_BINARY_OPERATIONS")) { + return this.packedBinaryOp(a, b, LOGICAL_AND2, "bool"); + } + const program = new BinaryOpProgram(LOGICAL_AND, a.shape, b.shape); + return this.compileAndRun(program, [a, b], "bool"); + } + logicalOr(a, b) { + if (env().getBool("WEBGL_PACK_BINARY_OPERATIONS")) { + return this.packedBinaryOp(a, b, LOGICAL_OR2, "bool"); + } + const program = new BinaryOpProgram(LOGICAL_OR, a.shape, b.shape); + return this.compileAndRun(program, [a, b], "bool"); + } + select(condition, a, b) { + const program = new SelectProgram(condition.rank, a.shape, a.rank); + return this.compileAndRun(program, [condition, a, b], upcastType(a.dtype, b.dtype)); + } + where(condition) { + backend_util_exports.warn("tf.where() in webgl locks the UI thread. Call tf.whereAsync() instead"); + const condVals = condition.dataSync(); + return whereImpl3(condition.shape, condVals); + } + topk(x, k, sorted) { + const xVals = x.dataSync(); + return topkImpl3(xVals, x.shape, x.dtype, k, sorted); + } + min(x, axes) { + backend_util_exports.assertAxesAreInnerMostDims("min", axes, x.rank); + const [outShape, reduceShape] = backend_util_exports.computeOutAndReduceShapes(x.shape, axes); + const inSize = util_exports.sizeFromShape(reduceShape); + const a2D = x.as2D(-1, inSize); + return this.reduce(a2D, "min", a2D.dtype).reshape(outShape); + } + minimum(a, b) { + if (this.shouldExecuteOnCPU([a, b])) { + return this.cpuBackend.minimum(a, b); + } + const program = env().getBool("WEBGL_PACK_BINARY_OPERATIONS") ? new BinaryOpPackedProgram(MIN2, a.shape, b.shape) : new BinaryOpProgram(MIN, a.shape, b.shape); + return this.compileAndRun(program, [a, b]); + } + mod(a, b) { + const program = env().getBool("WEBGL_PACK_BINARY_OPERATIONS") ? new BinaryOpPackedProgram(MOD2, a.shape, b.shape) : new BinaryOpProgram(MOD, a.shape, b.shape); + return this.compileAndRun(program, [a, b]); + } + maximum(a, b) { + if (this.shouldExecuteOnCPU([a, b])) { + return this.cpuBackend.maximum(a, b); + } + const program = env().getBool("WEBGL_PACK_BINARY_OPERATIONS") ? new BinaryOpPackedProgram(MAX2, a.shape, b.shape) : new BinaryOpProgram(MAX, a.shape, b.shape); + return this.compileAndRun(program, [a, b]); + } + all(x, axes) { + backend_util_exports.assertAxesAreInnerMostDims("all", axes, x.rank); + const [outShape, reduceShape] = backend_util_exports.computeOutAndReduceShapes(x.shape, axes); + const inSize = util_exports.sizeFromShape(reduceShape); + const a2D = x.as2D(-1, inSize); + return this.reduce(a2D, "all", a2D.dtype).reshape(outShape); + } + any(x, axes) { + backend_util_exports.assertAxesAreInnerMostDims("any", axes, x.rank); + const [outShape, reduceShape] = backend_util_exports.computeOutAndReduceShapes(x.shape, axes); + const inSize = util_exports.sizeFromShape(reduceShape); + const a2D = x.as2D(-1, inSize); + return this.reduce(a2D, "any", a2D.dtype).reshape(outShape); + } + floorDiv(a, b) { + const op2 = INT_DIV; + const outputDtype = "int32"; + if (env().getBool("WEBGL_PACK_BINARY_OPERATIONS")) { + return this.packedBinaryOp(a, b, INT_DIV2, outputDtype); + } + const program = new BinaryOpProgram(op2, a.shape, b.shape); + return this.compileAndRun(program, [a, b], outputDtype); + } + add(a, b) { + if (a.dtype === "complex64" && b.dtype === "complex64") { + return this.complexSeparableBinaryOp(a, b, ADD); + } + if (this.shouldExecuteOnCPU([a, b])) { + return this.cpuBackend.add(a, b); + } + const dtype = upcastType(a.dtype, b.dtype); + if (env().getBool("WEBGL_PACK_BINARY_OPERATIONS")) { + return this.packedBinaryOp(a, b, ADD, dtype); + } + const program = new BinaryOpProgram(ADD, a.shape, b.shape); + return this.compileAndRun(program, [a, b], dtype); + } + packedUnaryOp(x, op2, dtype) { + const program = new UnaryOpPackedProgram(x.shape, op2); + return this.compileAndRun(program, [x], dtype); + } + packedBinaryOp(a, b, op2, dtype, checkOutOfBounds = false) { + const program = new BinaryOpPackedProgram(op2, a.shape, b.shape, checkOutOfBounds); + return this.compileAndRun(program, [a, b], dtype); + } + complexSeparableBinaryOp(a, b, op2) { + const aData = this.texData.get(a.dataId); + const bData = this.texData.get(b.dataId); + const [real6, imag6] = [ + [aData.complexTensors.real, bData.complexTensors.real], + [aData.complexTensors.imag, bData.complexTensors.imag] + ].map((complexParts) => { + const [aPart, bPart] = complexParts; + const aHandle = this.makeComplexComponentTensorInfo(a, aPart); + const bHandle = this.makeComplexComponentTensorInfo(b, bPart); + const program = new BinaryOpProgram(op2, a.shape, b.shape); + return this.compileAndRun(program, [aHandle, bHandle], upcastType(aPart.dtype, bPart.dtype)); + }); + const complex9 = this.complex(real6, imag6); + real6.dispose(); + imag6.dispose(); + return complex9; + } + makeComplexComponentTensorInfo(complexTensor, complexPart) { + return { + dataId: complexPart.dataId, + dtype: complexPart.dtype, + shape: complexTensor.shape + }; + } + addN(tensors) { + if (tensors.length === 1) { + return tensors[0]; + } + if (tensors.length > env().get("WEBGL_MAX_TEXTURES_IN_SHADER")) { + const midIndex = Math.floor(tensors.length / 2); + const leftSide = this.addN(tensors.slice(0, midIndex)); + const rightSide = this.addN(tensors.slice(midIndex)); + return this.addN([leftSide, rightSide]); + } + const dtype = tensors.map((t) => t.dtype).reduce((d1, d2) => upcastType(d1, d2)); + const shapes = tensors.map((t) => t.shape); + const usePackedOp = env().getBool("WEBGL_PACK"); + const program = usePackedOp ? new AddNPackedProgram(tensors[0].shape, shapes) : new AddNProgram(tensors[0].shape, shapes); + return this.compileAndRun(program, tensors, dtype); + } + subtract(a, b) { + if (a.dtype === "complex64" && b.dtype === "complex64") { + return this.complexSeparableBinaryOp(a, b, SUB); + } + if (this.shouldExecuteOnCPU([a, b])) { + return this.cpuBackend.subtract(a, b); + } + const dtype = upcastType(a.dtype, b.dtype); + if (env().getBool("WEBGL_PACK_BINARY_OPERATIONS")) { + return this.packedBinaryOp(a, b, SUB, a.dtype); + } + const program = new BinaryOpProgram(SUB, a.shape, b.shape); + return this.compileAndRun(program, [a, b], dtype); + } + pow(a, b) { + const usePackedOp = env().getBool("WEBGL_PACK_BINARY_OPERATIONS"); + const program = usePackedOp ? new BinaryOpPackedProgram(POW2, a.shape, b.shape) : new BinaryOpProgram(POW, a.shape, b.shape); + const dtype = upcastType(a.dtype, b.dtype); + return this.compileAndRun(program, [a, b], dtype); + } + ceil(x) { + if (this.shouldExecuteOnCPU([x])) { + return this.cpuBackend.ceil(x); + } + if (env().getBool("WEBGL_PACK_UNARY_OPERATIONS")) { + return this.packedUnaryOp(x, CEIL, x.dtype); + } + const program = new UnaryOpProgram(x.shape, CEIL); + return this.compileAndRun(program, [x]); + } + floor(x) { + if (this.shouldExecuteOnCPU([x])) { + return this.cpuBackend.floor(x); + } + if (env().getBool("WEBGL_PACK_UNARY_OPERATIONS")) { + return this.packedUnaryOp(x, FLOOR, x.dtype); + } + const program = new UnaryOpProgram(x.shape, FLOOR); + return this.compileAndRun(program, [x]); + } + sign(x) { + const program = new UnaryOpProgram(x.shape, SIGN); + return this.compileAndRun(program, [x]); + } + isNaN(x) { + const program = new UnaryOpProgram(x.shape, IS_NAN); + return this.compileAndRun(program, [x], "bool"); + } + isInf(x) { + const program = new UnaryOpProgram(x.shape, IS_INF); + return this.compileAndRun(program, [x], "bool"); + } + isFinite(x) { + const program = new UnaryOpProgram(x.shape, IS_FINITE); + return this.compileAndRun(program, [x], "bool"); + } + round(x) { + const program = new UnaryOpProgram(x.shape, ROUND); + return this.compileAndRun(program, [x]); + } + exp(x) { + if (this.shouldExecuteOnCPU([x])) { + return this.cpuBackend.exp(x); + } + if (env().getBool("WEBGL_PACK_UNARY_OPERATIONS")) { + return this.packedUnaryOp(x, EXP, x.dtype); + } + const program = new UnaryOpProgram(x.shape, EXP); + return this.compileAndRun(program, [x]); + } + expm1(x) { + if (this.shouldExecuteOnCPU([x])) { + return this.cpuBackend.expm1(x); + } + if (env().getBool("WEBGL_PACK_UNARY_OPERATIONS")) { + return this.packedUnaryOp(x, EXPM1, x.dtype); + } + const program = new UnaryOpProgram(x.shape, EXPM1); + return this.compileAndRun(program, [x]); + } + softmax(logits, dim) { + const axes = util_exports.parseAxisParam([dim], logits.shape); + const maxLogit = max(logits, axes); + const expandedShape = backend_util_exports.expandShapeToKeepDim(maxLogit.shape, axes); + const a = this.subtract(logits, maxLogit.reshape(expandedShape)); + const b = this.exp(a); + const sumExp = this.sum(b, axes).reshape(expandedShape); + return div(b, sumExp); + } + log(x) { + if (this.shouldExecuteOnCPU([x])) { + return this.cpuBackend.log(x); + } + if (env().getBool("WEBGL_PACK_UNARY_OPERATIONS")) { + return this.packedUnaryOp(x, LOG2, x.dtype); + } + const program = new UnaryOpProgram(x.shape, LOG); + return this.compileAndRun(program, [x]); + } + log1p(x) { + const program = new UnaryOpProgram(x.shape, LOG1P); + return this.compileAndRun(program, [x]); + } + sqrt(x) { + const program = new UnaryOpProgram(x.shape, SQRT); + return this.compileAndRun(program, [x]); + } + rsqrt(x) { + if (this.shouldExecuteOnCPU([x])) { + return this.cpuBackend.rsqrt(x); + } + const program = new UnaryOpProgram(x.shape, RSQRT); + return this.compileAndRun(program, [x]); + } + reciprocal(x) { + const program = new UnaryOpProgram(x.shape, RECIPROCAL); + return this.compileAndRun(program, [x]); + } + relu(x) { + let program; + if (env().getBool("WEBGL_PACK")) { + program = new UnaryOpPackedProgram(x.shape, RELU2); + } else { + program = new UnaryOpProgram(x.shape, RELU); + } + return this.compileAndRun(program, [x]); + } + relu6(x) { + let program; + if (env().getBool("WEBGL_PACK")) { + program = new UnaryOpPackedProgram(x.shape, RELU62); + } else { + program = new UnaryOpProgram(x.shape, RELU6); + } + return this.compileAndRun(program, [x]); + } + prelu(x, alpha) { + const program = env().getBool("WEBGL_PACK_BINARY_OPERATIONS") ? new BinaryOpPackedProgram(PRELU2, x.shape, alpha.shape) : new BinaryOpProgram(PRELU, x.shape, alpha.shape); + return this.compileAndRun(program, [x, alpha]); + } + elu(x) { + if (env().getBool("WEBGL_PACK_UNARY_OPERATIONS")) { + return this.packedUnaryOp(x, ELU3, x.dtype); + } + const program = new UnaryOpProgram(x.shape, ELU2); + return this.compileAndRun(program, [x]); + } + eluDer(dy, y) { + const program = env().getBool("WEBGL_PACK_BINARY_OPERATIONS") ? new BinaryOpPackedProgram(ELU_DER2, dy.shape, y.shape) : new BinaryOpProgram(ELU_DER, dy.shape, y.shape); + return this.compileAndRun(program, [dy, y]); + } + selu(x) { + const program = new UnaryOpProgram(x.shape, SELU); + return this.compileAndRun(program, [x]); + } + int(x) { + const program = new UnaryOpProgram(x.shape, TO_INT); + return this.compileAndRun(program, [x], "int32"); + } + clip(x, min6, max8) { + let program; + if (env().getBool("WEBGL_PACK_CLIP")) { + program = new ClipPackedProgram(x.shape); + } else { + program = new ClipProgram(x.shape); + } + const customSetup = program.getCustomSetupFunc(min6, max8); + return this.compileAndRun(program, [x], null, customSetup); + } + abs(x) { + if (this.shouldExecuteOnCPU([x])) { + return this.cpuBackend.abs(x); + } + if (env().getBool("WEBGL_PACK_UNARY_OPERATIONS")) { + return this.packedUnaryOp(x, ABS, x.dtype); + } + const program = new UnaryOpProgram(x.shape, ABS); + return this.compileAndRun(program, [x]); + } + complexAbs(x) { + const xData = this.texData.get(x.dataId); + const program = new ComplexAbsProgram(x.shape); + const inputs = [ + this.makeComplexComponentTensorInfo(x, xData.complexTensors.real), + this.makeComplexComponentTensorInfo(x, xData.complexTensors.imag) + ]; + return this.compileAndRun(program, inputs); + } + sigmoid(x) { + const program = new UnaryOpProgram(x.shape, SIGMOID); + return this.compileAndRun(program, [x]); + } + softplus(x) { + const program = new UnaryOpProgram(x.shape, SOFTPLUS); + return this.compileAndRun(program, [x]); + } + sin(x) { + const program = new UnaryOpProgram(x.shape, SIN); + return this.compileAndRun(program, [x]); + } + cos(x) { + const program = new UnaryOpProgram(x.shape, COS); + return this.compileAndRun(program, [x]); + } + tan(x) { + const program = new UnaryOpProgram(x.shape, TAN); + return this.compileAndRun(program, [x]); + } + asin(x) { + const program = new UnaryOpProgram(x.shape, ASIN); + return this.compileAndRun(program, [x]); + } + acos(x) { + const program = new UnaryOpProgram(x.shape, ACOS); + return this.compileAndRun(program, [x]); + } + atan(x) { + const program = new UnaryOpProgram(x.shape, ATAN); + return this.compileAndRun(program, [x]); + } + atan2(a, b) { + const program = env().getBool("WEBGL_PACK_BINARY_OPERATIONS") ? new BinaryOpPackedProgram(ATAN22, a.shape, b.shape) : new BinaryOpProgram(ATAN2, a.shape, b.shape); + return this.compileAndRun(program, [a, b]); + } + sinh(x) { + const program = new UnaryOpProgram(x.shape, SINH); + return this.compileAndRun(program, [x]); + } + cosh(x) { + const program = new UnaryOpProgram(x.shape, COSH); + return this.compileAndRun(program, [x]); + } + tanh(x) { + const program = new UnaryOpProgram(x.shape, TANH); + return this.compileAndRun(program, [x]); + } + asinh(x) { + const program = new UnaryOpProgram(x.shape, ASINH); + return this.compileAndRun(program, [x]); + } + acosh(x) { + const program = new UnaryOpProgram(x.shape, ACOSH); + return this.compileAndRun(program, [x]); + } + atanh(x) { + const program = new UnaryOpProgram(x.shape, ATANH); + return this.compileAndRun(program, [x]); + } + erf(x) { + const program = new UnaryOpProgram(x.shape, ERF); + return this.compileAndRun(program, [x]); + } + step(x, alpha) { + const program = new UnaryOpProgram(x.shape, STEP(alpha)); + return this.compileAndRun(program, [x]); + } + conv2dByMatMul(x, filter, convInfo, bias, activation2, preluActivationWeights) { + const xShape = x.shape; + const xTexData = this.texData.get(x.dataId); + const sharedMatMulDim = convInfo.inChannels; + const outerShapeX = xShape[0] * xShape[1] * xShape[2]; + const outerShapeFilter = convInfo.outChannels; + const isChannelsLast = convInfo.dataFormat === "channelsLast"; + const transposeA = false; + const transposeB = false; + const batchMatMulWillBeUnpacked = (outerShapeX === 1 || outerShapeFilter === 1) && sharedMatMulDim > MATMUL_SHARED_DIM_THRESHOLD; + const reshapeWillBeExpensive = xShape[2] % 2 !== 0 && !!xTexData.isPacked; + if (batchMatMulWillBeUnpacked || !env().getBool("WEBGL_LAZILY_UNPACK") || !env().getBool("WEBGL_PACK_BINARY_OPERATIONS") || !reshapeWillBeExpensive) { + const targetShape2 = isChannelsLast ? xShape[0] * xShape[1] * xShape[2] : xShape[0] * xShape[2] * xShape[3]; + const xReshaped2 = this.reshape(x, [1, targetShape2, convInfo.inChannels]); + const filterReshaped2 = this.reshape(filter, [1, convInfo.inChannels, convInfo.outChannels]); + return this.reshape(this.fusedBatchMatMul({ + a: xReshaped2, + b: filterReshaped2, + transposeA, + transposeB, + bias, + activation: activation2, + preluActivationWeights + }), convInfo.outShape); + } + const targetShape = isChannelsLast ? xShape[0] * xShape[1] * (xShape[2] + 1) : xShape[0] * xShape[2] * (xShape[3] + 1); + const xReshaped = { + dataId: x.dataId, + shape: [1, targetShape, convInfo.inChannels], + dtype: x.dtype + }; + const originalXTexDataShape = xTexData.shape; + xTexData.shape = xTexData.shape.slice(); + xTexData.shape[xTexData.shape.length - 2]++; + util_exports.assert(isReshapeFree(xTexData.shape, xReshaped.shape), () => `packed reshape ${xTexData.shape} to ${xReshaped.shape} isn't free`); + const filterReshaped = this.reshape(filter, [1, convInfo.inChannels, convInfo.outChannels]); + const pointwiseConv = this.fusedBatchMatMul({ + a: xReshaped, + b: filterReshaped, + transposeA, + transposeB, + bias, + activation: activation2, + preluActivationWeights + }); + const pointwiseConvTexData = this.texData.get(pointwiseConv.dataId); + util_exports.assert(pointwiseConvTexData.isPacked, () => "batchMatMul result is expected to be packed"); + xTexData.shape = originalXTexDataShape; + pointwiseConvTexData.shape = convInfo.outShape; + return engine22().makeTensorFromDataId(pointwiseConv.dataId, convInfo.outShape, pointwiseConv.dtype); + } + conv2dWithIm2Row(x, filter, convInfo, bias, activation2, preluActivationWeights) { + const {filterWidth, filterHeight, inChannels, outWidth, outHeight, dataFormat} = convInfo; + const isChannelsLast = dataFormat === "channelsLast"; + const sharedDim = filterWidth * filterHeight * inChannels; + const numCols = outHeight * outWidth; + const x2ColShape = [sharedDim, numCols]; + const transposeA = true; + const transposeB = false; + const xSqueezed = x.squeeze([0]); + const w2Row = filter.reshape([1, sharedDim, -1]); + const im2ColProgram = new Im2ColPackedProgram(x2ColShape, xSqueezed.shape, convInfo); + const im2Col = this.compileAndRun(im2ColProgram, [xSqueezed]).reshape([ + 1, + x2ColShape[0], + x2ColShape[1] + ]); + const hasBias = bias != null; + const hasPreluActivationWeights = preluActivationWeights != null; + const fusedActivation = activation2 ? mapActivationToShaderProgram(activation2, true) : null; + const matmulProgram = new MatMulPackedProgram(im2Col.shape, [1, numCols, convInfo.outChannels], transposeA, transposeB, hasBias, fusedActivation, hasPreluActivationWeights); + const inputs = [im2Col, w2Row]; + if (bias) { + inputs.push(bias); + } + if (hasPreluActivationWeights) { + inputs.push(preluActivationWeights); + } + const product = this.compileAndRun(matmulProgram, inputs); + if (isChannelsLast) { + return product.reshape([1, outHeight, outWidth, convInfo.outChannels]); + } else { + return product.reshape([1, convInfo.outChannels, outHeight, outWidth]); + } + } + fusedConv2d({input: input2, filter, convInfo, bias, activation: activation2, preluActivationWeights}) { + if (convInfo.filterHeight === 1 && convInfo.filterWidth === 1 && convInfo.dilationHeight === 1 && convInfo.dilationWidth === 1 && convInfo.strideHeight === 1 && convInfo.strideWidth === 1 && (convInfo.padInfo.type === "SAME" || convInfo.padInfo.type === "VALID")) { + return this.conv2dByMatMul(input2, filter, convInfo, bias, activation2, preluActivationWeights); + } + if (env().getBool("WEBGL_CONV_IM2COL") && input2.shape[0] === 1) { + return this.conv2dWithIm2Row(input2, filter, convInfo, bias, activation2, preluActivationWeights); + } + const hasBias = bias != null; + const hasPreluActivationWeights = preluActivationWeights != null; + const fusedActivation = activation2 ? mapActivationToShaderProgram(activation2, false) : null; + const program = new Conv2DProgram(convInfo, hasBias, fusedActivation, hasPreluActivationWeights); + const inputs = [input2, filter]; + if (bias) { + inputs.push(bias); + } + if (preluActivationWeights) { + inputs.push(preluActivationWeights); + } + return this.compileAndRun(program, inputs); + } + conv2d(x, filter, convInfo) { + if (convInfo.filterHeight === 1 && convInfo.filterWidth === 1 && convInfo.dilationHeight === 1 && convInfo.dilationWidth === 1 && convInfo.strideHeight === 1 && convInfo.strideWidth === 1 && (convInfo.padInfo.type === "SAME" || convInfo.padInfo.type === "VALID")) { + return this.conv2dByMatMul(x, filter, convInfo); + } + if (env().getBool("WEBGL_CONV_IM2COL") && x.shape[0] === 1) { + return this.conv2dWithIm2Row(x, filter, convInfo); + } + const program = new Conv2DProgram(convInfo); + return this.compileAndRun(program, [x, filter]); + } + conv2dDerInput(dy, filter, convInfo) { + const program = new Conv2DDerInputProgram(convInfo); + return this.compileAndRun(program, [dy, filter]); + } + conv2dDerFilter(x, dy, convInfo) { + const program = new Conv2DDerFilterProgram(convInfo); + return this.compileAndRun(program, [x, dy]); + } + fusedDepthwiseConv2D({input: input2, filter, convInfo, bias, activation: activation2, preluActivationWeights}) { + const shouldPackDepthwiseConv = env().getBool("WEBGL_PACK_DEPTHWISECONV") && convInfo.strideWidth <= 2 && convInfo.outChannels / convInfo.inChannels === 1; + const fusedActivation = activation2 ? mapActivationToShaderProgram(activation2, shouldPackDepthwiseConv) : null; + const inputs = [input2, filter]; + const hasBias = bias != null; + const hasPreluActivationWeights = preluActivationWeights != null; + if (hasBias) { + inputs.push(bias); + } + if (hasPreluActivationWeights) { + inputs.push(preluActivationWeights); + } + let program; + if (shouldPackDepthwiseConv) { + program = new DepthwiseConvPacked2DProgram(convInfo, hasBias, fusedActivation, hasPreluActivationWeights); + return this.compileAndRun(program, inputs); + } + program = new DepthwiseConv2DProgram(convInfo, hasBias, fusedActivation, hasPreluActivationWeights); + return this.compileAndRun(program, inputs); + } + depthwiseConv2D(x, filter, convInfo) { + let program; + if (env().getBool("WEBGL_PACK_DEPTHWISECONV") && convInfo.strideWidth <= 2 && convInfo.outChannels / convInfo.inChannels === 1) { + program = new DepthwiseConvPacked2DProgram(convInfo); + return this.compileAndRun(program, [x, filter]); + } + program = new DepthwiseConv2DProgram(convInfo); + return this.compileAndRun(program, [x, filter]); + } + depthwiseConv2DDerInput(dy, filter, convInfo) { + const program = new DepthwiseConv2DDerInputProgram(convInfo); + return this.compileAndRun(program, [dy, filter]); + } + depthwiseConv2DDerFilter(x, dy, convInfo) { + const program = new DepthwiseConv2DDerFilterProgram(convInfo); + return this.compileAndRun(program, [x, dy]); + } + conv3d(x, filter, convInfo) { + const program = new Conv3DProgram(convInfo); + return this.compileAndRun(program, [x, filter]); + } + conv3dDerInput(dy, filter, convInfo) { + const program = new Conv3DDerInputProgram(convInfo); + return this.compileAndRun(program, [dy, filter]); + } + conv3dDerFilter(x, dy, convInfo) { + const program = new Conv3DDerFilterProgram(convInfo); + return this.compileAndRun(program, [x, dy]); + } + maxPool(x, convInfo) { + const program = new Pool2DProgram(convInfo, "max", false); + return this.compileAndRun(program, [x]); + } + avgPool(x, convInfo) { + const program = new Pool2DProgram(convInfo, "avg", false); + return this.compileAndRun(program, [x], "float32"); + } + maxPoolBackprop(dy, x, y, convInfo) { + const getPositions = true; + const maxPoolPositionsProgram = new Pool2DProgram(convInfo, "max", getPositions); + const maxPoolPositions2 = this.compileAndRun(maxPoolPositionsProgram, [x]); + const maxPoolBackPropProgram = new MaxPool2DBackpropProgram(convInfo); + const result = this.compileAndRun(maxPoolBackPropProgram, [dy, maxPoolPositions2], x.dtype); + maxPoolPositions2.dispose(); + return result; + } + avgPoolBackprop(dy, x, convInfo) { + const avgPoolBackpropProgram = new AvgPool2DBackpropProgram(convInfo); + return this.compileAndRun(avgPoolBackpropProgram, [dy], x.dtype); + } + cast(x, dtype) { + return backend_util_exports.castTensor(x, dtype, this); + } + unstack(x, axis) { + const num = x.shape[axis]; + const outShape = new Array(x.rank - 1); + let outIndex = 0; + for (let i = 0; i < x.rank; i++) { + if (i !== axis) { + outShape[outIndex++] = x.shape[i]; + } + } + const begin = new Array(x.rank).fill(0); + const size = x.shape.slice(); + size[axis] = 1; + const res = new Array(num); + for (let i = 0; i < res.length; i++) { + begin[axis] = i; + res[i] = this.slice(x, begin, size).reshape(outShape); + } + return res; + } + avgPool3d(x, convInfo) { + const program = new Pool3DProgram(convInfo, "avg", false); + return this.compileAndRun(program, [x], "float32"); + } + avgPool3dBackprop(dy, x, convInfo) { + const avgPool3dBackpropProgram = new AvgPool3DBackpropProgram(convInfo); + return this.compileAndRun(avgPool3dBackpropProgram, [dy], x.dtype); + } + maxPool3d(x, convInfo) { + const program = new Pool3DProgram(convInfo, "max", false); + return this.compileAndRun(program, [x], "float32"); + } + maxPool3dBackprop(dy, x, y, convInfo) { + const getPositions = true; + const maxPool3dPositionsProgram = new Pool3DProgram(convInfo, "max", getPositions); + const maxPool3dPositions = this.compileAndRun(maxPool3dPositionsProgram, [x]); + const maxPool3dBackPropProgram = new MaxPool3DBackpropProgram(convInfo); + const result = this.compileAndRun(maxPool3dBackPropProgram, [dy, maxPool3dPositions], x.dtype); + maxPool3dPositions.dispose(); + return result; + } + reshape(x, shape) { + const texData = this.texData.get(x.dataId); + if (texData.isPacked && !isReshapeFree(x.shape, shape) && !(texData.texture !== null && isReshapeFree(texData.shape, shape))) { + const info = this.packedReshape(x, shape); + return engine22().makeTensorFromDataId(info.dataId, info.shape, info.dtype); + } + return backend_util_exports.reshapeTensor(x, shape); + } + resizeBilinear(x, newHeight, newWidth, alignCorners) { + const program = env().getBool("WEBGL_PACK_IMAGE_OPERATIONS") ? new ResizeBilinearPackedProgram(x.shape, newHeight, newWidth, alignCorners) : new ResizeBilinearProgram(x.shape, newHeight, newWidth, alignCorners); + return this.compileAndRun(program, [x], "float32"); + } + resizeBilinearBackprop(dy, x, alignCorners) { + const program = new ResizeBilinearBackpropProgram(dy, x, alignCorners); + return this.compileAndRun(program, [dy]); + } + resizeNearestNeighbor(x, newHeight, newWidth, alignCorners) { + const program = new ResizeNearestNeighborProgram(x.shape, newHeight, newWidth, alignCorners); + return this.compileAndRun(program, [x]); + } + resizeNearestNeighborBackprop(dy, x, alignCorners) { + const program = new ResizeNearestNeigborBackpropProgram(dy, x, alignCorners); + return this.compileAndRun(program, [dy]); + } + multinomial(logits, normalized, numSamples, seed) { + const probs = normalized ? logits : softmax(logits); + const batchSize = probs.shape[0]; + const numOutcomes = probs.shape[1]; + const program = new MultinomialProgram(batchSize, numOutcomes, numSamples); + const customSetup = program.getCustomSetupFunc(seed); + return this.compileAndRun(program, [probs], "int32", customSetup); + } + oneHot(indices, depth, onValue, offValue) { + const program = new OneHotProgram(indices.size, depth, onValue, offValue); + return this.compileAndRun(program, [indices]); + } + diag(x) { + const program = new DiagProgram(x.size); + return this.compileAndRun(program, [x]); + } + cropAndResize(image3, boxes, boxIndex, cropSize, method, extrapolationValue) { + const program = new CropAndResizeProgram(image3.shape, boxes.shape, cropSize, method, extrapolationValue); + return this.compileAndRun(program, [image3, boxes, boxIndex], "float32"); + } + depthToSpace(x, blockSize, dataFormat) { + util_exports.assert(blockSize > 1, () => `blockSize should be > 1 for depthToSpace, but was: ${blockSize}`); + const batchSize = x.shape[0]; + const inputHeight = dataFormat === "NHWC" ? x.shape[1] : x.shape[2]; + const inputWidth = dataFormat === "NHWC" ? x.shape[2] : x.shape[3]; + const inputDepth = dataFormat === "NHWC" ? x.shape[3] : x.shape[1]; + const outputHeight = inputHeight * blockSize; + const outputWidth = inputWidth * blockSize; + const outputDepth = inputDepth / (blockSize * blockSize); + const outputShape = dataFormat === "NHWC" ? [batchSize, outputHeight, outputWidth, outputDepth] : [batchSize, outputDepth, outputHeight, outputWidth]; + const program = new DepthToSpaceProgram(outputShape, blockSize, dataFormat); + return this.compileAndRun(program, [x]); + } + split(x, sizeSplits, axis) { + return split9(x, sizeSplits, axis); + } + scatterND(indices, updates, shape) { + const {sliceRank, numUpdates, sliceSize, strides, outputSize} = backend_util_exports.calculateShapes(updates, indices, shape); + const flattenShape = [outputSize / sliceSize, sliceSize]; + const flattenIndices = indices.reshape([numUpdates, sliceRank]); + const flattenX = updates.reshape([numUpdates, sliceSize]); + if (outputSize === 0) { + return backend_util_exports.reshapeTensor(tensor5([]), shape); + } + const defaultValue = scalar(0); + const program = new ScatterProgram(numUpdates, sliceRank, flattenIndices.rank, flattenX.rank, strides, flattenShape); + const res = this.compileAndRun(program, [flattenX, flattenIndices, defaultValue]); + return res.reshape(shape); + } + sparseToDense(sparseIndices, sparseValues, outputShape, defaultValue) { + const {sliceRank, numUpdates, strides, outputSize} = backend_util_exports.calculateShapes(sparseValues, sparseIndices, outputShape); + const sumDupeIndices = false; + const program = new ScatterProgram(numUpdates, sliceRank, sparseIndices.rank, sparseValues.rank, strides, [outputSize, 1], sumDupeIndices); + const res = this.compileAndRun(program, [sparseValues, sparseIndices, defaultValue]); + return res.reshape(outputShape); + } + fft(x) { + const inverse = false; + return this.fftImpl(x, inverse); + } + ifft(x) { + const inverse = true; + return this.fftImpl(x, inverse); + } + fftImpl(x, inverse) { + const xData = this.texData.get(x.dataId); + const realProgram = new FFTProgram(COMPLEX_FFT.REAL, x.shape, inverse); + const imagProgram = new FFTProgram(COMPLEX_FFT.IMAG, x.shape, inverse); + const inputs = [ + this.makeComplexComponentTensorInfo(x, xData.complexTensors.real), + this.makeComplexComponentTensorInfo(x, xData.complexTensors.imag) + ]; + const real6 = this.compileAndRun(realProgram, inputs); + const imag6 = this.compileAndRun(imagProgram, inputs); + const complex9 = this.complex(real6, imag6).as2D(x.shape[0], x.shape[1]); + real6.dispose(); + imag6.dispose(); + return complex9; + } + gatherND(x, indices) { + const indicesShape = indices.shape; + const sliceRank = indicesShape[indicesShape.length - 1]; + const [resultShape, numSlices, sliceSize, strides] = backend_util_exports.prepareAndValidate(x, indices); + const flattenIndices = indices.reshape([numSlices, sliceRank]); + const flattenX = x.reshape([x.size / sliceSize, sliceSize]); + const program = new GatherNDProgram(sliceRank, strides, [numSlices, sliceSize]); + const res = this.compileAndRun(program, [flattenX, flattenIndices]); + return res.reshape(resultShape); + } + fill(shape, value, dtype) { + dtype = dtype || util_exports.inferDtype(value); + if (dtype === "string") { + const values = util_exports.getArrayFromDType(dtype, util_exports.sizeFromShape(shape)); + values.fill(value); + return engine22().makeTensor(values, shape, dtype, this); + } else { + const program = new FillProgram(shape, value); + const customSetup = program.getCustomSetupFunc(value); + return this.compileAndRun(program, [], dtype, customSetup); + } + } + onesLike(x) { + if (x.dtype === "string") { + throw new Error("onesLike is not supported under string dtype"); + } else { + return this.fill(x.shape, 1, x.dtype); + } + } + zerosLike(x) { + return this.fill(x.shape, x.dtype === "string" ? "" : 0, x.dtype); + } + linspace(start, stop, num) { + return backend_util_exports.linspaceImpl(start, stop, num); + } + makeTensorInfo(shape, dtype) { + const dataId = this.write(null, shape, dtype); + this.texData.get(dataId).usage = null; + return {dataId, shape, dtype}; + } + makeOutput(shape, dtype) { + const {dataId} = this.makeTensorInfo(shape, dtype); + return engine22().makeTensorFromDataId(dataId, shape, dtype, this); + } + unpackTensor(input2) { + const program = new UnpackProgram(input2.shape); + return this.runWebGLProgram(program, [input2], input2.dtype); + } + packTensor(input2) { + const program = new PackProgram(input2.shape); + const preventEagerUnpackingOutput = true; + return this.runWebGLProgram(program, [input2], input2.dtype, null, preventEagerUnpackingOutput); + } + packedReshape(input2, afterShape) { + const input3DShape = [ + getBatchDim(input2.shape), + ...getRowsCols(input2.shape) + ]; + const input3D = { + dtype: input2.dtype, + shape: input3DShape, + dataId: input2.dataId + }; + const afterShapeAs3D = [ + getBatchDim(afterShape), + ...getRowsCols(afterShape) + ]; + const program = new ReshapePackedProgram(afterShapeAs3D, input3DShape); + const preventEagerUnpackingOfOutput = true; + const output = this.runWebGLProgram(program, [input3D], input2.dtype, null, preventEagerUnpackingOfOutput); + return {dataId: output.dataId, shape: afterShape, dtype: output.dtype}; + } + decode(dataId) { + const texData = this.texData.get(dataId); + const {isPacked, shape, dtype} = texData; + const shapeAs3D = getShapeAs3D(shape); + let program; + if (isPacked) { + program = new DecodeMatrixPackedProgram(shapeAs3D); + } else { + program = new DecodeMatrixProgram(shapeAs3D); + } + const preventEagerUnpackingOfOutput = true; + const out = this.runWebGLProgram(program, [{shape: shapeAs3D, dtype, dataId}], dtype, null, preventEagerUnpackingOfOutput); + return {dtype, shape, dataId: out.dataId}; + } + runWebGLProgram(program, inputs, outputDtype, customSetup, preventEagerUnpackingOfOutput = false) { + const output = this.makeTensorInfo(program.outputShape, outputDtype); + const outData = this.texData.get(output.dataId); + if (program.packedOutput) { + outData.isPacked = true; + } + if (program.outPackingScheme === PackingScheme.DENSE) { + const texelShape = getDenseTexShape(program.outputShape); + outData.texShape = texelShape.map((d) => d * 2); + } + if (program.outTexUsage != null) { + outData.usage = program.outTexUsage; + } + if (util_exports.sizeFromShape(output.shape) === 0) { + outData.values = util_exports.getTypedArrayFromDType(output.dtype, 0); + return output; + } + const dataToDispose = []; + const inputsData = inputs.map((input2) => { + if (input2.dtype === "complex64") { + throw new Error(`GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.`); + } + let texData = this.texData.get(input2.dataId); + if (texData.texture == null) { + if (!program.packedInputs && util_exports.sizeFromShape(input2.shape) <= env().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM")) { + return { + shape: input2.shape, + texData: null, + isUniform: true, + uniformValues: texData.values + }; + } + if (program.packedInputs) { + texData.isPacked = true; + texData.shape = input2.shape; + } + } else if (!!texData.isPacked !== !!program.packedInputs) { + input2 = texData.isPacked ? this.unpackTensor(input2) : this.packTensor(input2); + dataToDispose.push(input2); + texData = this.texData.get(input2.dataId); + } else if (texData.isPacked && !isReshapeFree(texData.shape, input2.shape)) { + const savedInput = input2; + const targetShape = input2.shape; + input2.shape = texData.shape; + input2 = this.packedReshape(input2, targetShape); + dataToDispose.push(input2); + texData = this.texData.get(input2.dataId); + savedInput.shape = targetShape; + } + this.uploadToGPU(input2.dataId); + return {shape: input2.shape, texData, isUniform: false}; + }); + this.uploadToGPU(output.dataId); + const outputData = {shape: output.shape, texData: outData, isUniform: false}; + const key = makeShaderKey(program, inputsData, outputData); + const binary = this.getAndSaveBinary(key, () => { + return compileProgram(this.gpgpu, program, inputsData, outputData); + }); + const shouldTimeProgram = this.activeTimers != null; + let query; + if (shouldTimeProgram) { + query = this.startTimer(); + } + runProgram(this.gpgpu, binary, inputsData, outputData, customSetup); + dataToDispose.forEach((info) => this.disposeData(info.dataId)); + if (shouldTimeProgram) { + query = this.endTimer(query); + this.activeTimers.push({name: program.constructor.name, query: this.getQueryTime(query)}); + } + if (!env().getBool("WEBGL_LAZILY_UNPACK") && outData.isPacked && preventEagerUnpackingOfOutput === false) { + const unpacked = this.unpackTensor(output); + this.disposeData(output.dataId); + return unpacked; + } + return output; + } + compileAndRun(program, inputs, outputDtype, customSetup, preventEagerUnpackingOfOutput = false) { + outputDtype = outputDtype || inputs[0].dtype; + const outInfo = this.runWebGLProgram(program, inputs, outputDtype, customSetup, preventEagerUnpackingOfOutput); + return engine22().makeTensorFromDataId(outInfo.dataId, outInfo.shape, outInfo.dtype); + } + getAndSaveBinary(key, getBinary) { + if (!(key in this.binaryCache)) { + this.binaryCache[key] = getBinary(); + } + return this.binaryCache[key]; + } + getTextureManager() { + return this.textureManager; + } + dispose() { + if (this.disposed) { + return; + } + if (!env().getBool("IS_TEST")) { + const allKeys = Object.keys(this.binaryCache); + allKeys.forEach((key) => { + this.gpgpu.deleteProgram(this.binaryCache[key].webGLProgram); + delete this.binaryCache[key]; + }); + } + this.textureManager.dispose(); + if (this.canvas != null && (typeof HTMLCanvasElement !== "undefined" && this.canvas instanceof HTMLCanvasElement)) { + this.canvas.remove(); + } else { + this.canvas = null; + } + if (this.gpgpuCreatedLocally) { + this.gpgpu.program = null; + this.gpgpu.dispose(); + } + this.disposed = true; + } + floatPrecision() { + if (this.floatPrecisionValue == null) { + this.floatPrecisionValue = tidy(() => { + if (!env().get("WEBGL_RENDER_FLOAT32_ENABLED")) { + const debugFlag = env().getBool("DEBUG"); + env().set("DEBUG", false); + const underflowCheckValue = this.abs(scalar(1e-8)).dataSync()[0]; + env().set("DEBUG", debugFlag); + if (underflowCheckValue > 0) { + return 32; + } + } + return 16; + }); + } + return this.floatPrecisionValue; + } + epsilon() { + return this.floatPrecision() === 32 ? EPSILON_FLOAT322 : EPSILON_FLOAT162; + } + uploadToGPU(dataId) { + const texData = this.texData.get(dataId); + const {shape, dtype, values, texture, usage, isPacked} = texData; + if (texture != null) { + return; + } + const shouldTimeProgram = this.activeTimers != null; + let start; + if (shouldTimeProgram) { + start = util_exports.now(); + } + let texShape = texData.texShape; + if (texShape == null) { + texShape = getTextureShapeFromLogicalShape(shape, isPacked); + texData.texShape = texShape; + } + if (values != null) { + const shapeAs3D = getShapeAs3D(shape); + let program; + let width = texShape[1], height = texShape[0]; + const isByteArray = values instanceof Uint8Array; + if (isPacked) { + [width, height] = getPackedMatrixTextureShapeWidthHeight(texShape[0], texShape[1]); + program = new EncodeMatrixPackedProgram(shapeAs3D, [height, width], isByteArray); + } else { + program = new EncodeMatrixProgram(shapeAs3D, [height, width], isByteArray); + } + const tempDenseInputHandle = this.makeTensorInfo([height, width], dtype); + if (isByteArray) { + this.texData.get(tempDenseInputHandle.dataId).usage = TextureUsage.PIXELS; + } else { + this.texData.get(tempDenseInputHandle.dataId).usage = TextureUsage.UPLOAD; + } + this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(tempDenseInputHandle.dataId), width, height, values); + const preventEagerUnpacking = true; + const encodedOutputTarget = this.runWebGLProgram(program, [tempDenseInputHandle], dtype, null, preventEagerUnpacking); + const outputTexData = this.texData.get(encodedOutputTarget.dataId); + texData.texture = outputTexData.texture; + texData.texShape = outputTexData.texShape; + texData.isPacked = outputTexData.isPacked; + texData.usage = outputTexData.usage; + this.disposeData(tempDenseInputHandle.dataId); + this.texData.delete(encodedOutputTarget.dataId); + texData.values = null; + if (shouldTimeProgram) { + this.uploadWaitMs += util_exports.now() - start; + } + } else { + const newTexture = this.acquireTexture(texShape, usage, dtype, isPacked); + texData.texture = newTexture; + } + } + convertAndCacheOnCPU(dataId, float32Values) { + const texData = this.texData.get(dataId); + const {dtype} = texData; + this.releaseGPUData(dataId); + if (float32Values != null) { + texData.values = float32ToTypedArray(float32Values, dtype); + } + return texData.values; + } + acquireTexture(texShape, texType, dtype, isPacked) { + this.numBytesInGPU += this.computeBytes(texShape, dtype); + if (!this.warnedAboutMemory && this.numBytesInGPU > this.numMBBeforeWarning * 1024 * 1024) { + const mb = (this.numBytesInGPU / 1024 / 1024).toFixed(2); + this.warnedAboutMemory = true; + console.warn(`High memory usage in GPU: ${mb} MB, most likely due to a memory leak`); + } + return this.textureManager.acquireTexture(texShape, texType, isPacked); + } + computeBytes(shape, dtype) { + return shape[0] * shape[1] * util_exports.bytesPerElement(dtype); + } + } + function float32ToTypedArray(a, dtype) { + if (dtype === "float32" || dtype === "complex64") { + return a; + } else if (dtype === "int32" || dtype === "bool") { + const result = dtype === "int32" ? new Int32Array(a.length) : new Uint8Array(a.length); + for (let i = 0; i < result.length; ++i) { + result[i] = Math.round(a[i]); + } + return result; + } else { + throw new Error(`Unknown dtype ${dtype}`); + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/version.js + /** @license See the LICENSE file. */ + const version12 = "2.3.0"; + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/webgl.js + /** + * @license + * Copyright 2019 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + function forceHalfFloat() { + env().set("WEBGL_FORCE_F16_TEXTURES", true); + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/base.js + /** + * @license + * Copyright 2020 Google Inc. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + if (device_util_exports.isBrowser()) { + registerBackend("webgl", () => new MathBackendWebGL(), 2); + } + const webgl2 = {forceHalfFloat}; + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Div_impl.js + /** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + function divImpl2(a, b, backend2) { + let program = new BinaryOpProgram(DIV, a.shape, b.shape); + if (env().getBool("WEBGL_PACK_BINARY_OPERATIONS")) { + program = new BinaryOpPackedProgram(DIV2, a.shape, b.shape, true); + } + const output = backend2.runWebGLProgram(program, [a, b], "float32"); + return output; + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Div.js + /** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const divConfig2 = { + kernelName: Div, + backendName: "webgl", + kernelFunc: ({inputs, backend: backend2}) => { + const {a, b} = inputs; + const webglBackend = backend2; + return divImpl2(a, b, webglBackend); + } + }; + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/flip_left_right_gpu.js + /** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class FlipLeftRightProgram { + constructor(imageShape) { + this.variableNames = ["Image"]; + this.outputShape = []; + const imageWidth = imageShape[2]; + this.outputShape = imageShape; + this.userCode = ` + void main() { + ivec4 coords = getOutputCoords(); + int x = coords[2]; + + int coordX = ${imageWidth} - x; + float outputValue; + if(coordX >= 0 && coordX < ${imageWidth}) { + outputValue = getImage(coords[0], coords[1], coordX, coords[3]); + } else { + outputValue = getImage(coords[0], coords[1], coords[2], coords[3]); + } + setOutput(outputValue); + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FlipLeftRight.js + /** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const flipLeftRightConfig2 = { + kernelName: FlipLeftRight, + backendName: "webgl", + kernelFunc: ({inputs, backend: backend2}) => { + const {image: image3} = inputs; + const webglBackend = backend2; + const program = new FlipLeftRightProgram(image3.shape); + const output = webglBackend.runWebGLProgram(program, [image3], image3.dtype); + return output; + } + }; + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FromPixels_utils/from_pixels_gpu.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class FromPixelsProgram { + constructor(outputShape) { + this.variableNames = ["A"]; + const glsl = getGlslDifferences(); + const [height, width] = outputShape; + this.outputShape = outputShape; + this.userCode = ` + void main() { + ivec3 coords = getOutputCoords(); + int texR = coords[0]; + int texC = coords[1]; + int depth = coords[2]; + vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${width}.0, ${height}.0); + + vec4 values = ${glsl.texture2D}(A, uv); + float value; + if (depth == 0) { + value = values.r; + } else if (depth == 1) { + value = values.g; + } else if (depth == 2) { + value = values.b; + } else if (depth == 3) { + value = values.a; + } + + setOutput(floor(value * 255.0 + 0.5)); + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FromPixels_utils/from_pixels_packed_gpu.js + /** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class FromPixelsPackedProgram { + constructor(outputShape) { + this.variableNames = ["A"]; + this.packedInputs = false; + this.packedOutput = true; + const glsl = getGlslDifferences(); + const [height, width] = outputShape; + this.outputShape = outputShape; + this.userCode = ` + void main() { + ivec3 coords = getOutputCoords(); + int texR = coords[0]; + int texC = coords[1]; + int depth = coords[2]; + + vec4 result = vec4(0.); + + for(int row=0; row<=1; row++) { + for(int col=0; col<=1; col++) { + texC = coords[1] + row; + depth = coords[2] + col; + + vec2 uv = (vec2(texC, texR) + halfCR) / + vec2(${width}.0, ${height}.0); + vec4 values = ${glsl.texture2D}(A, uv); + float value; + if (depth == 0) { + value = values.r; + } else if (depth == 1) { + value = values.g; + } else if (depth == 2) { + value = values.b; + } else if (depth == 3) { + value = values.a; + } + + result[row * 2 + col] = floor(value * 255.0 + 0.5); + } + } + + ${glsl.output} = result; + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FromPixels.js + /** + * @license + * Copyright 2019 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const fromPixelsConfig = { + kernelName: FromPixels, + backendName: "webgl", + kernelFunc: fromPixels2 + }; + let fromPixels2DContext2; + function fromPixels2(args) { + const {inputs, backend: backend2, attrs} = args; + let {pixels} = inputs; + const {numChannels} = attrs; + const isVideo = typeof HTMLVideoElement !== "undefined" && pixels instanceof HTMLVideoElement; + const isImage = typeof HTMLImageElement !== "undefined" && pixels instanceof HTMLImageElement; + const [width, height] = isVideo ? [ + pixels.videoWidth, + pixels.videoHeight + ] : [pixels.width, pixels.height]; + const texShape = [height, width]; + const outShape = [height, width, numChannels]; + if (isImage || isVideo) { + if (fromPixels2DContext2 == null) { + fromPixels2DContext2 = document.createElement("canvas").getContext("2d"); + } + fromPixels2DContext2.canvas.width = width; + fromPixels2DContext2.canvas.height = height; + fromPixels2DContext2.drawImage(pixels, 0, 0, width, height); + pixels = fromPixels2DContext2.canvas; + } + const tempPixelHandle = backend2.makeTensorInfo(texShape, "int32"); + backend2.texData.get(tempPixelHandle.dataId).usage = TextureUsage.PIXELS; + backend2.gpgpu.uploadPixelDataToTexture(backend2.getTexture(tempPixelHandle.dataId), pixels); + const program = env().getBool("WEBGL_PACK") ? new FromPixelsPackedProgram(outShape) : new FromPixelsProgram(outShape); + const res = backend2.runWebGLProgram(program, [tempPixelHandle], "int32"); + backend2.disposeData(tempPixelHandle.dataId); + return res; + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/shared.js + /** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const {maxImpl: maxImplCPU, transposeImpl: transposeImplCPU} = shared_exports; + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/reduce.js + /** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + function reduce(x, dtype, reductionType, backend2) { + const [batchSize, inSize] = x.shape; + const windowSize = backend_util_exports.computeOptimalWindowSize(inSize); + const reduceInfo = {windowSize, inSize, batchSize}; + const program = new ReduceProgram(reduceInfo, reductionType); + const output = backend2.runWebGLProgram(program, [x], dtype); + if (output.shape[1] === 1) { + return output; + } + return reduce(output, dtype, reductionType, backend2); + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/reshape.js + /** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + function packedReshape(input2, afterShape, backend2) { + const input3DShape = [ + getBatchDim(input2.shape), + ...getRowsCols(input2.shape) + ]; + const input3D = { + dtype: input2.dtype, + shape: input3DShape, + dataId: input2.dataId + }; + const afterShapeAs3D = [ + getBatchDim(afterShape), + ...getRowsCols(afterShape) + ]; + const program = new ReshapePackedProgram(afterShapeAs3D, input3DShape); + const preventEagerUnpackingOfOutput = true; + const output = backend2.runWebGLProgram(program, [input3D], input2.dtype, null, preventEagerUnpackingOfOutput); + return {dataId: output.dataId, shape: afterShape, dtype: output.dtype}; + } + function reshape78(x, afterShape, backend2) { + const xTexData = backend2.texData.get(x.dataId); + if (xTexData.isPacked && !isReshapeFree(x.shape, afterShape) && !(xTexData.texture !== null && isReshapeFree(xTexData.shape, afterShape))) { + return packedReshape(x, afterShape, backend2); + } + return {dataId: x.dataId, shape: afterShape, dtype: x.dtype}; + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Max_impl.js + /** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + function maxImpl2(x, reduceShape, outShape, backend2) { + const inSize = util_exports.sizeFromShape(reduceShape); + const xSize = util_exports.sizeFromShape(x.shape); + const batchSize = xSize / inSize; + const reshapedInput = reshape78(x, [batchSize, inSize], backend2); + const reduced = reduce(reshapedInput, x.dtype, "max", backend2); + if (reshapedInput.dataId !== x.dataId) { + backend2.disposeData(reshapedInput.dataId); + } + return reshape78(reduced, outShape, backend2); + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/transpose_gpu.js + /** + * @license + * Copyright 2017 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class TransposeProgram { + constructor(aShape, newDim) { + this.variableNames = ["A"]; + const outputShape = new Array(aShape.length); + for (let i = 0; i < outputShape.length; i++) { + outputShape[i] = aShape[newDim[i]]; + } + this.outputShape = outputShape; + this.rank = outputShape.length; + const dtype = getCoordsDataType(this.rank); + const switched = getSwitchedCoords(newDim); + this.userCode = ` + void main() { + ${dtype} resRC = getOutputCoords(); + setOutput(getA(${switched})); + } + `; + } + } + function getSwitchedCoords(newDim) { + const rank = newDim.length; + if (rank > 6) { + throw Error(`Transpose for rank ${rank} is not yet supported`); + } + const originalOrder = ["resRC.x", "resRC.y", "resRC.z", "resRC.w", "resRC.u", "resRC.v"]; + const switchedCoords = new Array(rank); + for (let i = 0; i < newDim.length; i++) { + switchedCoords[newDim[i]] = originalOrder[i]; + } + return switchedCoords.join(); + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/transpose_packed_gpu.js + /** + * @license + * Copyright 2019 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class TransposePackedProgram { + constructor(aShape, newDim) { + this.variableNames = ["A"]; + this.packedInputs = true; + this.packedOutput = true; + const outputShape = new Array(aShape.length); + for (let i = 0; i < outputShape.length; i++) { + outputShape[i] = aShape[newDim[i]]; + } + this.outputShape = outputShape; + this.rank = outputShape.length; + if (this.rank > 6) { + throw Error(`Packed transpose for rank ${this.rank} is not yet supported.`); + } + const dtype = getCoordsDataType(this.rank); + const outputOrder = getVecChannels("rc", this.rank); + const switchedOrder = new Array(this.rank); + for (let i = 0; i < newDim.length; i++) { + switchedOrder[newDim[i]] = outputOrder[i]; + } + const innerDims = `vec2(${switchedOrder.slice(-2).join()})`; + const nextColumn = `++${outputOrder[this.rank - 1]} < ${outputShape[this.rank - 1]}`; + const getc = `getChannel(getA(${switchedOrder.join()}), ${innerDims})`; + this.userCode = ` + void main() { + ${dtype} rc = getOutputCoords(); + vec4 result = vec4(0.); + result[0] = ${getc}; + if(${nextColumn}) { + result[1] = ${getc}; + } + --${outputOrder[this.rank - 1]}; + if(++${outputOrder[this.rank - 2]} < ${outputShape[this.rank - 2]}) { + result[2] = ${getc}; + if(${nextColumn}) { + result[3] = ${getc}; + } + } + setOutput(result); + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Transpose_impl.js + /** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + function transposeImpl2(x, perm, backend2) { + const program = env().getBool("WEBGL_PACK_ARRAY_OPERATIONS") ? new TransposePackedProgram(x.shape, perm) : new TransposeProgram(x.shape, perm); + return backend2.runWebGLProgram(program, [x], x.dtype); + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Max.js + /** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const maxConfig2 = { + kernelName: Max, + backendName: "webgl", + kernelFunc: ({inputs, attrs, backend: backend2}) => { + const {x} = inputs; + const {reductionIndices, keepDims} = attrs; + const webglBackend = backend2; + const xRank = x.shape.length; + const origAxes = util_exports.parseAxisParam(reductionIndices, x.shape); + let axes = origAxes; + const permutedAxes = backend_util_exports.getAxesPermutation(axes, xRank); + const maxInputIsTransposed = permutedAxes != null; + const shouldExecuteOnCPU = webglBackend.shouldExecuteOnCPU([x]); + let maxInput = x; + if (maxInputIsTransposed) { + if (shouldExecuteOnCPU) { + const xTexData = webglBackend.texData.get(maxInput.dataId); + const values = xTexData.values; + const newShape = new Array(xRank); + for (let i = 0; i < newShape.length; i++) { + newShape[i] = x.shape[permutedAxes[i]]; + } + const maxInputValues = transposeImplCPU(values, x.shape, x.dtype, permutedAxes, newShape); + maxInput = webglBackend.makeTensorInfo(newShape, x.dtype); + const maxInputData = webglBackend.texData.get(maxInput.dataId); + maxInputData.values = maxInputValues; + } else { + maxInput = transposeImpl2(x, permutedAxes, webglBackend); + } + axes = backend_util_exports.getInnerMostAxes(axes.length, xRank); + } + backend_util_exports.assertAxesAreInnerMostDims("max", axes, xRank); + const [maxOutShape, reduceShape] = backend_util_exports.computeOutAndReduceShapes(maxInput.shape, axes); + let outShape = maxOutShape; + if (keepDims) { + outShape = backend_util_exports.expandShapeToKeepDim(maxOutShape, origAxes); + } + let out; + if (shouldExecuteOnCPU) { + const xTexData = webglBackend.texData.get(maxInput.dataId); + const values = xTexData.values; + const outValues = maxImplCPU(values, util_exports.sizeFromShape(reduceShape), outShape, x.dtype); + out = webglBackend.makeTensorInfo(outShape, x.dtype); + const outData = webglBackend.texData.get(out.dataId); + outData.values = outValues; + } else { + out = maxImpl2(maxInput, reduceShape, outShape, webglBackend); + } + if (maxInputIsTransposed) { + webglBackend.disposeData(maxInput.dataId); + } + return out; + } + }; + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPoolWithArgmax_impl.js + /** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + function maxPoolWithArgmaxImpl2(x, includeBatchInIndex, convInfo, backend2) { + let program = new Pool2DProgram(convInfo, "max", false); + const poolOutput = backend2.runWebGLProgram(program, [x], "float32"); + program = new Pool2DProgram(convInfo, "max", true, true, includeBatchInIndex); + const indexOutput = backend2.runWebGLProgram(program, [x], "float32"); + return [poolOutput, indexOutput]; + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPoolWithArgmax.js + /** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const maxPoolWithArgmaxConfig2 = { + kernelName: MaxPoolWithArgmax, + backendName: "webgl", + kernelFunc: ({inputs, attrs, backend: backend2}) => { + const {x} = inputs; + const {filterSize, strides, pad: pad8, includeBatchInIndex} = attrs; + const webglBackend = backend2; + util_exports.assert(x.shape.length === 4, () => `Error in maxPool: input must be rank 4 but got rank ${x.shape.length}.`); + const dilations = [1, 1]; + util_exports.assert(backend_util_exports.eitherStridesOrDilationsAreOne(strides, dilations), () => `Error in maxPool: Either strides or dilations must be 1. Got strides ${strides} and dilations '${dilations}'`); + const convInfo = backend_util_exports.computePool2DInfo(x.shape, filterSize, strides, dilations, pad8); + const [result, indexes] = maxPoolWithArgmaxImpl2(x, includeBatchInIndex, convInfo, webglBackend); + return [result, indexes]; + } + }; + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/NonMaxSuppressionV3.js + /** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const nonMaxSuppressionV3Config = { + kernelName: NonMaxSuppressionV3, + backendName: "webgl", + kernelFunc: ({inputs, backend: backend2, attrs}) => { + backend_util_exports.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead"); + const {boxes, scores} = inputs; + const {maxOutputSize, iouThreshold, scoreThreshold} = attrs; + const gpuBackend = backend2; + const boxesVals = gpuBackend.readSync(boxes.dataId); + const scoresVals = gpuBackend.readSync(scores.dataId); + const maxOutputSizeVal = maxOutputSize; + const iouThresholdVal = iouThreshold; + const scoreThresholdVal = scoreThreshold; + return kernel_impls_exports.nonMaxSuppressionV3Impl(boxesVals, scoresVals, maxOutputSizeVal, iouThresholdVal, scoreThresholdVal); + } + }; + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/NonMaxSuppressionV4.js + /** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const nonMaxSuppressionV4Impl3 = kernel_impls_exports.nonMaxSuppressionV4Impl; + const nonMaxSuppressionV4Config2 = { + kernelName: NonMaxSuppressionV4, + backendName: "webgl", + kernelFunc: ({inputs, backend: backend2, attrs}) => { + backend_util_exports.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead"); + const {boxes, scores} = inputs; + const {maxOutputSize, iouThreshold, scoreThreshold, padToMaxOutputSize} = attrs; + const gpuBackend = backend2; + const boxesVals = gpuBackend.readSync(boxes.dataId); + const scoresVals = gpuBackend.readSync(scores.dataId); + const {selectedIndices, validOutputs} = nonMaxSuppressionV4Impl3(boxesVals, scoresVals, maxOutputSize, iouThreshold, scoreThreshold, padToMaxOutputSize); + return [selectedIndices, validOutputs]; + } + }; + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/NonMaxSuppressionV5.js + /** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const nonMaxSuppressionV5Impl3 = kernel_impls_exports.nonMaxSuppressionV5Impl; + const nonMaxSuppressionV5Config2 = { + kernelName: NonMaxSuppressionV5, + backendName: "webgl", + kernelFunc: ({inputs, backend: backend2, attrs}) => { + backend_util_exports.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead"); + const {boxes, scores} = inputs; + const {maxOutputSize, iouThreshold, scoreThreshold, softNmsSigma} = attrs; + const gpuBackend = backend2; + const boxesVals = gpuBackend.readSync(boxes.dataId); + const scoresVals = gpuBackend.readSync(scores.dataId); + const maxOutputSizeVal = maxOutputSize; + const iouThresholdVal = iouThreshold; + const scoreThresholdVal = scoreThreshold; + const softNmsSigmaVal = softNmsSigma; + const {selectedIndices, selectedScores} = nonMaxSuppressionV5Impl3(boxesVals, scoresVals, maxOutputSizeVal, iouThresholdVal, scoreThresholdVal, softNmsSigmaVal); + return [selectedIndices, selectedScores]; + } + }; + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/rotate_gpu.js + /** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + class RotateProgram { + constructor(imageShape, radians, fillValue, center) { + this.variableNames = ["Image"]; + this.outputShape = []; + const imageHeight = imageShape[1]; + const imageWidth = imageShape[2]; + const sinFactor = Math.sin(radians).toFixed(3); + const cosFactor = Math.cos(radians).toFixed(3); + this.outputShape = imageShape; + const [centerX, centerY] = backend_util_exports.getImageCenter(center, imageHeight, imageWidth); + const centerXString = centerX.toFixed(3); + const centerYString = centerY.toFixed(3); + let fillSnippet = ""; + if (typeof fillValue === "number") { + fillSnippet = `float outputValue = ${fillValue.toFixed(2)};`; + } else { + fillSnippet = ` + vec3 fill = vec3(${fillValue.join(",")}); + float outputValue = fill[coords[3]];`; + } + this.userCode = ` + void main() { + ivec4 coords = getOutputCoords(); + int x = coords[2]; + int y = coords[1]; + float coordXFloat = (float(x) - ${centerXString}) * ${cosFactor} - (float(y) - ${centerYString}) * ${sinFactor}; + float coordYFloat = (float(x) - ${centerXString}) * ${sinFactor} + (float(y) - ${centerYString}) * ${cosFactor}; + int coordX = int(round(coordXFloat + ${centerXString})); + int coordY = int(round(coordYFloat + ${centerYString})); + ${fillSnippet} + if(coordX >= 0 && coordX < ${imageWidth} && coordY >= 0 && coordY < ${imageHeight}) { + outputValue = getImage(coords[0], coordY, coordX, coords[3]); + } + setOutput(outputValue); + } + `; + } + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/RotateWithOffset.js + /** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const rotateWithOffsetConfig2 = { + kernelName: RotateWithOffset, + backendName: "webgl", + kernelFunc: ({inputs, attrs, backend: backend2}) => { + const {image: image3} = inputs; + const {radians, fillValue, center} = attrs; + const webglBackend = backend2; + const program = new RotateProgram(image3.shape, radians, fillValue, center); + const output = webglBackend.runWebGLProgram(program, [image3], image3.dtype); + return output; + } + }; + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Square.js + /** + * @license + * Copyright 2019 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const squareConfig2 = { + kernelName: Square, + backendName: "webgl", + kernelFunc: ({inputs, backend: backend2}) => { + const {x} = inputs; + const webglBackend = backend2; + const program = new UnaryOpProgram(x.shape, SQUARE); + return webglBackend.runWebGLProgram(program, [x], x.dtype); + } + }; + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/SquaredDifference.js + /** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const squaredDifferenceConfig2 = { + kernelName: SquaredDifference, + backendName: "webgl", + kernelFunc: ({inputs, backend: backend2}) => { + const {a, b} = inputs; + const SQUARED_DIFFERENCE = "return (a - b) * (a - b);"; + const webGLBackend = backend2; + const program = env().getBool("WEBGL_PACK_BINARY_OPERATIONS") ? new BinaryOpPackedProgram(SQUARED_DIFFERENCE, a.shape, b.shape) : new BinaryOpProgram(SQUARED_DIFFERENCE, a.shape, b.shape); + return webGLBackend.compileAndRun(program, [a, b]); + } + }; + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Transpose.js + /** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const transposeConfig2 = { + kernelName: Transpose, + backendName: "webgl", + kernelFunc: ({inputs, attrs, backend: backend2}) => { + const {x} = inputs; + const {perm} = attrs; + const webglBackend = backend2; + const xRank = x.shape.length; + const newShape = new Array(xRank); + for (let i = 0; i < newShape.length; i++) { + newShape[i] = x.shape[perm[i]]; + } + let out; + if (webglBackend.shouldExecuteOnCPU([x])) { + const xTexData = webglBackend.texData.get(x.dataId); + const values = xTexData.values; + const outValues = transposeImplCPU(values, x.shape, x.dtype, perm, newShape); + out = webglBackend.makeTensorInfo(newShape, x.dtype); + const outData = webglBackend.texData.get(out.dataId); + outData.values = outValues; + } else { + out = transposeImpl2(x, perm, webglBackend); + } + return out; + } + }; + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/register_all_kernels.js + /** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + const kernelConfigs2 = [ + maxConfig2, + flipLeftRightConfig2, + fromPixelsConfig, + divConfig2, + maxPoolWithArgmaxConfig2, + nonMaxSuppressionV3Config, + nonMaxSuppressionV4Config2, + nonMaxSuppressionV5Config2, + rotateWithOffsetConfig2, + squareConfig2, + squaredDifferenceConfig2, + transposeConfig2 + ]; + for (const kernelConfig of kernelConfigs2) { + registerKernel(kernelConfig); + } + + // node_modules/@tensorflow/tfjs-backend-webgl/dist/index.js + /** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + + // node_modules/@tensorflow/tfjs/dist/version.js + /** @license See the LICENSE file. */ + const version14 = "2.3.0"; + + // node_modules/@tensorflow/tfjs/dist/index.js + const dist_exports2 = {}; + __export(dist_exports2, { Abs: () => Abs, Acos: () => Acos, Acosh: () => Acosh, @@ -19919,6 +55096,8 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); BatchMatMul: () => BatchMatMul, BatchToSpaceND: () => BatchToSpaceND, BroadcastTo: () => BroadcastTo, + Callback: () => Callback, + CallbackList: () => CallbackList, Cast: () => Cast, Ceil: () => Ceil, ClipByValue: () => ClipByValue, @@ -19934,6 +55113,7 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); Cosh: () => Cosh, CropAndResize: () => CropAndResize, Cumsum: () => Cumsum, + CustomCallback: () => CustomCallback, DataStorage: () => DataStorage, DepthToSpace: () => DepthToSpace, DepthwiseConv2dNative: () => DepthwiseConv2dNative, @@ -19945,6 +55125,7 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); Dilation2DBackpropInput: () => Dilation2DBackpropInput, Div: () => Div, ENV: () => ENV, + EarlyStopping: () => EarlyStopping, Elu: () => Elu, EluGrad: () => EluGrad, Environment: () => Environment, @@ -19963,17 +55144,22 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); FusedDepthwiseConv2D: () => FusedDepthwiseConv2D, GatherNd: () => GatherNd, GatherV2: () => GatherV2, + GraphModel: () => GraphModel, Greater: () => Greater, GreaterEqual: () => GreaterEqual, + History: () => History, IFFT: () => IFFT, Identity: () => Identity, Imag: () => Imag, + InputSpec: () => InputSpec, IsFinite: () => IsFinite, IsInf: () => IsInf, IsNan: () => IsNan, KernelBackend: () => KernelBackend, LRN: () => LRN, LRNBackprop: () => LRNBackprop, + LayerVariable: () => LayerVariable, + LayersModel: () => LayersModel, Less: () => Less, LessEqual: () => LessEqual, LinSpace: () => LinSpace, @@ -20010,6 +55196,7 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); Prelu: () => Prelu, Prod: () => Prod, RMSPropOptimizer: () => RMSPropOptimizer, + RNN: () => RNN, Range: () => Range, Rank: () => Rank, Real: () => Real, @@ -20030,6 +55217,7 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); ScatterNd: () => ScatterNd, SelectV2: () => SelectV2, Selu: () => Selu, + Sequential: () => Sequential, Sigmoid: () => Sigmoid, Sign: () => Sign, Sin: () => Sin, @@ -20047,6 +55235,7 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); StridedSlice: () => StridedSlice, Sub: () => Sub, Sum: () => Sum, + SymbolicTensor: () => SymbolicTensor, Tan: () => Tan, Tanh: () => Tanh, Tensor: () => Tensor, @@ -20088,6 +55277,7 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); broadcastTo: () => broadcastTo, browser: () => browser_exports, buffer: () => buffer, + callbacks: () => callbacks, cast: () => cast, ceil: () => ceil, clipByValue: () => clipByValue, @@ -20098,6 +55288,7 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); concat2d: () => concat2d, concat3d: () => concat3d, concat4d: () => concat4d, + constraints: () => exports_constraints_exports, conv1d: () => conv1d, conv2d: () => conv2d, conv2dTranspose: () => conv2dTranspose, @@ -20108,9 +55299,11 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); cosineWindow: () => cosineWindow, cumsum: () => cumsum, customGrad: () => customGrad, + data: () => dist_exports, deprecationWarn: () => deprecationWarn, depthToSpace: () => depthToSpace, depthwiseConv2d: () => depthwiseConv2d, + deregisterOp: () => deregisterOp, device_util: () => device_util_exports, diag: () => diag, dilation2d: () => dilation2d, @@ -20159,6 +55352,8 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); imag: () => imag, image: () => image, inTopKAsync: () => inTopKAsync, + initializers: () => exports_initializers_exports, + input: () => input, io: () => io_exports, irfft: () => irfft, isFinite: () => isFinite2, @@ -20166,6 +55361,7 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); isNaN: () => isNaN2, keep: () => keep, kernel_impls: () => kernel_impls_exports, + layers: () => exports_layers_exports, leakyRelu: () => leakyRelu, less: () => less, lessEqual: () => lessEqual, @@ -20173,6 +55369,8 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); lessStrict: () => lessStrict, linalg: () => linalg, linspace: () => linspace, + loadGraphModel: () => loadGraphModel, + loadLayersModel: () => loadLayersModel, localResponseNormalization: () => localResponseNormalization, log: () => log, log1p: () => log1p, @@ -20194,11 +55392,14 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); maximumStrict: () => maximumStrict, mean: () => mean, memory: () => memory, + metrics: () => exports_metrics_exports, min: () => min, minimum: () => minimum, minimumStrict: () => minimumStrict, mod: () => mod, modStrict: () => modStrict, + model: () => model, + models: () => exports_models_exports, moments: () => moments, movingAverage: () => movingAverage, mul: () => mul, @@ -20236,8 +55437,11 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); real: () => real, reciprocal: () => reciprocal, registerBackend: () => registerBackend, + registerCallbackConstructor: () => registerCallbackConstructor, registerGradient: () => registerGradient, registerKernel: () => registerKernel, + registerOp: () => registerOp, + regularizers: () => exports_regularizers_exports, relu: () => relu, relu6: () => relu6, removeBackend: () => removeBackend, @@ -20255,6 +55459,7 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); scatter_util: () => scatter_nd_util_exports, selu: () => selu, separableConv2d: () => separableConv2d, + sequential: () => sequential, serialization: () => serialization_exports, setBackend: () => setBackend, setPlatform: () => setPlatform, @@ -20316,7 +55521,10 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); valueAndGrads: () => valueAndGrads, variable: () => variable, variableGrads: () => variableGrads, + version: () => version16, + version_converter: () => version6, version_core: () => version, + version_layers: () => version2, where: () => where, whereAsync: () => whereAsync, zeros: () => zeros, @@ -20324,7 +55532,7 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); }); /** * @license - * Copyright 2017 Google LLC. All Rights Reserved. + * Copyright 2018 Google LLC. All Rights Reserved. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -20338,6 +55546,15 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); * limitations under the License. * ============================================================================= */ + const version16 = { + "tfjs-core": version, + "tfjs-backend-cpu": version10, + "tfjs-backend-webgl": version12, + "tfjs-data": version8, + "tfjs-layers": version2, + "tfjs-converter": version6, + tfjs: version14 + }; // build/draw/drawContour.js function drawContour(ctx, points, isClosed = false) { @@ -20385,7 +55602,7 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); computeReshapedDimensions: () => computeReshapedDimensions, getCenterPoint: () => getCenterPoint, isDimensions: () => isDimensions, - isEven: () => isEven, + isEven: () => isEven2, isFloat: () => isFloat, isTensor: () => isTensor, isTensor1D: () => isTensor1D, @@ -20394,7 +55611,7 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); isTensor4D: () => isTensor4D, isValidNumber: () => isValidNumber, isValidProbablitiy: () => isValidProbablitiy, - range: () => range4, + range: () => range5, round: () => round3 }); function isTensor(tensor17, dim) { @@ -20415,7 +55632,7 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); function isFloat(num) { return num % 1 !== 0; } - function isEven(num) { + function isEven2(num) { return num % 2 === 0; } function round3(num, prec = 2) { @@ -20432,7 +55649,7 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); function getCenterPoint(pts) { return pts.reduce((sum26, pt) => sum26.add(pt), new Point(0, 0)).div(new Point(pts.length, pts.length)); } - function range4(num, start, step7) { + function range5(num, start, step7) { return Array(num).fill(0).map((_, i) => start + i * step7); } function isValidNumber(num) { @@ -20706,10 +55923,10 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); function minBbox(pts) { const xs = pts.map((pt) => pt.x); const ys = pts.map((pt) => pt.y); - const minX = xs.reduce((min5, x) => x < min5 ? x : min5, Infinity); - const minY = ys.reduce((min5, y) => y < min5 ? y : min5, Infinity); - const maxX = xs.reduce((max7, x) => max7 < x ? x : max7, 0); - const maxY = ys.reduce((max7, y) => max7 < y ? y : max7, 0); + const minX = xs.reduce((min6, x) => x < min6 ? x : min6, Infinity); + const minY = ys.reduce((min6, y) => y < min6 ? y : min6, Infinity); + const maxX = xs.reduce((max8, x) => max8 < x ? x : max8, 0); + const maxY = ys.reduce((max8, y) => max8 < y ? y : max8, 0); return new BoundingBox(minX, minY, maxX, maxY); } @@ -20774,14 +55991,14 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); // build/ops/shuffleArray.js function shuffleArray(inputArray) { - const array = inputArray.slice(); - for (let i = array.length - 1; i > 0; i--) { + const array2 = inputArray.slice(); + for (let i = array2.length - 1; i > 0; i--) { const j = Math.floor(Math.random() * (i + 1)); - const x = array[i]; - array[i] = array[j]; - array[j] = x; + const x = array2[i]; + array2[i] = array2[j]; + array2[j] = x; } - return array; + return array2; } // build/ops/index.js @@ -20856,9 +56073,9 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); const y = Math.floor(Math.max(0, refPoint.y - relY * size)); return new Rect(x, y, Math.min(size, this.imageWidth + x), Math.min(size, this.imageHeight + y)); } - alignMinBbox(padding) { + alignMinBbox(padding2) { const box = minBbox(this.positions); - return box.pad(box.width * padding, box.height * padding); + return box.pad(box.width * padding2, box.height * padding2); } getRefPointsForAlignment() { throw new Error("getRefPointsForAlignment not implemented by base class"); @@ -20967,11 +56184,11 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); descriptors: this.descriptors.map((d) => Array.from(d)) }; } - static fromJSON(json) { - const descriptors = json.descriptors.map((d) => { + static fromJSON(json17) { + const descriptors = json17.descriptors.map((d) => { return new Float32Array(d); }); - return new LabeledFaceDescriptors(json.label, descriptors); + return new LabeledFaceDescriptors(json17.label, descriptors); } } @@ -21095,19 +56312,69 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); return typeof window === "object" && typeof document !== "undefined" && typeof HTMLImageElement !== "undefined" && typeof HTMLCanvasElement !== "undefined" && typeof HTMLVideoElement !== "undefined" && typeof ImageData !== "undefined" && typeof CanvasRenderingContext2D !== "undefined"; } + // build/env/types.js + + // build/env/index.js + const isNodejs = __toModule(require_isNodejs()); + let environment11; + function getEnv() { + if (!environment11) { + throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()"); + } + return environment11; + } + function setEnv(env17) { + environment11 = env17; + } + function initialize() { + if (isBrowser2()) { + return setEnv(createBrowserEnv()); + } + if (isNodejs.isNodejs()) { + return setEnv(createNodejsEnv()); + } + } + function monkeyPatch(env17) { + if (!environment11) { + initialize(); + } + if (!environment11) { + throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()"); + } + const {Canvas = environment11.Canvas, Image = environment11.Image} = env17; + environment11.Canvas = Canvas; + environment11.Image = Image; + environment11.createCanvasElement = env17.createCanvasElement || (() => new Canvas()); + environment11.createImageElement = env17.createImageElement || (() => new Image()); + environment11.ImageData = env17.ImageData || environment11.ImageData; + environment11.Video = env17.Video || environment11.Video; + environment11.fetch = env17.fetch || environment11.fetch; + environment11.readFile = env17.readFile || environment11.readFile; + } + const env2 = { + getEnv, + setEnv, + initialize, + createBrowserEnv, + createFileSystem, + createNodejsEnv, + monkeyPatch, + isBrowser: isBrowser2, + isNodejs: isNodejs.isNodejs + }; + initialize(); + // build/dom/resolveInput.js - const env2 = __toModule(require_env()); function resolveInput(arg) { - if (!env2.env.isNodejs() && typeof arg === "string") { + if (!env2.isNodejs() && typeof arg === "string") { return document.getElementById(arg); } return arg; } // build/dom/getContext2dOrThrow.js - const env4 = __toModule(require_env()); function getContext2dOrThrow(canvasArg) { - const {Canvas, CanvasRenderingContext2D: CanvasRenderingContext2D2} = env4.env.getEnv(); + const {Canvas, CanvasRenderingContext2D: CanvasRenderingContext2D2} = env2.getEnv(); if (canvasArg instanceof CanvasRenderingContext2D2) { return canvasArg; } @@ -21132,13 +56399,13 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); })(AnchorPosition || (AnchorPosition = {})); class DrawTextFieldOptions { constructor(options = {}) { - const {anchorPosition, backgroundColor, fontColor, fontSize, fontStyle, padding} = options; + const {anchorPosition, backgroundColor, fontColor, fontSize, fontStyle, padding: padding2} = options; this.anchorPosition = anchorPosition || AnchorPosition.TOP_LEFT; this.backgroundColor = backgroundColor || "rgba(0, 0, 0, 0.5)"; this.fontColor = fontColor || "rgba(255, 255, 255, 1)"; this.fontSize = fontSize || 14; this.fontStyle = fontStyle || "Georgia"; - this.padding = padding || 4; + this.padding = padding2 || 4; } } class DrawTextField { @@ -21148,12 +56415,12 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); this.options = new DrawTextFieldOptions(options); } measureWidth(ctx) { - const {padding} = this.options; - return this.text.map((l) => ctx.measureText(l).width).reduce((w0, w1) => w0 < w1 ? w1 : w0, 0) + 2 * padding; + const {padding: padding2} = this.options; + return this.text.map((l) => ctx.measureText(l).width).reduce((w0, w1) => w0 < w1 ? w1 : w0, 0) + 2 * padding2; } measureHeight() { - const {fontSize, padding} = this.options; - return this.text.length * fontSize + 2 * padding; + const {fontSize, padding: padding2} = this.options; + return this.text.length * fontSize + 2 * padding2; } getUpperLeft(ctx, canvasDims) { const {anchorPosition} = this.options; @@ -21174,7 +56441,7 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); draw(canvasArg) { const canvas = resolveInput(canvasArg); const ctx = getContext2dOrThrow(canvas); - const {backgroundColor, fontColor, fontSize, fontStyle, padding} = this.options; + const {backgroundColor, fontColor, fontSize, fontStyle, padding: padding2} = this.options; ctx.font = `${fontSize}px ${fontStyle}`; const maxTextWidth = this.measureWidth(ctx); const textHeight = this.measureHeight(); @@ -21183,8 +56450,8 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); ctx.fillRect(upperLeft.x, upperLeft.y, maxTextWidth, textHeight); ctx.fillStyle = fontColor; this.text.forEach((textLine, i) => { - const x = padding + upperLeft.x; - const y = padding + upperLeft.y + (i + 1) * fontSize; + const x = padding2 + upperLeft.x; + const y = padding2 + upperLeft.y + (i + 1) * fontSize; ctx.fillText(textLine, x, y); }); } @@ -21235,17 +56502,15 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); } // build/dom/isMediaLoaded.js - const env6 = __toModule(require_env()); function isMediaLoaded(media) { - const {Image, Video} = env6.env.getEnv(); + const {Image, Video} = env2.getEnv(); return media instanceof Image && media.complete || media instanceof Video && media.readyState >= 3; } // build/dom/awaitMediaLoaded.js - const env8 = __toModule(require_env()); function awaitMediaLoaded(media) { return new Promise((resolve, reject) => { - if (media instanceof env8.env.getEnv().Canvas || isMediaLoaded(media)) { + if (media instanceof env2.getEnv().Canvas || isMediaLoaded(media)) { return resolve(); } function onLoad(e) { @@ -21268,7 +56533,6 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); } // build/dom/bufferToImage.js - const env10 = __toModule(require_env()); function bufferToImage(buf) { return new Promise((resolve, reject) => { if (!(buf instanceof Blob)) { @@ -21279,7 +56543,7 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); if (typeof reader.result !== "string") { return reject("bufferToImage - expected reader.result to be a string, in onload"); } - const img = env10.env.getEnv().createImageElement(); + const img = env2.getEnv().createImageElement(); img.onload = () => resolve(img); img.onerror = reject; img.src = reader.result; @@ -21290,34 +56554,32 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); } // build/dom/getMediaDimensions.js - const env12 = __toModule(require_env()); - function getMediaDimensions(input) { - const {Image, Video} = env12.env.getEnv(); - if (input instanceof Image) { - return new Dimensions(input.naturalWidth, input.naturalHeight); + function getMediaDimensions(input2) { + const {Image, Video} = env2.getEnv(); + if (input2 instanceof Image) { + return new Dimensions(input2.naturalWidth, input2.naturalHeight); } - if (input instanceof Video) { - return new Dimensions(input.videoWidth, input.videoHeight); + if (input2 instanceof Video) { + return new Dimensions(input2.videoWidth, input2.videoHeight); } - return new Dimensions(input.width, input.height); + return new Dimensions(input2.width, input2.height); } // build/dom/createCanvas.js - const env14 = __toModule(require_env()); - function createCanvas({width, height}) { - const {createCanvasElement} = env14.env.getEnv(); + function createCanvas2({width, height}) { + const {createCanvasElement} = env2.getEnv(); const canvas = createCanvasElement(); canvas.width = width; canvas.height = height; return canvas; } function createCanvasFromMedia(media, dims) { - const {ImageData: ImageData2} = env14.env.getEnv(); + const {ImageData: ImageData2} = env2.getEnv(); if (!(media instanceof ImageData2) && !isMediaLoaded(media)) { throw new Error("createCanvasFromMedia - media has not finished loading yet"); } const {width, height} = dims || getMediaDimensions(media); - const canvas = createCanvas({width, height}); + const canvas = createCanvas2({width, height}); if (media instanceof ImageData2) { getContext2dOrThrow(canvas).putImageData(media, 0, 0); } else { @@ -21327,9 +56589,8 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); } // build/dom/imageTensorToCanvas.js - const env16 = __toModule(require_env()); async function imageTensorToCanvas(imgTensor, canvas) { - const targetCanvas = canvas || env16.env.getEnv().createCanvasElement(); + const targetCanvas = canvas || env2.getEnv().createCanvasElement(); const [height, width, numChannels] = imgTensor.shape.slice(isTensor4D(imgTensor) ? 1 : 0); const imgTensor3D = tidy(() => imgTensor.as3D(height, width, numChannels).toInt()); await browser_exports.toPixels(imgTensor3D, targetCanvas); @@ -21338,25 +56599,23 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); } // build/dom/isMediaElement.js - const env18 = __toModule(require_env()); - function isMediaElement(input) { - const {Image, Canvas, Video} = env18.env.getEnv(); - return input instanceof Image || input instanceof Canvas || input instanceof Video; + function isMediaElement(input2) { + const {Image, Canvas, Video} = env2.getEnv(); + return input2 instanceof Image || input2 instanceof Canvas || input2 instanceof Video; } // build/dom/imageToSquare.js - const env20 = __toModule(require_env()); - function imageToSquare(input, inputSize, centerImage = false) { - const {Image, Canvas} = env20.env.getEnv(); - if (!(input instanceof Image || input instanceof Canvas)) { + function imageToSquare(input2, inputSize, centerImage = false) { + const {Image, Canvas} = env2.getEnv(); + if (!(input2 instanceof Image || input2 instanceof Canvas)) { throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement"); } - const dims = getMediaDimensions(input); + const dims = getMediaDimensions(input2); const scale2 = inputSize / Math.max(dims.height, dims.width); const width = scale2 * dims.width; const height = scale2 * dims.height; - const targetCanvas = createCanvas({width: inputSize, height: inputSize}); - const inputCanvas = input instanceof Canvas ? input : createCanvasFromMedia(input); + const targetCanvas = createCanvas2({width: inputSize, height: inputSize}); + const inputCanvas = input2 instanceof Canvas ? input2 : createCanvasFromMedia(input2); const offset = Math.abs(width - height) / 2; const dx = centerImage && width < height ? offset : 0; const dy = centerImage && height < width ? offset : 0; @@ -21365,7 +56624,6 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); } // build/dom/NetInput.js - const env22 = __toModule(require_env()); class NetInput { constructor(inputs, treatAsBatchInput = false) { this._imageTensors = []; @@ -21377,22 +56635,22 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); } this._treatAsBatchInput = treatAsBatchInput; this._batchSize = inputs.length; - inputs.forEach((input, idx) => { - if (isTensor3D(input)) { - this._imageTensors[idx] = input; - this._inputDimensions[idx] = input.shape; + inputs.forEach((input2, idx) => { + if (isTensor3D(input2)) { + this._imageTensors[idx] = input2; + this._inputDimensions[idx] = input2.shape; return; } - if (isTensor4D(input)) { - const batchSize = input.shape[0]; + if (isTensor4D(input2)) { + const batchSize = input2.shape[0]; if (batchSize !== 1) { throw new Error(`NetInput - tf.Tensor4D with batchSize ${batchSize} passed, but not supported in input array`); } - this._imageTensors[idx] = input; - this._inputDimensions[idx] = input.shape.slice(1); + this._imageTensors[idx] = input2; + this._inputDimensions[idx] = input2.shape.slice(1); return; } - const canvas = input instanceof env22.env.getEnv().Canvas ? input : createCanvasFromMedia(input); + const canvas = input2 instanceof env2.getEnv().Canvas ? input2 : createCanvasFromMedia(input2); this._canvases[idx] = canvas; this._inputDimensions[idx] = [canvas.height, canvas.width, 3]; }); @@ -21416,7 +56674,7 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); return this._inputSize; } get reshapedInputDimensions() { - return range4(this.batchSize, 0, 1).map((_, batchIdx) => this.getReshapedInputDimensions(batchIdx)); + return range5(this.batchSize, 0, 1).map((_, batchIdx) => this.getReshapedInputDimensions(batchIdx)); } getInput(batchIdx) { return this.canvases[batchIdx] || this.imageTensors[batchIdx]; @@ -21441,20 +56699,20 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); toBatchTensor(inputSize, isCenterInputs = true) { this._inputSize = inputSize; return tidy(() => { - const inputTensors = range4(this.batchSize, 0, 1).map((batchIdx) => { - const input = this.getInput(batchIdx); - if (input instanceof Tensor) { - let imgTensor = isTensor4D(input) ? input : input.expandDims(); + const inputTensors = range5(this.batchSize, 0, 1).map((batchIdx) => { + const input2 = this.getInput(batchIdx); + if (input2 instanceof Tensor) { + let imgTensor = isTensor4D(input2) ? input2 : input2.expandDims(); imgTensor = padToSquare(imgTensor, isCenterInputs); if (imgTensor.shape[1] !== inputSize || imgTensor.shape[2] !== inputSize) { imgTensor = image.resizeBilinear(imgTensor, [inputSize, inputSize]); } return imgTensor.as3D(inputSize, inputSize, 3); } - if (input instanceof env22.env.getEnv().Canvas) { - return browser_exports.fromPixels(imageToSquare(input, inputSize, isCenterInputs)); + if (input2 instanceof env2.getEnv().Canvas) { + return browser_exports.fromPixels(imageToSquare(input2, inputSize, isCenterInputs)); } - throw new Error(`toBatchTensor - at batchIdx ${batchIdx}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${input}`); + throw new Error(`toBatchTensor - at batchIdx ${batchIdx}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${input2}`); }); const batchTensor = stack(inputTensors.map((t) => t.toFloat())).as4D(this.batchSize, inputSize, inputSize, 3); return batchTensor; @@ -21473,31 +56731,30 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); } const getIdxHint = (idx) => Array.isArray(inputs) ? ` at input index ${idx}:` : ""; const inputArray = inputArgArray.map(resolveInput); - inputArray.forEach((input, i) => { - if (!isMediaElement(input) && !isTensor3D(input) && !isTensor4D(input)) { + inputArray.forEach((input2, i) => { + if (!isMediaElement(input2) && !isTensor3D(input2) && !isTensor4D(input2)) { if (typeof inputArgArray[i] === "string") { throw new Error(`toNetInput -${getIdxHint(i)} string passed, but could not resolve HTMLElement for element id ${inputArgArray[i]}`); } throw new Error(`toNetInput -${getIdxHint(i)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`); } - if (isTensor4D(input)) { - const batchSize = input.shape[0]; + if (isTensor4D(input2)) { + const batchSize = input2.shape[0]; if (batchSize !== 1) { throw new Error(`toNetInput -${getIdxHint(i)} tf.Tensor4D with batchSize ${batchSize} passed, but not supported in input array`); } } }); - await Promise.all(inputArray.map((input) => isMediaElement(input) && awaitMediaLoaded(input))); + await Promise.all(inputArray.map((input2) => isMediaElement(input2) && awaitMediaLoaded(input2))); return new NetInput(inputArray, Array.isArray(inputs)); } // build/dom/extractFaces.js - const env24 = __toModule(require_env()); - async function extractFaces(input, detections) { - const {Canvas} = env24.env.getEnv(); - let canvas = input; - if (!(input instanceof Canvas)) { - const netInput = await toNetInput(input); + async function extractFaces(input2, detections) { + const {Canvas} = env2.getEnv(); + let canvas = input2; + if (!(input2 instanceof Canvas)) { + const netInput = await toNetInput(input2); if (netInput.batchSize > 1) { throw new Error("extractFaces - batchSize > 1 not supported"); } @@ -21507,7 +56764,7 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); const ctx = getContext2dOrThrow(canvas); const boxes = detections.map((det) => det instanceof FaceDetection ? det.forSize(canvas.width, canvas.height).box.floor() : det).map((box) => box.clipAtImageBorders(canvas.width, canvas.height)); return boxes.map(({x, y, width, height}) => { - const faceImg = createCanvas({width, height}); + const faceImg = createCanvas2({width, height}); getContext2dOrThrow(faceImg).putImageData(ctx.getImageData(x, y, width, height), 0, 0); return faceImg; }); @@ -21530,9 +56787,8 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); } // build/dom/fetchOrThrow.js - const env26 = __toModule(require_env()); async function fetchOrThrow(url, init) { - const fetch3 = env26.env.getEnv().fetch; + const fetch3 = env2.getEnv().fetch; const res = await fetch3(url, init); if (!(res.status < 400)) { throw new Error(`failed to fetch: (${res.status}) ${res.statusText}, from url: ${res.url}`); @@ -21595,16 +56851,18 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); } // build/dom/matchDimensions.js - function matchDimensions(input, reference, useMediaDimensions = false) { + function matchDimensions(input2, reference, useMediaDimensions = false) { const {width, height} = useMediaDimensions ? getMediaDimensions(reference) : reference; - input.width = width; - input.height = height; + input2.width = width; + input2.height = height; return {width, height}; } + // build/dom/types.js + + // build/dom/index.js + // build/NeuralNetwork.js - const dom = __toModule(require_dom()); - const env28 = __toModule(require_env()); class NeuralNetwork { constructor(_name) { this._name = _name; @@ -21676,14 +56934,14 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); if (uri && typeof uri !== "string") { throw new Error(`${this._name}.loadFromUri - expected model uri`); } - const weightMap = await dom.loadWeightMap(uri, this.getDefaultModelName()); + const weightMap = await loadWeightMap(uri, this.getDefaultModelName()); this.loadFromWeightMap(weightMap); } async loadFromDisk(filePath) { if (filePath && typeof filePath !== "string") { throw new Error(`${this._name}.loadFromDisk - expected model file path`); } - const {readFile} = env28.env.getEnv(); + const {readFile} = env2.getEnv(); const {manifestUri, modelBaseUri} = getModelUris(filePath, this.getDefaultModelName()); const fetchWeightsFromDisk = (filePaths) => Promise.all(filePaths.map((filePath2) => readFile(filePath2).then((buf) => buf.buffer))); const loadWeights2 = io_exports.weightsLoaderFactory(fetchWeightsFromDisk); @@ -21751,9 +57009,9 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); } // build/common/convLayer.js - function convLayer(x, params, padding = "same", withRelu = false) { + function convLayer(x, params, padding2 = "same", withRelu = false) { return tidy(() => { - const out = add2(conv2d(x, params.filters, [1, 1], padding), params.bias); + const out = add2(conv2d(x, params.filters, [1, 1], padding2), params.bias); return withRelu ? relu(out) : out; }); } @@ -21936,18 +57194,17 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); } // build/faceFeatureExtractor/FaceFeatureExtractor.js - const dom2 = __toModule(require_dom()); class FaceFeatureExtractor extends NeuralNetwork { constructor() { super("FaceFeatureExtractor"); } - forwardInput(input) { + forwardInput(input2) { const {params} = this; if (!params) { throw new Error("FaceFeatureExtractor - load model before inference"); } return tidy(() => { - const batchTensor = input.toBatchTensor(112, true); + const batchTensor = input2.toBatchTensor(112, true); const meanRgb = [122.782, 117.001, 104.298]; const normalized = normalize(batchTensor, meanRgb).div(scalar(255)); let out = denseBlock4(normalized, params.dense0, true); @@ -21958,8 +57215,8 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); return out; }); } - async forward(input) { - return this.forwardInput(await dom2.toNetInput(input)); + async forward(input2) { + return this.forwardInput(await toNetInput(input2)); } getDefaultModelName() { return "face_feature_extractor_model"; @@ -22020,7 +57277,6 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); } // build/faceProcessor/FaceProcessor.js - const dom3 = __toModule(require_dom()); class FaceProcessor extends NeuralNetwork { constructor(_name, faceFeatureExtractor) { super(_name); @@ -22029,13 +57285,13 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); get faceFeatureExtractor() { return this._faceFeatureExtractor; } - runNet(input) { + runNet(input2) { const {params} = this; if (!params) { throw new Error(`${this._name} - load model before inference`); } return tidy(() => { - const bottleneckFeatures = input instanceof dom3.NetInput ? this.faceFeatureExtractor.forwardInput(input) : input; + const bottleneckFeatures = input2 instanceof NetInput ? this.faceFeatureExtractor.forwardInput(input2) : input2; return fullyConnectedLayer(bottleneckFeatures.as2D(bottleneckFeatures.shape[0], -1), params.fc); }); } @@ -22084,19 +57340,18 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); } // build/faceExpressionNet/FaceExpressionNet.js - const dom4 = __toModule(require_dom()); class FaceExpressionNet extends FaceProcessor { constructor(faceFeatureExtractor = new FaceFeatureExtractor()) { super("FaceExpressionNet", faceFeatureExtractor); } - forwardInput(input) { - return tidy(() => softmax(this.runNet(input))); + forwardInput(input2) { + return tidy(() => softmax(this.runNet(input2))); } - async forward(input) { - return this.forwardInput(await dom4.toNetInput(input)); + async forward(input2) { + return this.forwardInput(await toNetInput(input2)); } - async predictExpressions(input) { - const netInput = await dom4.toNetInput(input); + async predictExpressions(input2) { + const netInput = await toNetInput(input2); const out = await this.forwardInput(netInput); const probabilitesByBatch = await Promise.all(unstack(out).map(async (t) => { const data = await t.data(); @@ -22269,7 +57524,7 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); reduction_block_1: entry_flow_reduction_block_1 }; const middle_flow = {}; - range4(numMainBlocks, 0, 1).forEach((idx) => { + range5(numMainBlocks, 0, 1).forEach((idx) => { middle_flow[`main_block_${idx}`] = extractMainBlockParams(128, `middle_flow/main_block_${idx}`); }); const exit_flow_reduction_block = extractReductionBlockParams(128, 256, "exit_flow/reduction_block"); @@ -22323,7 +57578,7 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); reduction_block_1: entry_flow_reduction_block_1 }; const middle_flow = {}; - range4(numMainBlocks, 0, 1).forEach((idx) => { + range5(numMainBlocks, 0, 1).forEach((idx) => { middle_flow[`main_block_${idx}`] = extractMainBlockParams(`middle_flow/main_block_${idx}`); }); const exit_flow_reduction_block = extractReductionBlockParams("exit_flow/reduction_block"); @@ -22337,7 +57592,6 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); } // build/xception/TinyXception.js - const dom5 = __toModule(require_dom()); function conv(x, params, stride) { return add2(conv2d(x, params.filters, stride, "same"), params.bias); } @@ -22361,19 +57615,19 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); super("TinyXception"); this._numMainBlocks = numMainBlocks; } - forwardInput(input) { + forwardInput(input2) { const {params} = this; if (!params) { throw new Error("TinyXception - load model before inference"); } return tidy(() => { - const batchTensor = input.toBatchTensor(112, true); + const batchTensor = input2.toBatchTensor(112, true); const meanRgb = [122.782, 117.001, 104.298]; const normalized = normalize(batchTensor, meanRgb).div(scalar(256)); let out = relu(conv(normalized, params.entry_flow.conv_in, [2, 2])); out = reductionBlock(out, params.entry_flow.reduction_block_0, false); out = reductionBlock(out, params.entry_flow.reduction_block_1); - range4(this._numMainBlocks, 0, 1).forEach((idx) => { + range5(this._numMainBlocks, 0, 1).forEach((idx) => { out = mainBlock(out, params.middle_flow[`main_block_${idx}`]); }); out = reductionBlock(out, params.exit_flow.reduction_block); @@ -22381,8 +57635,8 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); return out; }); } - async forward(input) { - return this.forwardInput(await dom5.toNetInput(input)); + async forward(input2) { + return this.forwardInput(await toNetInput(input2)); } getDefaultModelName() { return "tiny_xception_model"; @@ -22438,7 +57692,6 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); })(Gender || (Gender = {})); // build/ageGenderNet/AgeGenderNet.js - const dom6 = __toModule(require_dom()); class AgeGenderNet extends NeuralNetwork { constructor(faceFeatureExtractor = new TinyXception(2)) { super("AgeGenderNet"); @@ -22447,30 +57700,30 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); get faceFeatureExtractor() { return this._faceFeatureExtractor; } - runNet(input) { + runNet(input2) { const {params} = this; if (!params) { throw new Error(`${this._name} - load model before inference`); } return tidy(() => { - const bottleneckFeatures = input instanceof dom6.NetInput ? this.faceFeatureExtractor.forwardInput(input) : input; + const bottleneckFeatures = input2 instanceof NetInput ? this.faceFeatureExtractor.forwardInput(input2) : input2; const pooled = avgPool(bottleneckFeatures, [7, 7], [2, 2], "valid").as2D(bottleneckFeatures.shape[0], -1); const age = fullyConnectedLayer(pooled, params.fc.age).as1D(); const gender = fullyConnectedLayer(pooled, params.fc.gender); return {age, gender}; }); } - forwardInput(input) { + forwardInput(input2) { return tidy(() => { - const {age, gender} = this.runNet(input); + const {age, gender} = this.runNet(input2); return {age, gender: softmax(gender)}; }); } - async forward(input) { - return this.forwardInput(await dom6.toNetInput(input)); + async forward(input2) { + return this.forwardInput(await toNetInput(input2)); } - async predictAgeAndGender(input) { - const netInput = await dom6.toNetInput(input); + async predictAgeAndGender(input2) { + const netInput = await toNetInput(input2); const out = await this.forwardInput(netInput); const ages = unstack(out.age); const genders = unstack(out.gender); @@ -22524,7 +57777,6 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); // build/ageGenderNet/index.js // build/faceLandmarkNet/FaceLandmark68NetBase.js - const dom7 = __toModule(require_dom()); class FaceLandmark68NetBase extends FaceProcessor { postProcess(output, inputSize, originalDimensions) { const inputDimensions = originalDimensions.map(({width, height}) => { @@ -22540,32 +57792,32 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); fill([68], fillX), fill([68], fillY) ], 1).as2D(1, 136).as1D(); - const getPadding = (batchIdx, cond) => { + const getPadding2 = (batchIdx, cond) => { const {width, height} = inputDimensions[batchIdx]; return cond(width, height) ? Math.abs(width - height) / 2 : 0; }; - const getPaddingX = (batchIdx) => getPadding(batchIdx, (w, h) => w < h); - const getPaddingY = (batchIdx) => getPadding(batchIdx, (w, h) => h < w); + const getPaddingX = (batchIdx) => getPadding2(batchIdx, (w, h) => w < h); + const getPaddingY = (batchIdx) => getPadding2(batchIdx, (w, h) => h < w); const landmarkTensors = output.mul(fill([batchSize, 136], inputSize)).sub(stack(Array.from(Array(batchSize), (_, batchIdx) => createInterleavedTensor(getPaddingX(batchIdx), getPaddingY(batchIdx))))).div(stack(Array.from(Array(batchSize), (_, batchIdx) => createInterleavedTensor(inputDimensions[batchIdx].width, inputDimensions[batchIdx].height)))); return landmarkTensors; }); } - forwardInput(input) { + forwardInput(input2) { return tidy(() => { - const out = this.runNet(input); - return this.postProcess(out, input.inputSize, input.inputDimensions.map(([height, width]) => ({height, width}))); + const out = this.runNet(input2); + return this.postProcess(out, input2.inputSize, input2.inputDimensions.map(([height, width]) => ({height, width}))); }); } - async forward(input) { - return this.forwardInput(await dom7.toNetInput(input)); + async forward(input2) { + return this.forwardInput(await toNetInput(input2)); } - async detectLandmarks(input) { - const netInput = await dom7.toNetInput(input); + async detectLandmarks(input2) { + const netInput = await toNetInput(input2); const landmarkTensors = tidy(() => unstack(this.forwardInput(netInput))); const landmarksForBatch = await Promise.all(landmarkTensors.map(async (landmarkTensor, batchIdx) => { const landmarksArray = Array.from(await landmarkTensor.data()); - const xCoords = landmarksArray.filter((_, i) => isEven(i)); - const yCoords = landmarksArray.filter((_, i) => !isEven(i)); + const xCoords = landmarksArray.filter((_, i) => isEven2(i)); + const yCoords = landmarksArray.filter((_, i) => !isEven2(i)); return new FaceLandmarks68(Array(68).fill(0).map((_, i) => new Point(xCoords[i], yCoords[i])), { height: netInput.getInputHeight(batchIdx), width: netInput.getInputWidth(batchIdx) @@ -22623,18 +57875,17 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); } // build/faceFeatureExtractor/TinyFaceFeatureExtractor.js - const dom8 = __toModule(require_dom()); class TinyFaceFeatureExtractor extends NeuralNetwork { constructor() { super("TinyFaceFeatureExtractor"); } - forwardInput(input) { + forwardInput(input2) { const {params} = this; if (!params) { throw new Error("TinyFaceFeatureExtractor - load model before inference"); } return tidy(() => { - const batchTensor = input.toBatchTensor(112, true); + const batchTensor = input2.toBatchTensor(112, true); const meanRgb = [122.782, 117.001, 104.298]; const normalized = normalize(batchTensor, meanRgb).div(scalar(255)); let out = denseBlock3(normalized, params.dense0, true); @@ -22644,8 +57895,8 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); return out; }); } - async forward(input) { - return this.forwardInput(await dom8.toNetInput(input)); + async forward(input2) { + return this.forwardInput(await toNetInput(input2)); } getDefaultModelName() { return "face_feature_extractor_tiny_model"; @@ -22681,9 +57932,9 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); } // build/faceRecognitionNet/convLayer.js - function convLayer2(x, params, strides, withRelu, padding = "same") { + function convLayer2(x, params, strides, withRelu, padding2 = "same") { const {filters, bias} = params.conv; - let out = conv2d(x, filters, strides, padding); + let out = conv2d(x, filters, strides, padding2); out = add2(out, bias); out = scale(out, params.scale); return withRelu ? relu(out) : out; @@ -22865,7 +58116,7 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); let out = convDown(x, params.conv1); out = convNoRelu(out, params.conv2); let pooled = avgPool(x, 2, 2, "valid"); - const zeros9 = zeros(pooled.shape); + const zeros10 = zeros(pooled.shape); const isPad = pooled.shape[3] !== out.shape[3]; const isAdjustShape = pooled.shape[1] !== out.shape[1] || pooled.shape[2] !== out.shape[2]; if (isAdjustShape) { @@ -22878,25 +58129,24 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); const zerosH = zeros(padShapeY); out = concat([out, zerosH], 2); } - pooled = isPad ? concat([pooled, zeros9], 3) : pooled; + pooled = isPad ? concat([pooled, zeros10], 3) : pooled; out = add2(pooled, out); out = relu(out); return out; } // build/faceRecognitionNet/FaceRecognitionNet.js - const dom9 = __toModule(require_dom()); class FaceRecognitionNet extends NeuralNetwork { constructor() { super("FaceRecognitionNet"); } - forwardInput(input) { + forwardInput(input2) { const {params} = this; if (!params) { throw new Error("FaceRecognitionNet - load model before inference"); } return tidy(() => { - const batchTensor = input.toBatchTensor(150, true).toFloat(); + const batchTensor = input2.toBatchTensor(150, true).toFloat(); const meanRgb = [122.782, 117.001, 104.298]; const normalized = normalize(batchTensor, meanRgb).div(scalar(256)); let out = convDown(normalized, params.conv32_down); @@ -22920,11 +58170,11 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); return fullyConnected; }); } - async forward(input) { - return this.forwardInput(await dom9.toNetInput(input)); + async forward(input2) { + return this.forwardInput(await toNetInput(input2)); } - async computeFaceDescriptor(input) { - const netInput = await dom9.toNetInput(input); + async computeFaceDescriptor(input2) { + const netInput = await toNetInput(input2); const faceDescriptorTensors = tidy(() => unstack(this.forwardInput(netInput))); const faceDescriptorsForBatch = await Promise.all(faceDescriptorTensors.map((t) => t.data())); faceDescriptorTensors.forEach((t) => t.dispose()); @@ -22985,16 +58235,15 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); } // build/globalApi/extractFacesAndComputeResults.js - const dom10 = __toModule(require_dom()); - async function extractAllFacesAndComputeResults(parentResults, input, computeResults, extractedFaces, getRectForAlignment = ({alignedRect}) => alignedRect) { + async function extractAllFacesAndComputeResults(parentResults, input2, computeResults, extractedFaces, getRectForAlignment = ({alignedRect}) => alignedRect) { const faceBoxes = parentResults.map((parentResult) => isWithFaceLandmarks(parentResult) ? getRectForAlignment(parentResult) : parentResult.detection); - const faces = extractedFaces || (input instanceof Tensor ? await dom10.extractFaceTensors(input, faceBoxes) : await dom10.extractFaces(input, faceBoxes)); + const faces = extractedFaces || (input2 instanceof Tensor ? await extractFaceTensors(input2, faceBoxes) : await extractFaces(input2, faceBoxes)); const results = await computeResults(faces); faces.forEach((f) => f instanceof Tensor && f.dispose()); return results; } - async function extractSingleFaceAndComputeResult(parentResult, input, computeResult, extractedFaces, getRectForAlignment) { - return extractAllFacesAndComputeResults([parentResult], input, async (faces) => computeResult(faces[0]), extractedFaces, getRectForAlignment); + async function extractSingleFaceAndComputeResult(parentResult, input2, computeResult, extractedFaces, getRectForAlignment) { + return extractAllFacesAndComputeResults([parentResult], input2, async (faces) => computeResult(faces[0]), extractedFaces, getRectForAlignment); } // build/tinyYolov2/config.js @@ -23023,8 +58272,8 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); // build/tinyYolov2/leaky.js function leaky(x) { return tidy(() => { - const min5 = mul(x, scalar(0.10000000149011612)); - return add2(relu(sub(x, min5)), min5); + const min6 = mul(x, scalar(0.10000000149011612)); + return add2(relu(sub(x, min6)), min6); }); } @@ -23195,7 +58444,6 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); } // build/tinyYolov2/TinyYolov2Base.js - const dom11 = __toModule(require_dom()); class TinyYolov2Base extends NeuralNetwork { constructor(config2) { super("TinyYolov2"); @@ -23245,24 +58493,24 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); out = params.conv7 ? depthwiseSeparableConv3(out, params.conv7) : out; return convLayer(out, params.conv8, "valid", false); } - forwardInput(input, inputSize) { + forwardInput(input2, inputSize) { const {params} = this; if (!params) { throw new Error("TinyYolov2 - load model before inference"); } return tidy(() => { - let batchTensor = input.toBatchTensor(inputSize, false).toFloat(); + let batchTensor = input2.toBatchTensor(inputSize, false).toFloat(); batchTensor = this.config.meanRgb ? normalize(batchTensor, this.config.meanRgb) : batchTensor; batchTensor = batchTensor.div(scalar(256)); return this.config.withSeparableConvs ? this.runMobilenet(batchTensor, params) : this.runTinyYolov2(batchTensor, params); }); } - async forward(input, inputSize) { - return await this.forwardInput(await dom11.toNetInput(input), inputSize); + async forward(input2, inputSize) { + return await this.forwardInput(await toNetInput(input2), inputSize); } - async detect(input, forwardParams = {}) { + async detect(input2, forwardParams = {}) { const {inputSize, scoreThreshold} = new TinyYolov2Options(forwardParams); - const netInput = await dom11.toNetInput(input); + const netInput = await toNetInput(input2); const out = await this.forwardInput(netInput, inputSize); const out0 = tidy(() => unstack(out)[0].expandDims()); const inputDimensions = { @@ -23346,7 +58594,7 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); return Array(this.config.classes.length).fill(0).map((_, i) => classesData[row][col][anchor][i]).map((classScore, label) => ({ classScore, label - })).reduce((max7, curr) => max7.classScore > curr.classScore ? max7 : curr); + })).reduce((max8, curr) => max8.classScore > curr.classScore ? max8 : curr); } } TinyYolov2Base.DEFAULT_FILTER_SIZES = [ @@ -23389,8 +58637,8 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); get anchors() { return this.config.anchors; } - async locateFaces(input, forwardParams) { - const objectDetections = await this.detect(input, forwardParams); + async locateFaces(input2, forwardParams) { + const objectDetections = await this.detect(input2, forwardParams); return objectDetections.map((det) => new FaceDetection(det.score, det.relativeBox, {width: det.imageWidth, height: det.imageHeight})); } getDefaultModelName() { @@ -23418,7 +58666,7 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); new Point(9.041765, 10.66308) ]; const MEAN_RGB_SEPARABLE = [117.001, 114.697, 97.404]; - const DEFAULT_MODEL_NAME = "tiny_yolov2_model"; + const DEFAULT_MODEL_NAME2 = "tiny_yolov2_model"; const DEFAULT_MODEL_NAME_SEPARABLE_CONV = "tiny_yolov2_separable_conv_model"; // build/tinyYolov2/TinyYolov2.js @@ -23443,35 +58691,43 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); get anchors() { return this.config.anchors; } - async locateFaces(input, forwardParams) { - const objectDetections = await this.detect(input, forwardParams); + async locateFaces(input2, forwardParams) { + const objectDetections = await this.detect(input2, forwardParams); return objectDetections.map((det) => new FaceDetection(det.score, det.relativeBox, {width: det.imageWidth, height: det.imageHeight})); } getDefaultModelName() { - return this.withSeparableConvs ? DEFAULT_MODEL_NAME_SEPARABLE_CONV : DEFAULT_MODEL_NAME; + return this.withSeparableConvs ? DEFAULT_MODEL_NAME_SEPARABLE_CONV : DEFAULT_MODEL_NAME2; } extractParamsFromWeigthMap(weightMap) { return super.extractParamsFromWeigthMap(weightMap); } } + // build/tinyYolov2/types.js + + // build/tinyYolov2/index.js + function createTinyYolov2(weights, withSeparableConvs = true) { + const net = new TinyYolov2(withSeparableConvs); + net.extractWeights(weights); + return net; + } + // build/globalApi/nets.js - const tinyYolov2 = __toModule(require_tinyYolov2()); const nets = { tinyFaceDetector: new TinyFaceDetector(), - tinyYolov2: new tinyYolov2.TinyYolov2(), + tinyYolov2: new TinyYolov2(), faceLandmark68Net: new FaceLandmark68Net(), faceLandmark68TinyNet: new FaceLandmark68TinyNet(), faceRecognitionNet: new FaceRecognitionNet(), faceExpressionNet: new FaceExpressionNet(), ageGenderNet: new AgeGenderNet() }; - const tinyFaceDetector = (input, options) => nets.tinyFaceDetector.locateFaces(input, options); - const detectFaceLandmarks = (input) => nets.faceLandmark68Net.detectLandmarks(input); - const detectFaceLandmarksTiny = (input) => nets.faceLandmark68TinyNet.detectLandmarks(input); - const computeFaceDescriptor = (input) => nets.faceRecognitionNet.computeFaceDescriptor(input); - const recognizeFaceExpressions = (input) => nets.faceExpressionNet.predictExpressions(input); - const predictAgeAndGender = (input) => nets.ageGenderNet.predictAgeAndGender(input); + const tinyFaceDetector = (input2, options) => nets.tinyFaceDetector.locateFaces(input2, options); + const detectFaceLandmarks = (input2) => nets.faceLandmark68Net.detectLandmarks(input2); + const detectFaceLandmarksTiny = (input2) => nets.faceLandmark68TinyNet.detectLandmarks(input2); + const computeFaceDescriptor = (input2) => nets.faceRecognitionNet.computeFaceDescriptor(input2); + const recognizeFaceExpressions = (input2) => nets.faceExpressionNet.predictExpressions(input2); + const predictAgeAndGender = (input2) => nets.ageGenderNet.predictAgeAndGender(input2); const loadTinyFaceDetectorModel = (url) => nets.tinyFaceDetector.load(url); const loadTinyYolov2Model = (url) => nets.tinyYolov2.load(url); const loadFaceLandmarkModel = (url) => nets.faceLandmark68Net.load(url); @@ -23485,10 +58741,10 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); // build/globalApi/PredictFaceExpressionsTask.js class PredictFaceExpressionsTaskBase extends ComposableTask { - constructor(parentTask, input, extractedFaces) { + constructor(parentTask, input2, extractedFaces) { super(); this.parentTask = parentTask; - this.input = input; + this.input = input2; this.extractedFaces = extractedFaces; } } @@ -23534,10 +58790,10 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); // build/globalApi/PredictAgeAndGenderTask.js class PredictAgeAndGenderTaskBase extends ComposableTask { - constructor(parentTask, input, extractedFaces) { + constructor(parentTask, input2, extractedFaces) { super(); this.parentTask = parentTask; - this.input = input; + this.input = input2; this.extractedFaces = extractedFaces; } } @@ -23586,10 +58842,10 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); // build/globalApi/ComputeFaceDescriptorsTasks.js class ComputeFaceDescriptorsTaskBase extends ComposableTask { - constructor(parentTask, input) { + constructor(parentTask, input2) { super(); this.parentTask = parentTask; - this.input = input; + this.input = input2; } } class ComputeAllFaceDescriptorsTask extends ComputeFaceDescriptorsTaskBase { @@ -23623,8 +58879,7 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); } // build/tinyFaceDetector/TinyFaceDetectorOptions.js - const tinyYolov22 = __toModule(require_tinyYolov2()); - class TinyFaceDetectorOptions extends tinyYolov22.TinyYolov2Options { + class TinyFaceDetectorOptions extends TinyYolov2Options { constructor() { super(...arguments); this._name = "TinyFaceDetectorOptions"; @@ -23632,12 +58887,11 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); } // build/globalApi/DetectFaceLandmarksTasks.js - const dom12 = __toModule(require_dom()); class DetectFaceLandmarksTaskBase extends ComposableTask { - constructor(parentTask, input, useTinyLandmarkNet) { + constructor(parentTask, input2, useTinyLandmarkNet) { super(); this.parentTask = parentTask; - this.input = input; + this.input = input2; this.useTinyLandmarkNet = useTinyLandmarkNet; } get landmarkNet() { @@ -23648,7 +58902,7 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); async run() { const parentResults = await this.parentTask; const detections = parentResults.map((res) => res.detection); - const faces = this.input instanceof Tensor ? await dom12.extractFaceTensors(this.input, detections) : await dom12.extractFaces(this.input, detections); + const faces = this.input instanceof Tensor ? await extractFaceTensors(this.input, detections) : await extractFaces(this.input, detections); const faceLandmarksByFace = await Promise.all(faces.map((face) => this.landmarkNet.detectLandmarks(face))); faces.forEach((f) => f instanceof Tensor && f.dispose()); return parentResults.map((parentResult, i) => extendWithFaceLandmarks(parentResult, faceLandmarksByFace[i])); @@ -23670,7 +58924,7 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); return; } const {detection} = parentResult; - const faces = this.input instanceof Tensor ? await dom12.extractFaceTensors(this.input, [detection]) : await dom12.extractFaces(this.input, [detection]); + const faces = this.input instanceof Tensor ? await extractFaceTensors(this.input, [detection]) : await extractFaces(this.input, [detection]); const landmarks = await this.landmarkNet.detectLandmarks(faces[0]); faces.forEach((f) => f instanceof Tensor && f.dispose()); return extendWithFaceLandmarks(parentResult, landmarks); @@ -23688,20 +58942,20 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); // build/globalApi/DetectFacesTasks.js class DetectFacesTaskBase extends ComposableTask { - constructor(input, options = new TinyFaceDetectorOptions()) { + constructor(input2, options = new TinyFaceDetectorOptions()) { super(); - this.input = input; + this.input = input2; this.options = options; } } class DetectAllFacesTask extends DetectFacesTaskBase { async run() { - const {input, options} = this; - const faceDetectionFunction = options instanceof TinyFaceDetectorOptions ? (input2) => nets.tinyFaceDetector.locateFaces(input2, options) : null; + const {input: input2, options} = this; + const faceDetectionFunction = options instanceof TinyFaceDetectorOptions ? (input3) => nets.tinyFaceDetector.locateFaces(input3, options) : null; if (!faceDetectionFunction) { throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | MtcnnOptions | TinyYolov2Options"); } - return faceDetectionFunction(input); + return faceDetectionFunction(input2); } runAndExtendWithFaceDetections() { return new Promise(async (res) => { @@ -23748,17 +59002,18 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); } // build/globalApi/detectFaces.js - function detectSingleFace(input, options = new TinyFaceDetectorOptions()) { - return new DetectSingleFaceTask(input, options); + function detectSingleFace(input2, options = new TinyFaceDetectorOptions()) { + return new DetectSingleFaceTask(input2, options); } - function detectAllFaces(input, options = new TinyFaceDetectorOptions()) { - return new DetectAllFacesTask(input, options); + function detectAllFaces(input2, options = new TinyFaceDetectorOptions()) { + return new DetectAllFacesTask(input2, options); } // build/euclideanDistance.js function euclideanDistance(arr1, arr2) { - if (arr1.length !== arr2.length) + if (arr1.length !== arr2.length) { throw new Error("euclideanDistance: arr1.length !== arr2.length"); + } const desc1 = Array.from(arr1); const desc2 = Array.from(arr2); return Math.sqrt(desc1.map((val, i) => val - desc2[i]).reduce((res, diff) => res + Math.pow(diff, 2), 0)); @@ -23772,8 +59027,8 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); if (!inputArray.length) { throw new Error(`FaceRecognizer.constructor - expected atleast one input`); } - let count = 1; - const createUniqueLabel = () => `person ${count++}`; + let count2 = 1; + const createUniqueLabel = () => `person ${count2++}`; this._labeledDescriptors = inputArray.map((desc) => { if (desc instanceof LabeledFaceDescriptors) { return desc; @@ -23809,12 +59064,16 @@ Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`); labeledDescriptors: this.labeledDescriptors.map((ld) => ld.toJSON()) }; } - static fromJSON(json) { - const labeledDescriptors = json.labeledDescriptors.map((ld) => LabeledFaceDescriptors.fromJSON(ld)); - return new FaceMatcher(labeledDescriptors, json.distanceThreshold); + static fromJSON(json17) { + const labeledDescriptors = json17.labeledDescriptors.map((ld) => LabeledFaceDescriptors.fromJSON(ld)); + return new FaceMatcher(labeledDescriptors, json17.distanceThreshold); } } + // build/globalApi/types.js + + // build/globalApi/index.js + // build/tinyFaceDetector/index.js function createTinyFaceDetector(weights) { const net = new TinyFaceDetector(); diff --git a/dist/face-api.js.map b/dist/face-api.js.map index bdde4bc..1f40601 100644 --- a/dist/face-api.js.map +++ b/dist/face-api.js.map @@ -1,7 +1,7 @@ { "version": 3, - "sources": ["node_modules/seedrandom/lib/alea.js", "node_modules/seedrandom/lib/xor128.js", "node_modules/seedrandom/lib/xorwow.js", "node_modules/seedrandom/lib/xorshift7.js", "node_modules/seedrandom/lib/xor4096.js", "node_modules/seedrandom/lib/tychei.js", "disabled:crypto", "node_modules/seedrandom/seedrandom.js", "node_modules/seedrandom/index.js", "build/env/../../src/env/isNodejs.ts", "build/env/types.js", "build/env/../../src/env/index.ts", "build/dom/types.js", "build/dom/../../src/dom/index.ts", "build/tinyYolov2/types.js", "build/tinyYolov2/../../src/tinyYolov2/index.ts", "build/globalApi/types.js", "build/globalApi/../../src/globalApi/index.ts", "build/../src/index.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/environment.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/global_util.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/kernel_names.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/kernel_registry.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/util.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/profiler.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/tape.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/tensor_format.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/tensor.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/types.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/tensor_util.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/engine.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/device_util.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/flags.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/tensor_util_env.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/operation.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/abs.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/acos.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/acosh.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/add.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/add_n.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/axis_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reshape.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/transpose.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/all.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/any.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/arg_max.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/arg_min.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/asin.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/asinh.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/atan.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/atan2.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/atanh.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/cast.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/avg_pool.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/globals.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/avg_pool_3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/concat_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor_ops_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/concat.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/mat_mul.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/mul.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sigmoid.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/slice_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/slice.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tanh.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/basic_lstm_cell.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/batch_to_space_nd.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/batchnorm_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/batchnorm.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/batchnorm2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/batchnorm3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/batchnorm4d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/clone.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/broadcast_to.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/buffer.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/ceil.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/clip_by_value.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/complex.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/concat_1d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/concat_2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/concat_3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/concat_4d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv1d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv2d_backprop_input.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv2d_transpose.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv3d_backprop_input.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv3d_transpose.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/cos.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/cosh.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/cumsum.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/depth_to_space.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/depthwise_conv2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/diag.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/dilation2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/floorDiv.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/div.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/broadcast_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/equal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/where.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/zeros_like.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/div_no_nan.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/dot.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/elu.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/erf.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/exp.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/expand_dims.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/expm1.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tile.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/eye.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/fft.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/fill.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/floor.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reduce_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/segment_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/gather.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/greater.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/greater_equal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/ifft.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/imag.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/real.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reverse.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/scalar.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/irfft.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/is_finite.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/is_inf.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/is_nan.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/maximum.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/leaky_relu.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/less.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/less_equal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/linspace.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/local_response_normalization.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/log.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/log1p.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/gradients.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/neg.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/softplus.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/log_sigmoid.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/max.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sub.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sum.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/log_softmax.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/log_sum_exp.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/logical_and.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/logical_not.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/logical_or.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/logical_xor.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/max_pool.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/max_pool_3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/max_pool_with_argmax.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/zeros.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/ones.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/mean.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/min.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/minimum.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/mod.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/square.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/moments.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/multi_rnn_cell.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/multinomial.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/not_equal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/one_hot.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/ones_like.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/outer_product.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pad1d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pad2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pad3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pad4d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/space_to_batch_nd.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pool.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pow.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/prelu.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/print.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/prod.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/rand.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/test_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/rand_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/random_gamma.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/random_normal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/random_uniform.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor1d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/range.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reciprocal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/relu.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/relu6.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reverse_1d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reverse_2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reverse_3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reverse_4d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/split_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/split.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/rfft.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/round.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/rsqrt.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/selu.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/separable_conv2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/setdiff1d_async.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sign.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sin.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sinh.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/slice1d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/slice2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/slice3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/slice4d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/softmax.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sqrt.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/squared_difference.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/squeeze.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/stack.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/step.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/strided_slice.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tan.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor4d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor5d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor6d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/topk.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/truncated_normal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/unsorted_segment_sum.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/unstack.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/variable.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/where_impl.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/where_async.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/boolean_mask.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/compare.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/binary_ops.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/norm.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/moving_average.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/scatter_nd_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/scatter_nd.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sparse_to_dense_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sparse_to_dense.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/gather_nd.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/dropout_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/dropout.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/signal_ops_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/in_top_k.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv2d_backprop_filter.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/fused_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/fused_conv2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/depthwise_conv2d_native_backprop_filter.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/depthwise_conv2d_native_backprop_input.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/fused_depthwise_conv2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/fused_mat_mul.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/fused_ops.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/hamming_window.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/hann_window.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/frame.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/stft.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/crop_and_resize.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/flip_left_right.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/rotate_with_offset.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/nonmax_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/non_max_suppression.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/array_util.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/non_max_suppression_impl.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/non_max_suppression_async.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/non_max_suppression_with_score.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/non_max_suppression_with_score_async.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/non_max_suppression_padded.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/non_max_suppression_padded_async.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/resize_bilinear.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/resize_nearest_neighbor.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/band_part.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/gram_schmidt.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/qr.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/loss_ops_utils.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/compute_weighted_loss.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/absolute_difference.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/cosine_distance.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/hinge_loss.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/huber_loss.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/log_loss.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/mean_squared_error.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sigmoid_cross_entropy.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/softmax_cross_entropy.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/ops.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/base_side_effects.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/types.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/io_utils.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/router_registry.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/model_management.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/browser_files.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/progress.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/weights_loader.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/http.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/passthrough.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/io.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/confusion_matrix.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/math.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/browser.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/gather_nd_util.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/serialization.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/version.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/adadelta_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/adagrad_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/adam_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/adamax_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/sgd_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/momentum_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/rmsprop_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/optimizer_constructors.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/train.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/browser_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/rotate_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/array_ops_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/selu_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/erf_util.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/log.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/complex_util.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/backend_util.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/split_shared.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/tile_impl.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/topk_impl.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/kernel_impls.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/backend.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Abs_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Acos_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Acosh_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Add_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/AddN_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/ArgMax_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/ArgMin_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Asin_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Asinh_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Atan2_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Atan_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Atanh_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/avg_pool_3d_backprop.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/AvgPool3D_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/avg_pool_backprop.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/AvgPool_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/BatchMatMul_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/BatchToSpaceND_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/BroadcastTo_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Cast_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Ceil_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/ClipByValue_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Concat_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Conv2D_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Conv2DBackpropInput_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv3d_backprop_filter.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Conv3D_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Cos_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Cosh_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Cumsum_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/DepthwiseConv2dNative_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Dilation2D_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Div_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Elu_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Erf_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Exp_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Expm1_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Floor_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/FloorDiv_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/FusedBatchNorm_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/GatherV2_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/GreaterEqual_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Identity_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/IsFinite_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/IsInf_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/IsNan_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Log1p_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Log_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/LogSoftmax_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/local_response_normalization_backprop.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/LRN_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/min_max_grad_util.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Max_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Maximum_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/max_pool_3d_backprop.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/MaxPool3D_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/max_pool_backprop.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/MaxPool_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Min_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Minimum_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Mod_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Multiply_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Negate_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/OneHot_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/OnesLike_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/PadV2_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Pow_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Prelu_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Reciprocal_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Relu6_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Relu_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Reshape_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/ResizeBilinear_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/ResizeNearestNeighbor_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Reverse_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Round_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Rsqrt_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/SelectV2_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Selu_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sigmoid_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sign_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sin_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sinh_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Slice_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Softmax_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Softplus_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/SpaceToBatchND_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/SplitV_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sqrt_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Square_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/SquaredDifference_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Step_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sub_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sum_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Tan_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Tanh_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Tile_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Transpose_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Unpack_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/UnsortedSegmentSum_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/ZerosLike_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/register_all_gradients.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/index.ts", "build/draw/../../src/draw/drawContour.ts", "build/classes/../../src/classes/Dimensions.ts", "build/utils/../../src/utils/index.ts", "build/classes/../../src/classes/Point.ts", "build/classes/../../src/classes/Box.ts", "build/classes/../../src/classes/BoundingBox.ts", "build/classes/../../src/classes/ObjectDetection.ts", "build/classes/../../src/classes/FaceDetection.ts", "build/ops/../../src/ops/iou.ts", "build/ops/../../src/ops/minBbox.ts", "build/ops/../../src/ops/nonMaxSuppression.ts", "build/ops/../../src/ops/normalize.ts", "build/ops/../../src/ops/padToSquare.ts", "build/ops/../../src/ops/shuffleArray.ts", "build/ops/../../src/ops/index.ts", "build/classes/../../src/classes/Rect.ts", "build/classes/../../src/classes/FaceLandmarks.ts", "build/classes/../../src/classes/FaceLandmarks5.ts", "build/classes/../../src/classes/FaceLandmarks68.ts", "build/classes/../../src/classes/FaceMatch.ts", "build/classes/../../src/classes/LabeledBox.ts", "build/classes/../../src/classes/LabeledFaceDescriptors.ts", "build/classes/../../src/classes/PredictedBox.ts", "build/factories/../../src/factories/WithFaceDetection.ts", "build/env/../../src/env/createBrowserEnv.ts", "build/env/../../src/env/createFileSystem.ts", "build/env/../../src/env/createNodejsEnv.ts", "build/env/../../src/env/isBrowser.ts", "build/dom/../../src/dom/resolveInput.ts", "build/dom/../../src/dom/getContext2dOrThrow.ts", "build/draw/../../src/draw/DrawTextField.ts", "build/draw/../../src/draw/DrawBox.ts", "build/draw/../../src/draw/drawDetections.ts", "build/dom/../../src/dom/isMediaLoaded.ts", "build/dom/../../src/dom/awaitMediaLoaded.ts", "build/dom/../../src/dom/bufferToImage.ts", "build/dom/../../src/dom/getMediaDimensions.ts", "build/dom/../../src/dom/createCanvas.ts", "build/dom/../../src/dom/imageTensorToCanvas.ts", "build/dom/../../src/dom/isMediaElement.ts", "build/dom/../../src/dom/imageToSquare.ts", "build/dom/../../src/dom/NetInput.ts", "build/dom/../../src/dom/toNetInput.ts", "build/dom/../../src/dom/extractFaces.ts", "build/dom/../../src/dom/extractFaceTensors.ts", "build/dom/../../src/dom/fetchOrThrow.ts", "build/dom/../../src/dom/fetchImage.ts", "build/dom/../../src/dom/fetchJson.ts", "build/dom/../../src/dom/fetchNetWeights.ts", "build/common/../../src/common/getModelUris.ts", "build/dom/../../src/dom/loadWeightMap.ts", "build/dom/../../src/dom/matchDimensions.ts", "build/../src/NeuralNetwork.ts", "build/common/../../src/common/depthwiseSeparableConv.ts", "build/faceFeatureExtractor/../../src/faceFeatureExtractor/denseBlock.ts", "build/common/../../src/common/convLayer.ts", "build/common/../../src/common/disposeUnusedWeightTensors.ts", "build/common/../../src/common/extractConvParamsFactory.ts", "build/common/../../src/common/extractFCParamsFactory.ts", "build/common/../../src/common/types.ts", "build/common/../../src/common/extractSeparableConvParamsFactory.ts", "build/common/../../src/common/extractWeightEntryFactory.ts", "build/common/../../src/common/extractWeightsFactory.ts", "build/faceFeatureExtractor/../../src/faceFeatureExtractor/extractorsFactory.ts", "build/faceFeatureExtractor/../../src/faceFeatureExtractor/extractParams.ts", "build/common/../../src/common/loadConvParamsFactory.ts", "build/faceFeatureExtractor/../../src/faceFeatureExtractor/loadParamsFactory.ts", "build/faceFeatureExtractor/../../src/faceFeatureExtractor/extractParamsFromWeigthMap.ts", "build/faceFeatureExtractor/../../src/faceFeatureExtractor/FaceFeatureExtractor.ts", "build/common/../../src/common/fullyConnectedLayer.ts", "build/faceProcessor/../../src/faceProcessor/extractParams.ts", "build/faceProcessor/../../src/faceProcessor/extractParamsFromWeigthMap.ts", "build/faceProcessor/../../src/faceProcessor/util.ts", "build/faceProcessor/../../src/faceProcessor/FaceProcessor.ts", "build/faceExpressionNet/../../src/faceExpressionNet/FaceExpressions.ts", "build/faceExpressionNet/../../src/faceExpressionNet/FaceExpressionNet.ts", "build/factories/../../src/factories/WithFaceExpressions.ts", "build/draw/../../src/draw/drawFaceExpressions.ts", "build/factories/../../src/factories/WithFaceLandmarks.ts", "build/draw/../../src/draw/DrawFaceLandmarks.ts", "build/draw/../../src/draw/index.ts", "build/xception/../../src/xception/extractParams.ts", "build/xception/../../src/xception/extractParamsFromWeigthMap.ts", "build/xception/../../src/xception/TinyXception.ts", "build/ageGenderNet/../../src/ageGenderNet/extractParams.ts", "build/ageGenderNet/../../src/ageGenderNet/extractParamsFromWeigthMap.ts", "build/ageGenderNet/../../src/ageGenderNet/types.ts", "build/ageGenderNet/../../src/ageGenderNet/AgeGenderNet.ts", "build/faceLandmarkNet/../../src/faceLandmarkNet/FaceLandmark68NetBase.ts", "build/faceLandmarkNet/../../src/faceLandmarkNet/FaceLandmark68Net.ts", "build/faceFeatureExtractor/../../src/faceFeatureExtractor/extractParamsFromWeigthMapTiny.ts", "build/faceFeatureExtractor/../../src/faceFeatureExtractor/extractParamsTiny.ts", "build/faceFeatureExtractor/../../src/faceFeatureExtractor/TinyFaceFeatureExtractor.ts", "build/faceLandmarkNet/../../src/faceLandmarkNet/FaceLandmark68TinyNet.ts", "build/faceLandmarkNet/../../src/faceLandmarkNet/index.ts", "build/faceRecognitionNet/../../src/faceRecognitionNet/scaleLayer.ts", "build/faceRecognitionNet/../../src/faceRecognitionNet/convLayer.ts", "build/faceRecognitionNet/../../src/faceRecognitionNet/extractParams.ts", "build/faceRecognitionNet/../../src/faceRecognitionNet/extractParamsFromWeigthMap.ts", "build/faceRecognitionNet/../../src/faceRecognitionNet/residualLayer.ts", "build/faceRecognitionNet/../../src/faceRecognitionNet/FaceRecognitionNet.ts", "build/faceRecognitionNet/../../src/faceRecognitionNet/index.ts", "build/factories/../../src/factories/WithFaceDescriptor.ts", "build/factories/../../src/factories/WithAge.ts", "build/factories/../../src/factories/WithGender.ts", "build/globalApi/../../src/globalApi/ComposableTask.ts", "build/globalApi/../../src/globalApi/extractFacesAndComputeResults.ts", "build/tinyYolov2/../../src/tinyYolov2/config.ts", "build/tinyYolov2/../../src/tinyYolov2/leaky.ts", "build/tinyYolov2/../../src/tinyYolov2/convWithBatchNorm.ts", "build/tinyYolov2/../../src/tinyYolov2/depthwiseSeparableConv.ts", "build/tinyYolov2/../../src/tinyYolov2/extractParams.ts", "build/tinyYolov2/../../src/tinyYolov2/extractParamsFromWeigthMap.ts", "build/tinyYolov2/../../src/tinyYolov2/TinyYolov2Options.ts", "build/tinyYolov2/../../src/tinyYolov2/TinyYolov2Base.ts", "build/tinyFaceDetector/../../src/tinyFaceDetector/const.ts", "build/tinyFaceDetector/../../src/tinyFaceDetector/TinyFaceDetector.ts", "build/tinyYolov2/../../src/tinyYolov2/const.ts", "build/tinyYolov2/../../src/tinyYolov2/TinyYolov2.ts", "build/globalApi/../../src/globalApi/nets.ts", "build/globalApi/../../src/globalApi/PredictFaceExpressionsTask.ts", "build/globalApi/../../src/globalApi/PredictAgeAndGenderTask.ts", "build/globalApi/../../src/globalApi/ComputeFaceDescriptorsTasks.ts", "build/tinyFaceDetector/../../src/tinyFaceDetector/TinyFaceDetectorOptions.ts", "build/globalApi/../../src/globalApi/DetectFaceLandmarksTasks.ts", "build/globalApi/../../src/globalApi/DetectFacesTasks.ts", "build/globalApi/../../src/globalApi/detectFaces.ts", "build/../src/euclideanDistance.ts", "build/globalApi/../../src/globalApi/FaceMatcher.ts", "build/tinyFaceDetector/../../src/tinyFaceDetector/index.ts", "build/../src/resizeResults.ts"], - "sourcesContent": ["// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", null, "//# sourceMappingURL=types.js.map", null, "//# sourceMappingURL=types.js.map", null, "//# sourceMappingURL=types.js.map", null, "//# sourceMappingURL=types.js.map", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null], - "mappings": "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", + "sources": ["node_modules/seedrandom/lib/alea.js", "node_modules/seedrandom/lib/xor128.js", "node_modules/seedrandom/lib/xorwow.js", "node_modules/seedrandom/lib/xorshift7.js", "node_modules/seedrandom/lib/xor4096.js", "node_modules/seedrandom/lib/tychei.js", "disabled:crypto", "node_modules/seedrandom/seedrandom.js", "node_modules/seedrandom/index.js", "disabled:/home/vlado/dev/face-api/node_modules/string_decoder/lib/string_decoder.js", "disabled:fs", "build/env/../../src/env/isNodejs.ts", "build/../src/index.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/environment.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/global_util.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/kernel_names.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/kernel_registry.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/util.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/profiler.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/tape.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/tensor_format.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/tensor.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/types.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/tensor_util.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/engine.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/device_util.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/flags.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/tensor_util_env.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/operation.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/abs.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/acos.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/acosh.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/add.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/add_n.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/axis_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reshape.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/transpose.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/all.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/any.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/arg_max.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/arg_min.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/asin.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/asinh.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/atan.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/atan2.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/atanh.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/cast.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/avg_pool.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/globals.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/avg_pool_3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/concat_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor_ops_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/concat.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/mat_mul.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/mul.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sigmoid.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/slice_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/slice.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tanh.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/basic_lstm_cell.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/batch_to_space_nd.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/batchnorm_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/batchnorm.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/batchnorm2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/batchnorm3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/batchnorm4d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/clone.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/broadcast_to.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/buffer.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/ceil.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/clip_by_value.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/complex.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/concat_1d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/concat_2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/concat_3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/concat_4d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv1d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv2d_backprop_input.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv2d_transpose.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv3d_backprop_input.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv3d_transpose.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/cos.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/cosh.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/cumsum.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/depth_to_space.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/depthwise_conv2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/diag.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/dilation2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/floorDiv.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/div.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/broadcast_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/equal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/where.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/zeros_like.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/div_no_nan.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/dot.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/elu.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/erf.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/exp.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/expand_dims.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/expm1.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tile.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/eye.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/fft.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/fill.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/floor.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reduce_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/segment_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/gather.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/greater.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/greater_equal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/ifft.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/imag.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/real.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reverse.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/scalar.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/irfft.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/is_finite.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/is_inf.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/is_nan.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/maximum.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/leaky_relu.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/less.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/less_equal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/linspace.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/local_response_normalization.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/log.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/log1p.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/gradients.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/neg.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/softplus.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/log_sigmoid.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/max.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sub.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sum.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/log_softmax.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/log_sum_exp.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/logical_and.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/logical_not.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/logical_or.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/logical_xor.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/max_pool.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/max_pool_3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/max_pool_with_argmax.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/zeros.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/ones.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/mean.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/min.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/minimum.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/mod.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/square.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/moments.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/multi_rnn_cell.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/multinomial.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/not_equal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/one_hot.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/ones_like.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/outer_product.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pad1d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pad2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pad3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pad4d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/space_to_batch_nd.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pool.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pow.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/prelu.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/print.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/prod.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/rand.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/test_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/rand_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/random_gamma.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/random_normal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/random_uniform.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor1d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/range.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reciprocal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/relu.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/relu6.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reverse_1d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reverse_2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reverse_3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reverse_4d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/split_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/split.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/rfft.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/round.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/rsqrt.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/selu.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/separable_conv2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/setdiff1d_async.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sign.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sin.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sinh.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/slice1d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/slice2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/slice3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/slice4d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/softmax.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sqrt.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/squared_difference.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/squeeze.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/stack.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/step.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/strided_slice.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tan.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor4d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor5d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor6d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/topk.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/truncated_normal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/unsorted_segment_sum.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/unstack.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/variable.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/where_impl.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/where_async.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/boolean_mask.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/compare.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/binary_ops.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/norm.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/moving_average.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/scatter_nd_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/scatter_nd.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sparse_to_dense_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sparse_to_dense.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/gather_nd.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/dropout_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/dropout.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/signal_ops_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/in_top_k.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv2d_backprop_filter.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/fused_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/fused_conv2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/depthwise_conv2d_native_backprop_filter.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/depthwise_conv2d_native_backprop_input.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/fused_depthwise_conv2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/fused_mat_mul.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/fused_ops.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/hamming_window.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/hann_window.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/frame.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/stft.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/crop_and_resize.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/flip_left_right.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/rotate_with_offset.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/nonmax_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/non_max_suppression.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/array_util.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/non_max_suppression_impl.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/non_max_suppression_async.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/non_max_suppression_with_score.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/non_max_suppression_with_score_async.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/non_max_suppression_padded.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/non_max_suppression_padded_async.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/resize_bilinear.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/resize_nearest_neighbor.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/band_part.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/gram_schmidt.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/qr.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/loss_ops_utils.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/compute_weighted_loss.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/absolute_difference.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/cosine_distance.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/hinge_loss.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/huber_loss.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/log_loss.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/mean_squared_error.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sigmoid_cross_entropy.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/softmax_cross_entropy.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/ops.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/base_side_effects.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/types.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/io_utils.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/router_registry.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/model_management.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/browser_files.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/progress.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/weights_loader.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/http.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/passthrough.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/io.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/confusion_matrix.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/math.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/browser.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/gather_nd_util.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/serialization.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/version.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/adadelta_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/adagrad_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/adam_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/adamax_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/sgd_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/momentum_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/rmsprop_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/optimizer_constructors.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/train.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/browser_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/rotate_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/array_ops_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/selu_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/erf_util.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/log.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/complex_util.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/backend_util.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/split_shared.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/tile_impl.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/topk_impl.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/kernel_impls.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/backend.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Abs_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Acos_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Acosh_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Add_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/AddN_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/ArgMax_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/ArgMin_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Asin_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Asinh_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Atan2_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Atan_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Atanh_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/avg_pool_3d_backprop.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/AvgPool3D_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/avg_pool_backprop.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/AvgPool_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/BatchMatMul_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/BatchToSpaceND_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/BroadcastTo_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Cast_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Ceil_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/ClipByValue_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Concat_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Conv2D_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Conv2DBackpropInput_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv3d_backprop_filter.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Conv3D_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Cos_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Cosh_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Cumsum_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/DepthwiseConv2dNative_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Dilation2D_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Div_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Elu_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Erf_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Exp_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Expm1_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Floor_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/FloorDiv_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/FusedBatchNorm_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/GatherV2_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/GreaterEqual_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Identity_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/IsFinite_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/IsInf_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/IsNan_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Log1p_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Log_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/LogSoftmax_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/local_response_normalization_backprop.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/LRN_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/min_max_grad_util.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Max_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Maximum_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/max_pool_3d_backprop.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/MaxPool3D_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/max_pool_backprop.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/MaxPool_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Min_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Minimum_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Mod_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Multiply_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Negate_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/OneHot_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/OnesLike_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/PadV2_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Pow_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Prelu_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Reciprocal_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Relu6_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Relu_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Reshape_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/ResizeBilinear_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/ResizeNearestNeighbor_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Reverse_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Round_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Rsqrt_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/SelectV2_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Selu_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sigmoid_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sign_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sin_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sinh_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Slice_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Softmax_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Softplus_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/SpaceToBatchND_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/SplitV_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sqrt_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Square_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/SquaredDifference_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Step_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sub_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sum_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Tan_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Tanh_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Tile_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Transpose_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Unpack_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/UnsortedSegmentSum_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/ZerosLike_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/register_all_gradients.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/index.ts", "node_modules/@tensorflow/tfjs-layers/dist/backend/../../src/backend/common.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/errors.ts", "node_modules/@tensorflow/tfjs-layers/dist/utils/../../src/utils/generic_utils.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/constraints.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/exports_constraints.ts", "node_modules/@tensorflow/tfjs-layers/dist/keras_format/../../src/keras_format/common.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/common.ts", "node_modules/@tensorflow/tfjs-layers/dist/utils/../../src/utils/math_utils.ts", "node_modules/@tensorflow/tfjs-layers/dist/backend/../../src/backend/tfjs_backend.ts", "node_modules/@tensorflow/tfjs-layers/dist/keras_format/../../src/keras_format/initializer_config.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/initializers.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/exports_initializers.ts", "node_modules/@tensorflow/tfjs-layers/dist/backend/../../src/backend/state.ts", "node_modules/@tensorflow/tfjs-layers/dist/utils/../../src/utils/types_utils.ts", "node_modules/@tensorflow/tfjs-layers/dist/utils/../../src/utils/variable_utils.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/variables.ts", "node_modules/@tensorflow/tfjs-layers/dist/engine/../../src/engine/topology.ts", "node_modules/@tensorflow/tfjs-layers/dist/engine/../../src/engine/input_layer.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/logs.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/base_callbacks.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/serialization.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/losses.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/metrics.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/optimizers.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/user_defined_metadata.ts", "node_modules/@tensorflow/tfjs-layers/dist/utils/../../src/utils/layer_utils.ts", "node_modules/@tensorflow/tfjs-layers/dist/utils/../../src/utils/serialization_utils.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/version.ts", "node_modules/@tensorflow/tfjs-layers/dist/engine/../../src/engine/executor.ts", "node_modules/@tensorflow/tfjs-layers/dist/engine/../../src/engine/container.ts", "node_modules/@tensorflow/tfjs-layers/dist/engine/../../src/engine/training_utils.ts", "node_modules/@tensorflow/tfjs-layers/dist/engine/../../src/engine/training_dataset.ts", "node_modules/@tensorflow/tfjs-layers/dist/engine/../../src/engine/training_tensors.ts", "node_modules/@tensorflow/tfjs-layers/dist/engine/../../src/engine/training.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/models.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/exports.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/activations.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/regularizers.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/advanced_activations.ts", "node_modules/@tensorflow/tfjs-layers/dist/utils/../../src/utils/conv_utils.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/convolutional.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/convolutional_depthwise.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/core.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/embeddings.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/merge.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/noise.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/normalization.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/padding.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/pooling.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/recurrent.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/wrappers.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/exports_layers.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/exports_metrics.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/exports_models.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/exports_regularizers.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/callbacks.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/index.ts", "node_modules/@tensorflow/tfjs-converter/dist/data/../../src/data/compiled_api.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/custom_op/../../../src/operations/custom_op/register.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/utils.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/arithmetic.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/basic_math.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/control.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/convolution.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/creation.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/dynamic.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/evaluation.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/graph.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/image.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/logical.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/matrices.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/normalization.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/reduction.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/slice_join.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/spectral.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/transformation.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/../../src/operations/operation_mapper.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/custom_op/../../../src/operations/custom_op/node_value_impl.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/arithmetic_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/basic_math_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/executor/../../src/executor/tensor_utils.ts", "node_modules/@tensorflow/tfjs-converter/dist/executor/../../src/executor/tensor_array.ts", "node_modules/@tensorflow/tfjs-converter/dist/executor/../../src/executor/tensor_list.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/control_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/convolution_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/creation_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/dynamic_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/evaluation_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/graph_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/image_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/logical_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/matrices_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/normalization_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/reduction_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/slice_join_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/spectral_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/transformation_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/../../src/operations/operation_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/executor/../../src/executor/execution_context.ts", "node_modules/@tensorflow/tfjs-converter/dist/executor/../../src/executor/model_analysis.ts", "node_modules/@tensorflow/tfjs-converter/dist/executor/../../src/executor/graph_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/executor/../../src/executor/graph_model.ts", "node_modules/@tensorflow/tfjs-converter/dist/../src/version.ts", "node_modules/@tensorflow/tfjs-converter/dist/../src/index.ts", "node_modules/@tensorflow/tfjs-data/dist/util/../../src/util/deep_map.ts", "node_modules/@tensorflow/tfjs-data/dist/util/../../src/util/deep_clone.ts", "node_modules/@tensorflow/tfjs-data/dist/util/../../src/util/ring_buffer.ts", "node_modules/@tensorflow/tfjs-data/dist/util/../../src/util/growing_ring_buffer.ts", "node_modules/@tensorflow/tfjs-data/dist/iterators/../../src/iterators/lazy_iterator.ts", "node_modules/@tensorflow/tfjs-data/dist/../src/dataset.ts", "node_modules/@tensorflow/tfjs-data/dist/datasets/../../src/datasets/text_line_dataset.ts", "node_modules/@tensorflow/tfjs-data/dist/datasets/../../src/datasets/csv_dataset.ts", "node_modules/@tensorflow/tfjs-data/dist/iterators/../../src/iterators/microphone_iterator.ts", "node_modules/@tensorflow/tfjs-data/dist/iterators/../../src/iterators/webcam_iterator.ts", "node_modules/@tensorflow/tfjs-data/dist/../src/datasource.ts", "node_modules/@tensorflow/tfjs-data/dist/iterators/../../src/iterators/string_iterator.ts", "node_modules/@tensorflow/tfjs-data/dist/iterators/../../src/iterators/byte_chunk_iterator.ts", "node_modules/@tensorflow/tfjs-data/dist/iterators/../../src/iterators/file_chunk_iterator.ts", "node_modules/@tensorflow/tfjs-data/dist/iterators/../../src/iterators/url_chunk_iterator.ts", "node_modules/@tensorflow/tfjs-data/dist/util/../../src/util/source_util.ts", "node_modules/@tensorflow/tfjs-data/dist/sources/../../src/sources/file_data_source.ts", "node_modules/@tensorflow/tfjs-data/dist/sources/../../src/sources/url_data_source.ts", "node_modules/@tensorflow/tfjs-data/dist/../src/readers.ts", "node_modules/@tensorflow/tfjs-data/dist/../src/version.ts", "node_modules/@tensorflow/tfjs-data/dist/../src/index.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/../src/cpu_util.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/../../src/utils/pool_utils.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/../src/backend_cpu.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Max_impl.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Transpose_impl.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/../src/shared.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/../src/version.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/../src/base.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Dilation2D.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Dilation2DBackpropFilter.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Dilation2DBackpropInput.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/../../src/utils/kernel_utils.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Div_impl.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Div.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/FlipLeftRight.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Max.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/MaxPoolWithArgmax_impl.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/MaxPoolWithArgmax.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/NonMaxSuppressionV4.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/NonMaxSuppressionV5.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/RotateWithOffset.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Square.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/SquaredDifference.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Transpose.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/../src/register_all_kernels.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/../src/index.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/canvas_util.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/tex_util.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/webgl_util.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/flags_webgl.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/addn_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/addn_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/argminmax_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/packing_util.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/glsl_version.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/shader_compiler_util.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/shader_compiler.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/argminmax_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/avg_pool_backprop_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/batchnorm_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/batchnorm_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/binaryop_complex_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/binaryop_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/binaryop_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/clip_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/clip_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/complex_abs_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/concat_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/concat_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/conv_backprop_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/conv_backprop_gpu_depthwise.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/conv_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/conv_gpu_depthwise.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/conv_packed_gpu_depthwise.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/crop_and_resize_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/cumsum_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/decode_matrix_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/decode_matrix_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/depth_to_space_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/diag_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/encode_float_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/encode_float_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/encode_matrix_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/encode_matrix_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/fft_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/fill_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/gather_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/gather_nd_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/gpgpu_util.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/gpgpu_context.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/gpgpu_math.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/im2col_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/lrn_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/lrn_grad_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/lrn_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/max_pool_backprop_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/mulmat_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/multinomial_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/onehot_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/pack_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/pad_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/pad_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/pool_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/reduce_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/reshape_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/resize_bilinear_backprop_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/resize_bilinear_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/resize_bilinear_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/resize_nearest_neighbor_backprop_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/resize_nearest_neighbor_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/reverse_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/reverse_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/scatter_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/segment_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/select_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/slice_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/slice_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/strided_slice_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/texture_manager.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/tile_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/unaryop_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/unaryop_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/unpack_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/backend_webgl.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/version.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/webgl.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/base.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Div_impl.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Div.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/flip_left_right_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/FlipLeftRight.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FromPixels_utils/../../../src/kernels/FromPixels_utils/from_pixels_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FromPixels_utils/../../../src/kernels/FromPixels_utils/from_pixels_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/FromPixels.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/../../src/kernel_utils/shared.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/../../src/kernel_utils/reduce.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/../../src/kernel_utils/reshape.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Max_impl.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/transpose_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/transpose_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Transpose_impl.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Max.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/MaxPoolWithArgmax_impl.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/MaxPoolWithArgmax.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/NonMaxSuppressionV3.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/NonMaxSuppressionV4.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/NonMaxSuppressionV5.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/rotate_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/RotateWithOffset.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Square.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/SquaredDifference.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Transpose.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/register_all_kernels.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/index.ts", "node_modules/@tensorflow/tfjs/dist/../src/version.ts", "node_modules/@tensorflow/tfjs/dist/../src/index.ts", "build/draw/../../src/draw/drawContour.ts", "build/classes/../../src/classes/Dimensions.ts", "build/utils/../../src/utils/index.ts", "build/classes/../../src/classes/Point.ts", "build/classes/../../src/classes/Box.ts", "build/classes/../../src/classes/BoundingBox.ts", "build/classes/../../src/classes/ObjectDetection.ts", "build/classes/../../src/classes/FaceDetection.ts", "build/ops/../../src/ops/iou.ts", "build/ops/../../src/ops/minBbox.ts", "build/ops/../../src/ops/nonMaxSuppression.ts", "build/ops/../../src/ops/normalize.ts", "build/ops/../../src/ops/padToSquare.ts", "build/ops/../../src/ops/shuffleArray.ts", "build/ops/../../src/ops/index.ts", "build/classes/../../src/classes/Rect.ts", "build/classes/../../src/classes/FaceLandmarks.ts", "build/classes/../../src/classes/FaceLandmarks5.ts", "build/classes/../../src/classes/FaceLandmarks68.ts", "build/classes/../../src/classes/FaceMatch.ts", "build/classes/../../src/classes/LabeledBox.ts", "build/classes/../../src/classes/LabeledFaceDescriptors.ts", "build/classes/../../src/classes/PredictedBox.ts", "build/factories/../../src/factories/WithFaceDetection.ts", "build/env/../../src/env/createBrowserEnv.ts", "build/env/../../src/env/createFileSystem.ts", "build/env/../../src/env/createNodejsEnv.ts", "build/env/../../src/env/isBrowser.ts", "build/env/../../src/env/index.ts", "build/dom/../../src/dom/resolveInput.ts", "build/dom/../../src/dom/getContext2dOrThrow.ts", "build/draw/../../src/draw/DrawTextField.ts", "build/draw/../../src/draw/DrawBox.ts", "build/draw/../../src/draw/drawDetections.ts", "build/dom/../../src/dom/isMediaLoaded.ts", "build/dom/../../src/dom/awaitMediaLoaded.ts", "build/dom/../../src/dom/bufferToImage.ts", "build/dom/../../src/dom/getMediaDimensions.ts", "build/dom/../../src/dom/createCanvas.ts", "build/dom/../../src/dom/imageTensorToCanvas.ts", "build/dom/../../src/dom/isMediaElement.ts", "build/dom/../../src/dom/imageToSquare.ts", "build/dom/../../src/dom/NetInput.ts", "build/dom/../../src/dom/toNetInput.ts", "build/dom/../../src/dom/extractFaces.ts", "build/dom/../../src/dom/extractFaceTensors.ts", "build/dom/../../src/dom/fetchOrThrow.ts", "build/dom/../../src/dom/fetchImage.ts", "build/dom/../../src/dom/fetchJson.ts", "build/dom/../../src/dom/fetchNetWeights.ts", "build/common/../../src/common/getModelUris.ts", "build/dom/../../src/dom/loadWeightMap.ts", "build/dom/../../src/dom/matchDimensions.ts", "build/../src/NeuralNetwork.ts", "build/common/../../src/common/depthwiseSeparableConv.ts", "build/faceFeatureExtractor/../../src/faceFeatureExtractor/denseBlock.ts", "build/common/../../src/common/convLayer.ts", "build/common/../../src/common/disposeUnusedWeightTensors.ts", "build/common/../../src/common/extractConvParamsFactory.ts", "build/common/../../src/common/extractFCParamsFactory.ts", "build/common/../../src/common/types.ts", "build/common/../../src/common/extractSeparableConvParamsFactory.ts", "build/common/../../src/common/extractWeightEntryFactory.ts", "build/common/../../src/common/extractWeightsFactory.ts", "build/faceFeatureExtractor/../../src/faceFeatureExtractor/extractorsFactory.ts", "build/faceFeatureExtractor/../../src/faceFeatureExtractor/extractParams.ts", "build/common/../../src/common/loadConvParamsFactory.ts", "build/faceFeatureExtractor/../../src/faceFeatureExtractor/loadParamsFactory.ts", "build/faceFeatureExtractor/../../src/faceFeatureExtractor/extractParamsFromWeigthMap.ts", "build/faceFeatureExtractor/../../src/faceFeatureExtractor/FaceFeatureExtractor.ts", "build/common/../../src/common/fullyConnectedLayer.ts", "build/faceProcessor/../../src/faceProcessor/extractParams.ts", "build/faceProcessor/../../src/faceProcessor/extractParamsFromWeigthMap.ts", "build/faceProcessor/../../src/faceProcessor/util.ts", "build/faceProcessor/../../src/faceProcessor/FaceProcessor.ts", "build/faceExpressionNet/../../src/faceExpressionNet/FaceExpressions.ts", "build/faceExpressionNet/../../src/faceExpressionNet/FaceExpressionNet.ts", "build/factories/../../src/factories/WithFaceExpressions.ts", "build/draw/../../src/draw/drawFaceExpressions.ts", "build/factories/../../src/factories/WithFaceLandmarks.ts", "build/draw/../../src/draw/DrawFaceLandmarks.ts", "build/draw/../../src/draw/index.ts", "build/xception/../../src/xception/extractParams.ts", "build/xception/../../src/xception/extractParamsFromWeigthMap.ts", "build/xception/../../src/xception/TinyXception.ts", "build/ageGenderNet/../../src/ageGenderNet/extractParams.ts", "build/ageGenderNet/../../src/ageGenderNet/extractParamsFromWeigthMap.ts", "build/ageGenderNet/../../src/ageGenderNet/types.ts", "build/ageGenderNet/../../src/ageGenderNet/AgeGenderNet.ts", "build/faceLandmarkNet/../../src/faceLandmarkNet/FaceLandmark68NetBase.ts", "build/faceLandmarkNet/../../src/faceLandmarkNet/FaceLandmark68Net.ts", "build/faceFeatureExtractor/../../src/faceFeatureExtractor/extractParamsFromWeigthMapTiny.ts", "build/faceFeatureExtractor/../../src/faceFeatureExtractor/extractParamsTiny.ts", "build/faceFeatureExtractor/../../src/faceFeatureExtractor/TinyFaceFeatureExtractor.ts", "build/faceLandmarkNet/../../src/faceLandmarkNet/FaceLandmark68TinyNet.ts", "build/faceLandmarkNet/../../src/faceLandmarkNet/index.ts", "build/faceRecognitionNet/../../src/faceRecognitionNet/scaleLayer.ts", "build/faceRecognitionNet/../../src/faceRecognitionNet/convLayer.ts", "build/faceRecognitionNet/../../src/faceRecognitionNet/extractParams.ts", "build/faceRecognitionNet/../../src/faceRecognitionNet/extractParamsFromWeigthMap.ts", "build/faceRecognitionNet/../../src/faceRecognitionNet/residualLayer.ts", "build/faceRecognitionNet/../../src/faceRecognitionNet/FaceRecognitionNet.ts", "build/faceRecognitionNet/../../src/faceRecognitionNet/index.ts", "build/factories/../../src/factories/WithFaceDescriptor.ts", "build/factories/../../src/factories/WithAge.ts", "build/factories/../../src/factories/WithGender.ts", "build/globalApi/../../src/globalApi/ComposableTask.ts", "build/globalApi/../../src/globalApi/extractFacesAndComputeResults.ts", "build/tinyYolov2/../../src/tinyYolov2/config.ts", "build/tinyYolov2/../../src/tinyYolov2/leaky.ts", "build/tinyYolov2/../../src/tinyYolov2/convWithBatchNorm.ts", "build/tinyYolov2/../../src/tinyYolov2/depthwiseSeparableConv.ts", "build/tinyYolov2/../../src/tinyYolov2/extractParams.ts", "build/tinyYolov2/../../src/tinyYolov2/extractParamsFromWeigthMap.ts", "build/tinyYolov2/../../src/tinyYolov2/TinyYolov2Options.ts", "build/tinyYolov2/../../src/tinyYolov2/TinyYolov2Base.ts", "build/tinyFaceDetector/../../src/tinyFaceDetector/const.ts", "build/tinyFaceDetector/../../src/tinyFaceDetector/TinyFaceDetector.ts", "build/tinyYolov2/../../src/tinyYolov2/const.ts", "build/tinyYolov2/../../src/tinyYolov2/TinyYolov2.ts", "build/tinyYolov2/../../src/tinyYolov2/index.ts", "build/globalApi/../../src/globalApi/nets.ts", "build/globalApi/../../src/globalApi/PredictFaceExpressionsTask.ts", "build/globalApi/../../src/globalApi/PredictAgeAndGenderTask.ts", "build/globalApi/../../src/globalApi/ComputeFaceDescriptorsTasks.ts", "build/tinyFaceDetector/../../src/tinyFaceDetector/TinyFaceDetectorOptions.ts", "build/globalApi/../../src/globalApi/DetectFaceLandmarksTasks.ts", "build/globalApi/../../src/globalApi/DetectFacesTasks.ts", "build/globalApi/../../src/globalApi/detectFaces.ts", "build/../src/euclideanDistance.ts", "build/globalApi/../../src/globalApi/FaceMatcher.ts", "build/tinyFaceDetector/../../src/tinyFaceDetector/index.ts", "build/../src/resizeResults.ts"], + "sourcesContent": ["// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null], + "mappings": "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", "names": [] } diff --git a/dist/face-api.min.js b/dist/face-api.min.js index d7904cb..fa0d5e7 100644 --- a/dist/face-api.min.js +++ b/dist/face-api.min.js @@ -1,20 +1,3812 @@ -var faceapi=(()=>{var Fs=Object.defineProperty,$b=Object.prototype.hasOwnProperty,ke=(e,t)=>()=>(t||(t={exports:{}},e(t.exports,t)),t.exports),uu=e=>Fs(e,"__esModule",{value:!0}),me=(e,t)=>{uu(e);for(var n in t)Fs(e,n,{get:t[n],enumerable:!0})},T=(e,t)=>{if(uu(e),typeof t=="object"||typeof t=="function")for(let n in t)!$b.call(e,n)&&n!=="default"&&Fs(e,n,{get:()=>t[n],enumerable:!0});return e},ee=e=>e&&e.__esModule?e:T(Fs({},"default",{value:e,enumerable:!0}),e);var mu=ke((du,Ka)=>{(function(e,t,n){function r(s){var c=this,p=a();c.next=function(){var l=2091639*c.s0+c.c*23283064365386963e-26;return c.s0=c.s1,c.s1=c.s2,c.s2=l-(c.c=l|0)},c.c=1,c.s0=p(" "),c.s1=p(" "),c.s2=p(" "),c.s0-=p(s),c.s0<0&&(c.s0+=1),c.s1-=p(s),c.s1<0&&(c.s1+=1),c.s2-=p(s),c.s2<0&&(c.s2+=1),p=null}function o(s,c){return c.c=s.c,c.s0=s.s0,c.s1=s.s1,c.s2=s.s2,c}function i(s,c){var p=new r(s),l=c&&c.state,h=p.next;return h.int32=function(){return p.next()*4294967296|0},h.double=function(){return h()+(h()*2097152|0)*11102230246251565e-32},h.quick=h,l&&(typeof l=="object"&&o(l,p),h.state=function(){return o(p,{})}),h}function a(){var s=4022871197,c=function(p){p=p.toString();for(var l=0;l>>0,h-=s,h*=s,s=h>>>0,h-=s,s+=h*4294967296}return(s>>>0)*23283064365386963e-26};return c}t&&t.exports?t.exports=i:n&&n.amd?n(function(){return i}):this.alea=i})(du,typeof Ka=="object"&&Ka,typeof define=="function"&&define)});var gu=ke((fu,Ja)=>{(function(e,t,n){function r(a){var s=this,c="";s.x=0,s.y=0,s.z=0,s.w=0,s.next=function(){var l=s.x^s.x<<11;return s.x=s.y,s.y=s.z,s.z=s.w,s.w^=s.w>>>19^l^l>>>8},a===(a|0)?s.x=a:c+=a;for(var p=0;p>>0)/4294967296};return l.double=function(){do var h=c.next()>>>11,m=(c.next()>>>0)/4294967296,b=(h+m)/(1<<21);while(b===0);return b},l.int32=c.next,l.quick=l,p&&(typeof p=="object"&&o(p,c),l.state=function(){return o(c,{})}),l}t&&t.exports?t.exports=i:n&&n.amd?n(function(){return i}):this.xor128=i})(fu,typeof Ja=="object"&&Ja,typeof define=="function"&&define)});var wu=ke((bu,Xa)=>{(function(e,t,n){function r(a){var s=this,c="";s.next=function(){var l=s.x^s.x>>>2;return s.x=s.y,s.y=s.z,s.z=s.w,s.w=s.v,(s.d=s.d+362437|0)+(s.v=s.v^s.v<<4^(l^l<<1))|0},s.x=0,s.y=0,s.z=0,s.w=0,s.v=0,a===(a|0)?s.x=a:c+=a;for(var p=0;p>>4),s.next()}function o(a,s){return s.x=a.x,s.y=a.y,s.z=a.z,s.w=a.w,s.v=a.v,s.d=a.d,s}function i(a,s){var c=new r(a),p=s&&s.state,l=function(){return(c.next()>>>0)/4294967296};return l.double=function(){do var h=c.next()>>>11,m=(c.next()>>>0)/4294967296,b=(h+m)/(1<<21);while(b===0);return b},l.int32=c.next,l.quick=l,p&&(typeof p=="object"&&o(p,c),l.state=function(){return o(c,{})}),l}t&&t.exports?t.exports=i:n&&n.amd?n(function(){return i}):this.xorwow=i})(bu,typeof Xa=="object"&&Xa,typeof define=="function"&&define)});var xu=ke((yu,Za)=>{(function(e,t,n){function r(a){var s=this;s.next=function(){var p=s.x,l=s.i,h,m,b;return h=p[l],h^=h>>>7,m=h^h<<24,h=p[l+1&7],m^=h^h>>>10,h=p[l+3&7],m^=h^h>>>3,h=p[l+4&7],m^=h^h<<7,h=p[l+7&7],h=h^h<<13,m^=h^h<<9,p[l]=m,s.i=l+1&7,m};function c(p,l){var h,m,b=[];if(l===(l|0))m=b[0]=l;else for(l=""+l,h=0;h0;--h)p.next()}c(s,a)}function o(a,s){return s.x=a.x.slice(),s.i=a.i,s}function i(a,s){a==null&&(a=+new Date());var c=new r(a),p=s&&s.state,l=function(){return(c.next()>>>0)/4294967296};return l.double=function(){do var h=c.next()>>>11,m=(c.next()>>>0)/4294967296,b=(h+m)/(1<<21);while(b===0);return b},l.int32=c.next,l.quick=l,p&&(p.x&&o(p,c),l.state=function(){return o(c,{})}),l}t&&t.exports?t.exports=i:n&&n.amd?n(function(){return i}):this.xorshift7=i})(yu,typeof Za=="object"&&Za,typeof define=="function"&&define)});var Su=ke((Lu,Qa)=>{(function(e,t,n){function r(a){var s=this;s.next=function(){var p=s.w,l=s.X,h=s.i,m,b;return s.w=p=p+1640531527|0,b=l[h+34&127],m=l[h=h+1&127],b^=b<<13,m^=m<<17,b^=b>>>15,m^=m>>>12,b=l[h]=b^m,s.i=h,b+(p^p>>>16)|0};function c(p,l){var h,m,b,y,w,L=[],v=128;for(l===(l|0)?(m=l,l=null):(l=l+"\0",m=0,v=Math.max(v,l.length)),b=0,y=-32;y>>15,m^=m<<4,m^=m>>>13,y>=0&&(w=w+1640531527|0,h=L[y&127]^=m+w,b=h==0?b+1:0);for(b>=128&&(L[(l&&l.length||0)&127]=-1),b=127,y=4*128;y>0;--y)m=L[b+34&127],h=L[b=b+1&127],m^=m<<13,h^=h<<17,m^=m>>>15,h^=h>>>12,L[b]=m^h;p.w=w,p.X=L,p.i=b}c(s,a)}function o(a,s){return s.i=a.i,s.w=a.w,s.X=a.X.slice(),s}function i(a,s){a==null&&(a=+new Date());var c=new r(a),p=s&&s.state,l=function(){return(c.next()>>>0)/4294967296};return l.double=function(){do var h=c.next()>>>11,m=(c.next()>>>0)/4294967296,b=(h+m)/(1<<21);while(b===0);return b},l.int32=c.next,l.quick=l,p&&(p.X&&o(p,c),l.state=function(){return o(c,{})}),l}t&&t.exports?t.exports=i:n&&n.amd?n(function(){return i}):this.xor4096=i})(Lu,typeof Qa=="object"&&Qa,typeof define=="function"&&define)});var Iu=ke((vu,ec)=>{(function(e,t,n){function r(a){var s=this,c="";s.next=function(){var l=s.b,h=s.c,m=s.d,b=s.a;return l=l<<25^l>>>7^h,h=h-m|0,m=m<<24^m>>>8^b,b=b-l|0,s.b=l=l<<20^l>>>12^h,s.c=h=h-m|0,s.d=m<<16^h>>>16^b,s.a=b-l|0},s.a=0,s.b=0,s.c=2654435769|0,s.d=1367130551,a===Math.floor(a)?(s.a=a/4294967296|0,s.b=a|0):c+=a;for(var p=0;p>>0)/4294967296};return l.double=function(){do var h=c.next()>>>11,m=(c.next()>>>0)/4294967296,b=(h+m)/(1<<21);while(b===0);return b},l.int32=c.next,l.quick=l,p&&(typeof p=="object"&&o(p,c),l.state=function(){return o(c,{})}),l}t&&t.exports?t.exports=i:n&&n.amd?n(function(){return i}):this.tychei=i})(vu,typeof ec=="object"&&ec,typeof define=="function"&&define)});var Tu=ke(()=>{});var Au=ke((qT,Ms)=>{(function(e,t){var n=this,r=256,o=6,i=52,a="random",s=t.pow(r,o),c=t.pow(2,i),p=c*2,l=r-1,h;function m(R,N,O){var M=[];N=N==!0?{entropy:!0}:N||{};var D=L(w(N.entropy?[R,A(e)]:R==null?v():R,3),M),G=new b(M),$=function(){for(var j=G.g(o),oe=s,ie=0;j=p;)j/=2,oe/=2,ie>>>=1;return(j+ie)/oe};return $.int32=function(){return G.g(4)|0},$.quick=function(){return G.g(4)/4294967296},$.double=$,L(A(G.S),e),(N.pass||O||function(j,oe,ie,ue){return ue&&(ue.S&&y(ue,G),j.state=function(){return y(G,{})}),ie?(t[a]=j,oe):j})($,D,"global"in N?N.global:this==t,N.state)}t["seed"+a]=m;function b(R){var N,O=R.length,M=this,D=0,G=M.i=M.j=0,$=M.S=[];for(O||(R=[O++]);D{var Gb=mu(),jb=gu(),Pb=wu(),qb=xu(),Hb=Su(),zb=Iu(),bn=Au();bn.alea=Gb;bn.xor128=jb;bn.xorwow=Pb;bn.xorshift7=qb;bn.xor4096=Hb;bn.tychei=zb;Nu.exports=bn});var Eu=ke((Yb,Cu)=>{me(Yb,{isNodejs:()=>Vb});function Vb(){return typeof global=="object"&&!0&&typeof Cu!="undefined"&&typeof process!="undefined"&&!!process.version}});var Ou=ke(()=>{});var qe=ke(Kb=>{me(Kb,{env:()=>Zb});const oc=ee(Eu());T(Kb,ee(Ou()));let _e;function Jb(){if(!_e)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return _e}function ic(e){_e=e}function sc(){if(rc())return ic(tc());if(oc.isNodejs())return ic(nc())}function Xb(e){if(_e||sc(),!_e)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");const{Canvas:t=_e.Canvas,Image:n=_e.Image}=e;_e.Canvas=t,_e.Image=n,_e.createCanvasElement=e.createCanvasElement||(()=>new t()),_e.createImageElement=e.createImageElement||(()=>new n()),_e.ImageData=e.ImageData||_e.ImageData,_e.Video=e.Video||_e.Video,_e.fetch=e.fetch||_e.fetch,_e.readFile=e.readFile||_e.readFile}const Zb={getEnv:Jb,setEnv:ic,initialize:sc,createBrowserEnv:tc,createFileSystem:Us,createNodejsEnv:nc,monkeyPatch:Xb,isBrowser:rc,isNodejs:oc.isNodejs};sc()});var ku=ke(()=>{});var ot=ke(Qb=>{me(Qb,{NetInput:()=>Bs,awaitMediaLoaded:()=>uc,bufferToImage:()=>hc,createCanvas:()=>hr,createCanvasFromMedia:()=>Qr,extractFaceTensors:()=>iw,extractFaces:()=>ow,fetchImage:()=>rw,fetchJson:()=>lc,fetchNetWeights:()=>nw,fetchOrThrow:()=>xn,getContext2dOrThrow:()=>Ze,getMediaDimensions:()=>yn,imageTensorToCanvas:()=>pc,imageToSquare:()=>cc,isMediaElement:()=>Ws,isMediaLoaded:()=>Zr,loadWeightMap:()=>tw,matchDimensions:()=>ew,resolveInput:()=>wn,toNetInput:()=>ac});T(Qb,ee(ku()))});var _u=ke(()=>{});var $s=ke(sw=>{me(sw,{TinyYolov2:()=>dc,TinyYolov2Options:()=>gc,TinyYolov2SizeType:()=>fc,createTinyYolov2:()=>aw,validateConfig:()=>mc});T(sw,ee(_u()));function aw(e,t=!0){const n=new dc(t);return n.extractWeights(e),n}});var Du=ke(()=>{});var Wu=ke(cw=>{me(cw,{ComposableTask:()=>vt,ComputeAllFaceDescriptorsTask:()=>Ln,ComputeFaceDescriptorsTaskBase:()=>Sc,ComputeSingleFaceDescriptorTask:()=>Sn,DetectAllFaceLandmarksTask:()=>xc,DetectAllFacesTask:()=>Gs,DetectFaceLandmarksTaskBase:()=>yc,DetectFacesTaskBase:()=>bc,DetectSingleFaceLandmarksTask:()=>Lc,DetectSingleFaceTask:()=>wc,FaceMatcher:()=>Uu,computeFaceDescriptor:()=>hw,detectAllFaces:()=>Iw,detectFaceLandmarks:()=>Fu,detectFaceLandmarksTiny:()=>lw,detectLandmarks:()=>Sw,detectSingleFace:()=>vw,loadAgeGenderModel:()=>yw,loadFaceDetectionModel:()=>xw,loadFaceExpressionModel:()=>ww,loadFaceLandmarkModel:()=>fw,loadFaceLandmarkTinyModel:()=>gw,loadFaceRecognitionModel:()=>bw,loadTinyFaceDetectorModel:()=>Mu,loadTinyYolov2Model:()=>mw,locateFaces:()=>Lw,nets:()=>le,predictAgeAndGender:()=>dw,recognizeFaceExpressions:()=>uw,tinyFaceDetector:()=>pw});T(cw,ee(Du()))});var Vu=ke(Tw=>{me(Tw,{AgeGenderNet:()=>ta,BoundingBox:()=>gr,Box:()=>he,Dimensions:()=>Qe,FACE_EXPRESSION_LABELS:()=>Xs,FaceDetection:()=>ye,FaceExpressionNet:()=>Zs,FaceExpressions:()=>pn,FaceLandmark68Net:()=>mr,FaceLandmark68TinyNet:()=>Js,FaceLandmarkNet:()=>Hu,FaceLandmarks:()=>ct,FaceLandmarks5:()=>Yu,FaceLandmarks68:()=>fr,FaceMatch:()=>io,FaceRecognitionNet:()=>dr,Gender:()=>Dt,LabeledBox:()=>oo,LabeledFaceDescriptors:()=>ln,NeuralNetwork:()=>He,ObjectDetection:()=>Tn,Point:()=>J,PredictedBox:()=>zu,Rect:()=>ea,TinyFaceDetector:()=>vn,TinyFaceDetectorOptions:()=>sn,createFaceRecognitionNet:()=>qu,createTinyFaceDetector:()=>Bu,draw:()=>Ps,euclideanDistance:()=>Qs,extendWithAge:()=>ro,extendWithFaceDescriptor:()=>no,extendWithFaceDetection:()=>cn,extendWithFaceExpressions:()=>to,extendWithFaceLandmarks:()=>In,extendWithGender:()=>eo,inverseSigmoid:()=>Gu,iou:()=>Vs,isWithAge:()=>Pu,isWithFaceDetection:()=>It,isWithFaceExpressions:()=>Ks,isWithFaceLandmarks:()=>an,isWithGender:()=>ju,minBbox:()=>Ys,nonMaxSuppression:()=>zs,normalize:()=>bt,padToSquare:()=>Hs,resizeResults:()=>vc,shuffleArray:()=>$u,sigmoid:()=>ur,tf:()=>js,utils:()=>qs});T(Tw,ee(ot()));T(Tw,ee(qe()));T(Tw,ee(Wu()));T(Tw,ee($s()))});const Ku="tfjsflags";class Ic{constructor(e){this.global=e,this.flags={},this.flagRegistry={},this.urlFlags={},this.populateURLFlags()}setPlatform(e,t){this.platform!=null&&console.warn(`Platform ${this.platformName} has already been set. Overwriting the platform with ${t}.`),this.platformName=e,this.platform=t}registerFlag(e,t,n){if(this.flagRegistry[e]={evaluationFn:t,setHook:n},this.urlFlags[e]!=null){const r=this.urlFlags[e];console.warn(`Setting feature override from URL ${e}: ${r}.`),this.set(e,r)}}async getAsync(e){return e in this.flags?this.flags[e]:(this.flags[e]=await this.evaluateFlag(e),this.flags[e])}get(e){if(e in this.flags)return this.flags[e];const t=this.evaluateFlag(e);if(t instanceof Promise)throw new Error(`Flag ${e} cannot be synchronously evaluated. Please use getAsync() instead.`);return this.flags[e]=t,this.flags[e]}getNumber(e){return this.get(e)}getBool(e){return this.get(e)}getFlags(){return this.flags}get features(){return this.flags}set(e,t){if(this.flagRegistry[e]==null)throw new Error(`Cannot set flag ${e} as it has not been registered.`);this.flags[e]=t,this.flagRegistry[e].setHook!=null&&this.flagRegistry[e].setHook(t)}evaluateFlag(e){if(this.flagRegistry[e]==null)throw new Error(`Cannot evaluate flag '${e}': no evaluation function found.`);return this.flagRegistry[e].evaluationFn()}setFlags(e){this.flags=Object.assign({},e)}reset(){this.flags={},this.urlFlags={},this.populateURLFlags()}populateURLFlags(){if(typeof this.global=="undefined"||typeof this.global.location=="undefined"||typeof this.global.location.search=="undefined")return;const e=Aw(this.global.location.search);if(Ku in e){const t=e[Ku].split(",");t.forEach(n=>{const[r,o]=n.split(":");this.urlFlags[r]=Nw(r,o)})}}}function Aw(e){const t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(n,...r)=>(Rw(t,r[0],r[1]),r.join("="))),t}function Rw(e,t,n){e[decodeURIComponent(t)]=decodeURIComponent(n||"")}function Nw(e,t){if(t=t.toLowerCase(),t==="true"||t==="false")return t==="true";if(`${+t}`===t)return+t;throw new Error(`Could not parse value flag value ${t} for flag ${e}.`)}function ce(){return Tc}let Tc=null;function Ju(e){Tc=e}let Ac;function Nc(){if(Ac==null){let e;if(typeof window!="undefined")e=window;else if(typeof global!="undefined")e=global;else if(typeof process!="undefined")e=process;else if(typeof self!="undefined")e=self;else throw new Error("Could not find a global object");Ac=e}return Ac}function Cw(){const e=Nc();return e._tfGlobals==null&&(e._tfGlobals=new Map()),e._tfGlobals}function Rc(e,t){const n=Cw();if(n.has(e))return n.get(e);{const r=t();return n.set(e,r),n.get(e)}}const so="Abs",ao="Acos",co="Acosh",An="Add",po="AddN",Cc="All",Ec="Any",lo="ArgMax",ho="ArgMin",uo="Asin",mo="Asinh",fo="Atan",go="Atanh",bo="Atan2",wo="AvgPool",Oc="AvgPoolBackprop",yo="AvgPool3D",kc="AvgPool3DBackprop",xo="BatchMatMul",Lo="BatchToSpaceND",So="BroadcastTo",Nn="Cast",vo="Ceil",Io="ClipByValue",_c="Complex",To="Concat",Ao="Conv2D",Dc="Conv2DBackpropFilter",No="Conv2DBackpropInput",Ro="Conv3D",Fc="Conv3DBackpropFilterV2",Mc="Conv3DBackpropInputV2",Co="Cos",Eo="Cosh",Oo="Cumsum",Uc="CropAndResize",Wc="DepthToSpace",ko="DepthwiseConv2dNative",Bc="DepthwiseConv2dNativeBackpropFilter",$c="DepthwiseConv2dNativeBackpropInput",Gc="Diag",_o="Dilation2D",jc="Dilation2DBackpropInput",Pc="Dilation2DBackpropFilter",Do="Div",Fo="Elu",qc="EluGrad",Mo="Erf",Hc="Equal",Uo="Exp",Wo="Expm1",zc="FFT",Yc="Fill",Vc="FlipLeftRight",Bo="Floor",$o="FloorDiv",Go="FusedBatchNorm",jo="GatherV2",Kc="GatherNd",Jc="Greater",Po="GreaterEqual",qo="Identity",Xc="IFFT",Zc="Imag",Ho="IsFinite",zo="IsInf",Yo="IsNan",Qc="Less",ep="LessEqual",tp="LinSpace",Vo="Log",Ko="Log1p",np="LogicalAnd",rp="LogicalNot",op="LogicalOr",Jo="LogSoftmax",Xo="LRN",ip="LRNBackprop",Zo="Max",Qo="Maximum",ei="MaxPool",sp="MaxPoolBackprop",ti="MaxPool3D",ap="MaxPool3DBackprop",cp="MaxPoolWithArgmax",Ew="Mean",ni="Min",ri="Minimum",oi="Mod",ii="Multiply",si="Negate",pp="NotEqual",lp="NonMaxSuppressionV3",hp="NonMaxSuppressionV4",up="NonMaxSuppressionV5",ai="OnesLike",ci="OneHot",pi="PadV2",Ow="Pool",li="Pow",hi="Prelu",dp="Prod",mp="Range",fp="Real",ui="Reciprocal",di="Relu",mi="Reshape",fi="ResizeNearestNeighbor",gp="ResizeNearestNeighborGrad",gi="ResizeBilinear",bp="ResizeBilinearGrad",bi="Relu6",wi="Reverse",yi="Round",xi="Rsqrt",wp="ScatterNd",Li="SelectV2",Si="Selu",vi="Slice",Ii="Sin",Ti="Sinh",Ai="Sign",Ni="Sigmoid",Ri="Softplus",Ci="Sqrt",Ei="Sum",Oi="SpaceToBatchND",ki="SplitV",_i="Softmax",Di="SquaredDifference",yp="Square",Fi="Sub",xp="SparseToDense",Lp="StridedSlice",Mi="Tan",Ui="Tanh",Wi="Tile",Sp="TopK",Bi="Transpose",$i="Unpack",Gi="UnsortedSegmentSum",ji="ZerosLike",Pi="Step",na="FromPixels",vp="RotateWithOffset",ra="_FusedMatMul",oa="FusedConv2D",ia="FusedDepthwiseConv2D";const br=Rc("kernelRegistry",()=>new Map()),qi=Rc("gradRegistry",()=>new Map());function Hi(e,t){const n=Ip(e,t);return br.get(n)}function sa(e){return qi.get(e)}function aa(e){const t=br.entries(),n=[];for(;;){const{done:r,value:o}=t.next();if(r)break;const[i,a]=o,[s]=i.split("_");s===e&&n.push(a)}return n}function kw(e){const{kernelName:t,backendName:n}=e,r=Ip(t,n);br.has(r)&&console.warn(`The kernel '${t}' for backend '${n}' is already registered`),br.set(r,e)}function Tp(e){const{kernelName:t}=e;qi.has(t)&&(ce().getBool("DEBUG")&&console.warn(`Overriding the gradient for '${t}'`)),qi.set(t,e)}function _w(e,t){const n=Ip(e,t);if(!br.has(n))throw new Error(`The kernel '${e}' for backend '${t}' is not registered`);br.delete(n)}function Dw(e){if(!qi.has(e))throw new Error(`The gradient '${e}' for backend is not registered`);qi.delete(e)}function Ip(e,t){return`${t}_${e}`}const Xu={};me(Xu,{arraysEqual:()=>Se,assert:()=>f,assertNonNegativeIntegerDimensions:()=>Vi,assertNonNull:()=>pt,assertShapesMatch:()=>P,bytesFromStringArray:()=>kp,bytesPerElement:()=>Op,checkConversionForErrors:()=>Qu,clamp:()=>wr,computeStrides:()=>Ut,createShuffledIndices:()=>jw,decodeString:()=>pa,distSquared:()=>Ww,encodeString:()=>_p,fetch:()=>zw,flatten:()=>Ft,getArrayFromDType:()=>Rp,getTypedArrayFromDType:()=>yr,hasEncodingLoss:()=>Ep,indexToLoc:()=>Vw,inferDtype:()=>xr,inferFromImplicitShape:()=>Ap,isBoolean:()=>ed,isFunction:()=>Mt,isInt:()=>X,isNumber:()=>td,isScalarShape:()=>Bw,isString:()=>Tt,isTypedArray:()=>Ne,isValidDtype:()=>Cp,locToIndex:()=>Yw,makeOnesTypedArray:()=>Yi,makeZerosNestedTypedArray:()=>Hw,makeZerosTypedArray:()=>Wt,nearestDivisor:()=>Lr,nearestLargerEven:()=>Fw,now:()=>ca,parseAxisParam:()=>z,randUniform:()=>Uw,repeatedTry:()=>Pw,rightPad:()=>Rn,shuffle:()=>Zu,sizeFromShape:()=>te,sizeToSquarishShape:()=>Gw,squeezeShape:()=>Np,sum:()=>Mw,tanh:()=>$w,toNestedArray:()=>Cn,toTypedArray:()=>zi});function Zu(e){let t=e.length,n=0,r=0;for(;t>0;)r=Math.random()*t|0,t--,n=e[t],e[t]=e[r],e[r]=n}function wr(e,t,n){return Math.max(e,Math.min(t,n))}function Fw(e){return e%2===0?e:e+1}function Mw(e){let t=0;for(let n=0;nn+` Shapes ${e} and ${t} must match`)}function pt(e){f(e!=null,()=>"The input to the tensor constructor must be a non-null value.")}function Ft(e,t=[],n=!1){if(t==null&&(t=[]),Array.isArray(e)||Ne(e)&&!n)for(let r=0;r0,n){return new Promise((r,o)=>{let i=0;const a=()=>{if(e()){r();return}i++;const s=t(i);if(n!=null&&i>=n){o();return}setTimeout(a,s)};a()})}function Ap(e,t){let n=1,r=-1;for(let i=0;i=0)n*=e[i];else if(e[i]===-1){if(r!==-1)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${r} and dim ${i}`);r=i}else if(e[i]<0)throw Error(`Shapes can not be < 0. Found ${e[i]} at dim ${i}`);if(r===-1){if(t>0&&t!==n)throw Error(`Size(${t}) must match the product of shape ${e}`);return e}if(n===0)throw Error(`Cannot infer the missing size in [${e}] when there are 0 elements`);if(t%n!==0)throw Error(`The implicit shape can't be a fractional number. Got ${t} / ${n}`);const o=e.slice();return o[r]=t/n,o}function z(e,t){const n=t.length;return e=e==null?t.map((r,o)=>o):[].concat(e),f(e.every(r=>r>=-n&&r`All values in axis param must be in range [-${n}, ${n}) but got axis ${e}`),f(e.every(r=>X(r)),()=>`All values in axis param must be integers but got axis ${e}`),e.map(r=>r<0?n+r:r)}function Np(e,t){const n=[],r=[],o=t!=null&&Array.isArray(t)&&t.length===0,i=t==null||o?null:z(t,e).sort();let a=0;for(let s=0;ss)&&e[s]===1&&(n.push(e[s]),r.push(s)),i[a]<=s&&a++}e[s]!==1&&(n.push(e[s]),r.push(s))}return{newShape:n,keptDims:r}}function yr(e,t){let n=null;if(e==null||e==="float32")n=new Float32Array(t);else if(e==="int32")n=new Int32Array(t);else if(e==="bool")n=new Uint8Array(t);else throw new Error(`Unknown data type ${e}`);return n}function Rp(e,t){let n=null;if(e==null||e==="float32")n=new Float32Array(t);else if(e==="int32")n=new Int32Array(t);else if(e==="bool")n=new Uint8Array(t);else if(e==="string")n=new Array(t);else throw new Error(`Unknown data type ${e}`);return n}function Qu(e,t){for(let n=0;nt+=n.length),t}function Tt(e){return typeof e=="string"||e instanceof String}function ed(e){return typeof e=="boolean"}function td(e){return typeof e=="number"}function xr(e){return Array.isArray(e)?xr(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array?"int32":td(e)?"float32":Tt(e)?"string":ed(e)?"bool":"float32"}function Mt(e){return!!(e&&e.constructor&&e.call&&e.apply)}function Lr(e,t){for(let n=t;n=0;--r)n[r]=n[r+1]*e[r+1];return n}function zi(e,t){if(t==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=Ft(e)),ce().getBool("DEBUG")&&Qu(e,t),qw(e,t))return e;if(t==null||t==="float32"||t==="complex64")return new Float32Array(e);if(t==="int32")return new Int32Array(e);if(t==="bool"){const n=new Uint8Array(e.length);for(let r=0;rs*c);for(let s=0;sr*o);if(n===0)return[];if(n!==t.length)throw new Error(`[${e}] does not match the input size ${t.length}.`);return nd(0,e,t)}function qw(e,t){return e instanceof Float32Array&&t==="float32"||e instanceof Int32Array&&t==="int32"||e instanceof Uint8Array&&t==="bool"}function Yi(e,t){const n=Wt(e,t);for(let r=0;rr*o,1);if(t==null||t==="float32")return Cn(e,new Float32Array(n));if(t==="int32")return Cn(e,new Int32Array(n));if(t==="bool")return Cn(e,new Uint8Array(n));throw new Error(`Unknown data type ${t}`)}function ca(){return ce().platform.now()}function Vi(e){e.forEach(t=>{f(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`)})}function zw(e,t){return ce().platform.fetch(e,t)}function _p(e,t="utf-8"){return t=t||"utf-8",ce().platform.encode(e,t)}function pa(e,t="utf-8"){return t=t||"utf-8",ce().platform.decode(e,t)}function Yw(e,t,n){if(t===0)return 0;if(t===1)return e[0];let r=e[e.length-1];for(let o=0;o{r=n()},i=this.backendTimer.time(o);r.map(s=>{s.data().then(c=>{Kw(c,s.dtype,e)})});const a={kernelName:e,outputs:r,inputs:t,timeMs:i.then(s=>s.kernelMs),extraInfo:i.then(s=>s.getExtraProfileInfo!=null?s.getExtraProfileInfo():"")};return a}logKernelProfile(e){const{kernelName:t,outputs:n,timeMs:r,inputs:o,extraInfo:i}=e;n.forEach(a=>{Promise.all([a.data(),r,i]).then(s=>{this.logger.logKernelProfile(t,a,s[0],s[1],o,s[2])})})}}function Kw(e,t,n){if(t!=="float32")return!1;for(let r=0;r0?y:""} `}}console.log(`%c${s} %c${a} %c${c}D ${l} %c${p} %c${h} %c${i}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}}function od(e,t,n){const r={},o={};for(let c=0;cr[w.id]=!0),b=!0,o[p.id]=!0;break}if(b)break}}const i={};i[n.id]=!0;const a={};for(let c=e.length-1;c>=0;c--){const p=e[c],l=p.inputs;for(let h=0;h=0;o--){const i=t[o],a=[];if(i.outputs.forEach(c=>{const p=e[c.id];p!=null?a.push(p):a.push(null)}),i.gradient==null)throw new Error(`Cannot compute gradient: gradient function not found for ${i.kernelName}.`);const s=i.gradient(a);for(const c in i.inputs){if(!(c in s))throw new Error(`Cannot backprop through input ${c}. Available gradients found: ${Object.keys(s)}.`);const p=n(()=>s[c]());if(p.dtype!=="float32")throw new Error(`Error in gradient for op ${i.kernelName}. The gradient of input ${c} must have 'float32' dtype, but has '${p.dtype}'`);const l=i.inputs[c];if(!Se(p.shape,l.shape))throw new Error(`Error in gradient for op ${i.kernelName}. The gradient of input '${c}' has shape '${p.shape}', which does not match the shape of the input '${l.shape}'`);if(e[l.id]==null)e[l.id]=p;else{const h=e[l.id];e[l.id]=r(h,p),h.dispose()}}}}const sd=20,Ki=3,Dp=7;function ad(e,t,n,r){const o=Ut(t),i=Xw(e,t,n,o),a=t.length,s=la(e,t,n,o,i),c=["Tensor"];return r&&(c.push(` dtype: ${n}`),c.push(` rank: ${a}`),c.push(` shape: [${t}]`),c.push(" values:")),c.push(s.map(p=>" "+p).join(` -`)),c.join(` -`)}function Xw(e,t,n,r){const o=te(t),i=r[r.length-1],a=new Array(i).fill(0),s=t.length,c=n==="complex64"?Xi(e):e;if(s>1)for(let p=0;psd){const L=Ki*a;let v=Array.from(e.slice(0,L)),A=Array.from(e.slice((s-Ki)*a,s*a));return n==="complex64"&&(v=Xi(v),A=Xi(A)),["["+v.map((R,N)=>Ji(R,o[N],n)).join(", ")+", ..., "+A.map((R,N)=>Ji(R,o[s-Ki+N],n)).join(", ")+"]"]}const w=n==="complex64"?Xi(e):Array.from(e);return["["+w.map((L,v)=>Ji(L,o[v],n)).join(", ")+"]"]}const p=t.slice(1),l=r.slice(1),h=r[0]*a,m=[];if(s>sd){for(let w=0;w`Length of values '${r}' does not match the size inferred by the shape '${this.size}'.`)}if(t==="complex64")throw new Error("complex64 dtype TensorBuffers are not supported. Please create a TensorBuffer for the real and imaginary parts separately and call tf.complex(real, imag).");this.values=n||Rp(t,this.size),this.strides=Ut(e)}set(e,...t){t.length===0&&(t=[0]),f(t.length===this.rank,()=>`The number of provided coordinates (${t.length}) must match the rank (${this.rank})`);const n=this.locToIndex(t);this.values[n]=e}get(...e){e.length===0&&(e=[0]);let t=0;for(const r of e){if(r<0||r>=this.shape[t]){const o=`Requested out of range element at ${e}. Buffer shape=${this.shape}`;throw new Error(o)}t++}let n=e[e.length-1];for(let r=0;rpa(n))}catch(n){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}}return e}dataSync(){this.throwIfDisposed();const e=Bt().readSync(this.dataId);if(this.dtype==="string")try{return e.map(t=>pa(t))}catch(t){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}return e}async bytes(){this.throwIfDisposed();const e=await Bt().read(this.dataId);return this.dtype==="string"?e:new Uint8Array(e.buffer)}dispose(){if(this.isDisposed)return;Bt().disposeTensor(this),this.isDisposedInternal=!0}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(e=!1){return vr.print(this,e)}clone(){return this.throwIfDisposed(),vr.clone(this)}toString(e=!1){const t=this.dataSync();return ad(t,this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),vr.cast(this,e)}variable(e=!0,t,n){return this.throwIfDisposed(),Bt().makeVariable(this,e,t,n)}}Object.defineProperty(ne,Symbol.hasInstance,{value:e=>!!e&&e.dataId!=null&&e.shape!=null&&e.dtype!=null});class $t extends ne{constructor(e,t,n,r){super(e.shape,e.dtype,e.dataId,r);this.trainable=t,this.name=n}assign(e){if(e.dtype!==this.dtype)throw new Error(`dtype of the new value (${e.dtype}) and previous value (${this.dtype}) must match`);if(!Se(e.shape,this.shape))throw new Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);Bt().disposeTensor(this),this.dataId=e.dataId,Bt().incRef(this,null)}dispose(){Bt().disposeVariable(this),this.isDisposedInternal=!0}}Object.defineProperty($t,Symbol.hasInstance,{value:e=>e instanceof ne&&e.assign!=null&&e.assign instanceof Function});var Fp;(function(e){e.R0="R0",e.R1="R1",e.R2="R2",e.R3="R3",e.R4="R4",e.R5="R5",e.R6="R6"})(Fp||(Fp={}));var Mp;(function(e){e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64"})(Mp||(Mp={}));var Up;(function(e){e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64"})(Up||(Up={}));var Wp;(function(e){e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64"})(Wp||(Wp={}));var Bp;(function(e){e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64"})(Bp||(Bp={}));const Qw={float32:Wp,int32:Mp,bool:Up,complex64:Bp};function Ir(e,t){if(e==="string"||t==="string"){if(e==="string"&&t==="string")return"string";throw new Error(`Can not upcast ${e} with ${t}`)}return Qw[e][t]}function ey(e){return Ir(e,"int32")}const ud={};me(ud,{assertTypesMatch:()=>$p,getTensorsInContainer:()=>Zi,isTensorInList:()=>ty,makeTypesMatch:()=>K});function K(e,t){if(e.dtype===t.dtype)return[e,t];const n=Ir(e.dtype,t.dtype);return[e.cast(n),t.cast(n)]}function $p(e,t){f(e.dtype===t.dtype,()=>`The dtypes of the first(${e.dtype}) and second(${t.dtype}) input must match`)}function ty(e,t){return t.some(n=>n.id===e.id)}function Zi(e){const t=[],n=new Set();return dd(e,t,n),t}function dd(e,t,n){if(e==null)return;if(e instanceof ne){t.push(e);return}if(!ny(e))return;const r=e;for(const o in r){const i=r[o];n.has(i)||(n.add(i),dd(i,t,n))}}function ny(e){return Array.isArray(e)||typeof e=="object"}class md{constructor(){this.registeredVariables={},this.nextTapeNodeId=0,this.numBytes=0,this.numTensors=0,this.numStringTensors=0,this.numDataBuffers=0,this.gradientDepth=0,this.kernelDepth=0,this.scopeStack=[],this.numDataMovesStack=[],this.nextScopeId=0,this.tensorInfo=new WeakMap(),this.profiling=!1,this.activeProfile={newBytes:0,newTensors:0,peakBytes:0,kernels:[],result:null}}dispose(){for(const e in this.registeredVariables)this.registeredVariables[e].dispose()}}class Qi{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new md()}async ready(){if(this.pendingBackendInit!=null)return this.pendingBackendInit.then(()=>{});if(this.backendInstance!=null)return;const e=this.getSortedBackends();for(let t=0;t{t.setupFunc!=null&&t.setupFunc(this.backendInstance)})}disposeRegisteredKernels(e){const t=aa(e);t.forEach(n=>{n.disposeFunc!=null&&n.disposeFunc(this.registry[e])})}initializeBackend(e){const t=this.registryFactory[e];if(t==null)throw new Error(`Cannot initialize backend ${e}, no registration found.`);try{const n=t.factory();if(Promise.resolve(n)===n){const r=++this.pendingBackendInitId,o=n.then(i=>r(rthis.registryFactory[t].priority-this.registryFactory[e].priority)}initializeBackendsAndReturnBest(){const e=this.getSortedBackends();for(let t=0;tthis.startScope(n),()=>this.endScope(r),()=>(r=t(),r instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),r))}scopedRun(e,t,n){e();try{const r=n();return t(),r}catch(r){throw t(),r}}nextTensorId(){return Qi.nextTensorId++}nextVariableId(){return Qi.nextVariableId++}clone(e){const t=this.makeTensorFromDataId(e.dataId,e.shape,e.dtype),n={x:e},r=i=>({x:()=>{const a="float32",s={x:i},c={dtype:a};return g.runKernelFunc(p=>p.cast(i,a),s,null,Nn,c)}}),o=[];return this.addTapeNode(this.state.activeScope.name,n,[t],r,o,{}),t}runKernel(e,t,n,r,o){const i=null,a=null;return this.runKernelFunc(i,t,a,e,n,r,o)}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(e,t,n){const r=this.backend.numDataIds();let o=0;n.forEach(s=>{o+=s.dtype==="complex64"?3:1});const i=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],a=r-t-o-i;if(a>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${a} data ids) after running '${e}'`)}runKernelFunc(e,t,n,r,o,i,a){let s,c=[];const p=this.isTapeOn();r==null&&(r=this.state.activeScope!=null?this.state.activeScope.name:"");const l=this.state.numBytes,h=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);let m;const b=Hi(r,this.backendName);let y;if(b!=null)m=()=>{const L=this.backend.numDataIds();y=b.kernelFunc({inputs:t,attrs:o,backend:this.backend});const v=Array.isArray(y)?y:[y];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(r,L,v);const A=v.map(({dataId:R,shape:N,dtype:O})=>this.makeTensorFromDataId(R,N,O));if(p){let R=this.getTensorsForGradient(r,t,A);if(R==null){a==null&&(a=[]);const N=A.filter((O,M)=>a[M]);R=(i||[]).slice().concat(N)}c=this.saveTensorsForBackwardMode(R)}return A};else{const L=v=>{if(!p)return;c=v.map(A=>this.keep(this.clone(A)))};m=()=>{const v=this.backend.numDataIds();y=this.tidy(()=>e(this.backend,L));const A=Array.isArray(y)?y:[y];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(r,v,A),A}}let w;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{!this.ENV.getBool("DEBUG")&&!this.state.profiling?s=m():(w=this.profiler.profileKernel(r,t,()=>m()),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(w),s=w.outputs)}),p&&this.addTapeNode(r,t,s,n,c,o),this.state.profiling&&this.state.activeProfile.kernels.push({name:r,bytesAdded:this.state.numBytes-l,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-h,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(t).map(L=>t[L]!=null?t[L].shape:null),outputShapes:s.map(L=>L.shape),kernelTimeMs:w.timeMs,extraInfo:w.extraInfo}),Array.isArray(y)?s:s[0]}saveTensorsForBackwardMode(e){const t=e.map(n=>this.keep(this.clone(n)));return t}getTensorsForGradient(e,t,n){const r=sa(e);if(r!=null){const o=r.inputsToSave||[],i=r.outputsToSave||[];let a;r.saveAllInputs?(f(Array.isArray(t),()=>"saveAllInputs is true, expected inputs to be an array."),a=Object.keys(t).map(c=>t[c])):a=o.map(c=>t[c]);const s=n.filter((c,p)=>i[p]);return a.concat(s)}return null}makeTensor(e,t,n,r){if(e==null)throw new Error("Values passed to engine.makeTensor() are null");n=n||"float32",r=r||this.backend;let o=e;n==="string"&&Tt(e[0])&&(o=e.map(s=>_p(s)));const i=r.write(o,t,n),a=new ne(t,n,i,this.nextTensorId());if(this.incRef(a,r),n==="string"){const s=this.state.tensorInfo.get(i),c=kp(o);this.state.numBytes+=c-s.bytes,s.bytes=c}return a}makeTensorFromDataId(e,t,n,r){n=n||"float32";const o=new ne(t,n,e,this.nextTensorId());return this.incRef(o,r),o}makeVariable(e,t=!0,n,r){n=n||this.nextVariableId().toString(),r!=null&&r!==e.dtype&&(e=e.cast(r));const o=new $t(e,t,n,this.nextTensorId());if(this.state.registeredVariables[o.name]!=null)throw new Error(`Variable with name ${o.name} was already registered`);return this.state.registeredVariables[o.name]=o,this.incRef(o,this.backend),o}incRef(e,t){const n=this.state.tensorInfo.has(e.dataId)?this.state.tensorInfo.get(e.dataId).refCount:0;if(this.state.numTensors++,e.dtype==="string"&&this.state.numStringTensors++,n===0){this.state.numDataBuffers++;let r=0;e.dtype!=="complex64"&&e.dtype!=="string"&&(r=e.size*Op(e.dtype)),this.state.tensorInfo.set(e.dataId,{backend:t||this.backend,dtype:e.dtype,shape:e.shape,bytes:r,refCount:0}),this.state.numBytes+=r}this.state.tensorInfo.get(e.dataId).refCount++,e instanceof $t||this.track(e)}disposeTensor(e){if(!this.state.tensorInfo.has(e.dataId))return;this.state.numTensors--,e.dtype==="string"&&this.state.numStringTensors--;const t=this.state.tensorInfo.get(e.dataId),n=t.refCount;n<=1?(e.dtype!=="complex64"&&(this.state.numBytes-=t.bytes),this.state.numDataBuffers--,t.backend.disposeData(e.dataId),this.state.tensorInfo.delete(e.dataId)):this.state.tensorInfo.get(e.dataId).refCount--}disposeVariables(){for(const e in this.state.registeredVariables){const t=this.state.registeredVariables[e];this.disposeVariable(t)}}disposeVariable(e){this.disposeTensor(e),this.state.registeredVariables[e.name]!=null&&delete this.state.registeredVariables[e.name]}memory(){const e=this.backend.memory();return e.numTensors=this.state.numTensors,e.numDataBuffers=this.state.numDataBuffers,e.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(e.unreliable=!0,e.reasons==null&&(e.reasons=[]),e.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),e}async profile(e){this.state.profiling=!0;const t=this.state.numBytes,n=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await e(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map(r=>r.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-t,this.state.activeProfile.newTensors=this.state.numTensors-n;for(const r of this.state.activeProfile.kernels)r.kernelTimeMs=await r.kernelTimeMs,r.extraInfo=await r.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&this.state.kernelDepth===0}addTapeNode(e,t,n,r,o,i){const a={id:this.state.nextTapeNodeId++,kernelName:e,inputs:t,outputs:n,saved:o},s=sa(e);s!=null&&(r=s.gradFunc),r!=null&&(a.gradient=c=>(c=c.map((p,l)=>{if(p==null){const h=n[l],m=Wt(h.size,h.dtype);return this.makeTensor(m,h.shape,h.dtype)}return p}),r(c.length>1?c:c[0],o,i))),this.state.activeTape.push(a)}keep(e){return e.kept=!0,e}startTape(){this.state.gradientDepth===0&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(e){const t={track:[],name:"unnamed scope",id:this.state.nextScopeId++};e&&(t.name=e),this.state.scopeStack.push(t),this.state.activeScope=t}endScope(e){const t=Zi(e),n=new Set(t.map(o=>o.id));for(let o=0;o{!o.kept&&o.scopeId===r.id&&this.track(o)})}gradients(e,t,n,r=!1){if(f(t.length>0,()=>"gradients() received an empty list of xs."),n!=null&&n.dtype!=="float32")throw new Error(`dy must have 'float32' dtype, but has '${n.dtype}'`);const o=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy("forward",e));f(o instanceof ne,()=>"The result y returned by f() must be a tensor.");const i=od(this.state.activeTape,t,o);if(!r&&i.length===0&&t.length>0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that the f you passed encloses all operations that lead from x to y.");return this.tidy("backward",()=>{const a={};a[o.id]=n==null?ry(o.shape):n,id(a,i,c=>this.tidy(c),oy);const s=t.map(c=>a[c.id]);return this.state.gradientDepth===0&&(this.state.activeTape.forEach(c=>{for(const p of c.saved)p.dispose()}),this.state.activeTape=null),{value:o,grads:s}})}customGrad(e){return f(Mt(e),()=>"The f passed in customGrad(f) must be a function."),(...t)=>{f(t.every(o=>o instanceof ne),()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors");let n;const r={};return t.forEach((o,i)=>{r[i]=o}),this.runKernelFunc((o,i)=>(n=e(...t,i),f(n.value instanceof ne,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),f(Mt(n.gradFunc),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."),n.value),r,(o,i)=>{const a=n.gradFunc(o,i),s=Array.isArray(a)?a:[a];f(s.length===t.length,()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns the same number of tensors as inputs passed to f(...)."),f(s.every(p=>p instanceof ne),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors.");const c={};return s.forEach((p,l)=>{c[l]=()=>p}),c})}}readSync(e){const t=this.state.tensorInfo.get(e);return t.backend.readSync(e)}read(e){const t=this.state.tensorInfo.get(e);return t.backend.read(e)}async time(e){const t=ca(),n=await this.backend.time(e);return n.wallMs=ca()-t,n}track(e){return this.state.activeScope!=null&&(e.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(e)),e}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new md();for(const e in this.registry)this.disposeRegisteredKernels(e),this.registry[e].dispose(),delete this.registry[e];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}}Qi.nextTensorId=0;Qi.nextVariableId=0;function ry(e){const t=Yi(te(e),"float32");return g.makeTensor(t,e,"float32")}function iy(){const e=Nc();if(e._tfengine==null){const t=new Ic(e);e._tfengine=new Qi(t)}return Ju(e._tfengine.ENV),pd(()=>e._tfengine),e._tfengine}const g=iy();function oy(e,t){const n={a:e,b:t};return g.runKernelFunc((r,o)=>{const i=r.add(e,t);return o([e,t]),i},n,null,An)}const fd={};me(fd,{isBrowser:()=>Gp,isMobile:()=>ay});function sy(){return typeof navigator!="undefined"&&navigator!=null}function ay(){if(sy()){const e=navigator.userAgent||navigator.vendor||window.opera;return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(e)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(e.substr(0,4))}return!1}function Gp(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}const Yt=ce();Yt.registerFlag("DEBUG",()=>!1,e=>{e&&console.warn("Debugging mode is ON. The output of every math call will be downloaded to CPU and checked for NaNs. This significantly impacts performance.")});Yt.registerFlag("IS_BROWSER",()=>Gp());Yt.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");Yt.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));Yt.registerFlag("PROD",()=>!1);Yt.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>Yt.getBool("DEBUG"));Yt.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);Yt.registerFlag("IS_TEST",()=>!1);function Fe(e,t){let n=e;if(Ne(e))return t==="string"?[]:[e.length];if(!Array.isArray(e))return[];const r=[];for(;Array.isArray(n)||Ne(n)&&t!=="string";)r.push(n.length),n=n[0];return Array.isArray(e)&&ce().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&gd(e,r,[]),r}function gd(e,t,n){if(n=n||[],!Array.isArray(e)&&!Ne(e)){f(t.length===0,()=>`Element arr[${n.join("][")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`);return}f(t.length>0,()=>`Element arr[${n.join("][")}] should be a primitive, but is an array of ${e.length} elements`),f(e.length===t[0],()=>`Element arr[${n.join("][")}] should have ${t[0]} elements, but has ${e.length} elements`);const r=t.slice(1);for(let o=0;o=0&&(o=r),bd(r,o,t,n),e==null||!Ne(e)&&!Array.isArray(e)&&typeof e!="number"&&typeof e!="boolean"&&typeof e!="string"){const c=e==null?"null":e.constructor.name;throw new Error(`Argument '${t}' passed to '${n}' must be a Tensor or TensorLike, but got '${c}'`)}const i=Fe(e,o);!Ne(e)&&!Array.isArray(e)&&(e=[e]);const a=!0,s=o!=="string"?zi(e,o):Ft(e,[],a);return g.makeTensor(s,i,o)}function Vt(e,t,n,r="numeric"){if(!Array.isArray(e))throw new Error(`Argument ${t} passed to ${n} must be a \`Tensor[]\` or \`TensorLike[]\``);const o=e;return o.map((i,a)=>u(i,`${t}[${a}]`,n),r)}function d(e){const t=Object.keys(e);if(t.length!==1)throw new Error(`Please provide an object with a single key (operation name) mapping to a function. Got an object with ${t.length} keys.`);let n=t[0];const r=e[n];n.endsWith("_")&&(n=n.substring(0,n.length-1));const o=(...i)=>{g.startScope(n);try{const a=r(...i);return a instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),g.endScope(a),a}catch(a){throw g.endScope(null),a}};return Object.defineProperty(o,"name",{value:n,configurable:!0}),o}function cy(e){const t=u(e,"x","abs"),n={x:t};return g.runKernelFunc((r,o)=>(o([t]),t.dtype==="complex64"?r.complexAbs(t):r.abs(t)),n,null,so)}const Ce=d({abs_:cy});function py(e){const t=u(e,"x","acos"),n={x:t};return g.runKernelFunc((r,o)=>{const i=r.acos(t);return o([t]),i},n,null,ao)}const jp=d({acos_:py});function ly(e){const t=u(e,"x","acosh"),n={x:t};return g.runKernelFunc((r,o)=>{const i=r.acosh(t);return o([t]),i},n,null,co)}const Pp=d({acosh_:ly});function hy(e,t){let n=u(e,"a","add"),r=u(t,"b","add");[n,r]=K(n,r);const o=(a,s)=>{const c=a.add(n,r);return s([n,r]),c},i={a:n,b:r};return g.runKernelFunc(o,i,null,An)}const C=d({add_:hy});function uy(e){f(Array.isArray(e),()=>"The argument passed to tf.addN() must be a list of tensors"),f(e.length>=1,()=>`Must pass at least one tensor to tf.addN(), but got ${e.length}`);const t=e.map((i,a)=>u(i,`tensors${a}`,"addN")),n=t[0];t.forEach(i=>{if(i.dtype!==n.dtype)throw new Error("All tensors passed to tf.addN() must have the same dtype")}),t.forEach(i=>{if(!Se(i.shape,n.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")});const r=(i,a)=>{const s=i.addN(t);return a(t),s},o=t;return g.runKernelFunc(r,o,null,po)}const qp=d({addN_:uy});function Hp(e,t){for(let n=0;ne[i]);return[n,o]}function we(e,t){const n=t.map(r=>1);return wd(e,n,t)}function dy(e,t,n){f(Hp(t,n),()=>`${e} supports only inner-most axes for now. Got axes ${t} and rank-${n} input.`)}function fe(e,t){if(Hp(e,t))return null;const n=[];for(let r=0;rn.push(r)),n}function En(e){return e.map((t,n)=>[n,t]).sort((t,n)=>t[1]-n[1]).map(t=>t[0])}function De(e,t){const n=[];for(let r=t-e;r"new shape and old shape must have the same number of elements.");const r={x:n},o={shape:t},i=(a,s)=>(s([n]),a.reshape(n,t));return g.runKernelFunc(i,r,null,mi,o)}const x=d({reshape_:my});function fy(e,t){const n=u(e,"x","transpose");if(t==null&&(t=n.shape.map((i,a)=>a).reverse()),f(n.rank===t.length,()=>`Error in transpose: rank of input ${n.rank} must match length of perm ${t}.`),t.forEach(i=>{f(i>=0&&i`All entries in 'perm' must be between 0 and ${n.rank-1} but got ${t}`)}),n.rank<=1)return n.clone();const r={x:n},o={perm:t};return g.runKernelFunc(i=>i.transpose(n,t),r,null,Bi,o)}const Z=d({transpose_:fy});function gy(e,t=null,n=!1){let r=u(e,"x","all","bool");const o=s=>{const c=z(t,r.shape);let p=c;const l=fe(p,r.rank);l!=null&&(r=Z(r,l),p=De(p.length,r.rank));const h=s.all(r,p);if(n){const m=we(h.shape,c);return x(h,m)}return h},i={x:r},a={axis:t,keepDims:n};return g.runKernelFunc(o,i,null,Cc,a)}const Yp=d({all_:gy});function by(e,t=null,n=!1){let r=u(e,"x","any","bool");const o=s=>{const c=z(t,r.shape);let p=c;const l=fe(p,r.rank);l!=null&&(r=Z(r,l),p=De(p.length,r.rank));const h=s.any(r,p);if(n){const m=we(h.shape,c);return x(h,m)}return h},i={x:r},a={axis:t,keepDims:n};return g.runKernelFunc(o,i,null,Ec,a)}const Vp=d({any_:by});function wy(e,t=0){let n=u(e,"x","argMax");const r=(a,s)=>{s([n]);let c=z(t,n.shape);const p=fe(c,n.rank);return p!=null&&(n=Z(n,p),c=De(c.length,n.rank)),a.argMax(n,c[0])},o={x:n},i={axis:t};return g.runKernelFunc(r,o,null,lo,i)}const Kp=d({argMax_:wy});function yy(e,t=0){let n=u(e,"x","argMin");const r=(a,s)=>{s([n]),t==null&&(t=0);let c=z(t,n.shape);const p=fe(c,n.rank);return p!=null&&(n=Z(n,p),c=De(c.length,n.rank)),a.argMin(n,c[0])},o={x:n},i={axis:t};return g.runKernelFunc(r,o,null,ho,i)}const Jp=d({argMin_:yy});function xy(e){const t=u(e,"x","asin"),n={x:t};return g.runKernelFunc((r,o)=>{const i=r.asin(t);return o([t]),i},n,null,uo)}const Xp=d({asin_:xy});function Ly(e){const t=u(e,"x","asinh"),n={x:t};return g.runKernelFunc((r,o)=>{const i=r.asinh(t);return o([t]),i},n,null,mo)}const Zp=d({asinh_:Ly});function Sy(e){const t=u(e,"x","atan"),n={x:t};return g.runKernelFunc((r,o)=>{const i=r.atan(t);return o([t]),i},n,null,fo)}const Qp=d({atan_:Sy});function vy(e,t){let n=u(e,"a","atan2"),r=u(t,"b","atan2");[n,r]=K(n,r);const o=(a,s)=>{const c=a.atan2(n,r);return s([n,r]),c},i={a:n,b:r};return g.runKernelFunc(o,i,null,bo)}const el=d({atan2_:vy});function Iy(e){const t=u(e,"x","atanh"),n={x:t};return g.runKernelFunc((r,o)=>{const i=r.atanh(t);return o([t]),i},n,null,go)}const tl=d({atanh_:Iy});function Ty(e,t){const n=u(e,"x","cast");if(!Cp(t))throw new Error(`Failed to cast to unknown dtype ${t}`);if(t==="string"&&n.dtype!=="string"||t!=="string"&&n.dtype==="string")throw new Error("Only strings can be casted to strings");const r={x:n},o={dtype:t};return g.runKernelFunc(i=>i.cast(n,t),r,null,Nn,o)}const E=d({cast_:Ty});function Ay(e,t,n,r,o="NHWC",i){const a=e[3],s=[...t,a],c=hn(o);return $e(e,s,n,i,r,null,null,c)}function At(e,t,n,r,o,i,a="channelsLast"){const[s,c]=ha(t);let p;if(a==="channelsLast")p=[s,c,e[3],e[3]];else if(a==="channelsFirst")p=[s,c,e[1],e[1]];else throw new Error(`Unknown dataFormat ${a}`);return $e(e,p,n,r,o,i,!1,a)}function Kt(e,t,n,r,o,i,a="NDHWC"){const[s,c,p]=nl(t);let l,h;if(a==="NDHWC")h="channelsLast",l=[s,c,p,e[4],e[4]];else if(a==="NCDHW")h="channelsFirst",l=[s,c,p,e[1],e[1]];else throw new Error(`Unknown dataFormat ${a}`);return un(e,l,n,r,o,!1,h,i)}function $e(e,t,n,r,o,i,a=!1,s="channelsLast"){let[c,p,l,h]=[-1,-1,-1,-1];if(s==="channelsLast")[c,p,l,h]=e;else if(s==="channelsFirst")[c,h,p,l]=e;else throw new Error(`Unknown dataFormat ${s}`);const[m,b,,y]=t,[w,L]=ha(n),[v,A]=ha(r),R=Tr(m,v),N=Tr(b,A),{padInfo:O,outHeight:M,outWidth:D}=Ny(o,p,l,w,L,R,N,i,s),G=a?y*h:y;let $;return s==="channelsFirst"?$=[c,G,M,D]:s==="channelsLast"&&($=[c,M,D,G]),{batchSize:c,dataFormat:s,inHeight:p,inWidth:l,inChannels:h,outHeight:M,outWidth:D,outChannels:G,padInfo:O,strideHeight:w,strideWidth:L,filterHeight:m,filterWidth:b,effectiveFilterHeight:R,effectiveFilterWidth:N,dilationHeight:v,dilationWidth:A,inShape:e,outShape:$,filterShape:t}}function un(e,t,n,r,o,i=!1,a="channelsLast",s){let[c,p,l,h,m]=[-1,-1,-1,-1,-1];if(a==="channelsLast")[c,p,l,h,m]=e;else if(a==="channelsFirst")[c,m,p,l,h]=e;else throw new Error(`Unknown dataFormat ${a}`);const[b,y,w,,L]=t,[v,A,R]=nl(n),[N,O,M]=nl(r),D=Tr(b,N),G=Tr(y,O),$=Tr(w,M),{padInfo:j,outDepth:oe,outHeight:ie,outWidth:ue}=Ry(o,p,l,h,v,A,R,D,G,$,s),Ae=i?L*m:L;let Pe;return a==="channelsFirst"?Pe=[c,Ae,oe,ie,ue]:a==="channelsLast"&&(Pe=[c,oe,ie,ue,Ae]),{batchSize:c,dataFormat:a,inDepth:p,inHeight:l,inWidth:h,inChannels:m,outDepth:oe,outHeight:ie,outWidth:ue,outChannels:Ae,padInfo:j,strideDepth:v,strideHeight:A,strideWidth:R,filterDepth:b,filterHeight:y,filterWidth:w,effectiveFilterDepth:D,effectiveFilterHeight:G,effectiveFilterWidth:$,dilationDepth:N,dilationHeight:O,dilationWidth:M,inShape:e,outShape:Pe,filterShape:t}}function Cy(e,t,n,r,o){r==null&&(r=rl(e,t,n));const i=e[0],a=e[1],s=On((i-t+2*r)/n+1,o);f(X(s),()=>`The output # of rows (${s}) must be an integer. Change the stride and/or zero pad parameters`);const c=On((a-t+2*r)/n+1,o);return f(X(c),()=>`The output # of columns (${c}) must be an integer. Change the stride and/or zero pad parameters`),[s,c]}function Ey(e,t,n,r,o,i){o==null&&(o=rl(e,t,r));const a=e[0],s=e[1],c=e[2],p=On((a-t+2*o)/r+1,i);f(X(p),()=>`The output # of depths (${p}) must be an integer. Change the stride and/or zero pad parameters`);const l=On((s-t+2*o)/r+1,i);f(X(l),()=>`The output # of rows (${l}) must be an integer. Change the stride and/or zero pad parameters`);const h=On((c-t+2*o)/r+1,i);return f(X(h),()=>`The output # of columns (${h}) must be an integer. Change the stride and/or zero pad parameters`),[p,l,h,n]}function rl(e,t,n,r=1){const o=Tr(t,r);return Math.floor((e[0]*(n-1)-n+o)/2)}function ha(e){return typeof e=="number"?[e,e,e]:e.length===2?[e[0],e[1],1]:e}function nl(e){return typeof e=="number"?[e,e,e]:e}function Tr(e,t){return t<=1?e:e+(e-1)*(t-1)}function Ny(e,t,n,r,o,i,a,s,c){let p,l,h;if(typeof e=="number"){const m=e===0?"VALID":"NUMBER";p={top:e,bottom:e,left:e,right:e,type:m};const b=Cy([t,n],i,r,e,s);l=b[0],h=b[1]}else if(e==="same"){l=Math.ceil(t/r),h=Math.ceil(n/o);const m=Math.max(0,(l-1)*r+i-t),b=Math.max(0,(h-1)*o+a-n),y=Math.floor(m/2),w=m-y,L=Math.floor(b/2),v=b-L;p={top:y,bottom:w,left:L,right:v,type:"SAME"}}else if(e==="valid")p={top:0,bottom:0,left:0,right:0,type:"VALID"},l=Math.ceil((t-i+1)/r),h=Math.ceil((n-a+1)/o);else if(typeof e=="object"){const m=c==="channelsLast"?e[1][0]:e[2][0],b=c==="channelsLast"?e[1][1]:e[2][1],y=c==="channelsLast"?e[2][0]:e[3][0],w=c==="channelsLast"?e[2][1]:e[3][1],L=m===0&&b===0&&y===0&&w===0?"VALID":"EXPLICIT";p={top:m,bottom:b,left:y,right:w,type:L},l=On((t-i+m+b)/r+1,s),h=On((n-a+y+w)/o+1,s)}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:p,outHeight:l,outWidth:h}}function Ry(e,t,n,r,o,i,a,s,c,p,l){let h,m,b,y;if(typeof e=="number"){const w=e===0?"VALID":"NUMBER";h={top:e,bottom:e,left:e,right:e,front:e,back:e,type:w};const L=Ey([t,n,r,1],s,1,o,e,l);m=L[0],b=L[1],y=L[2]}else if(e==="same"){m=Math.ceil(t/o),b=Math.ceil(n/i),y=Math.ceil(r/a);const w=(m-1)*o+s-t,L=(b-1)*i+c-n,v=(y-1)*a+p-r,A=Math.floor(w/2),R=w-A,N=Math.floor(L/2),O=L-N,M=Math.floor(v/2),D=v-M;h={top:N,bottom:O,left:M,right:D,front:A,back:R,type:"SAME"}}else if(e==="valid")h={top:0,bottom:0,left:0,right:0,front:0,back:0,type:"VALID"},m=Math.ceil((t-s+1)/o),b=Math.ceil((n-c+1)/i),y=Math.ceil((r-p+1)/a);else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:h,outDepth:m,outHeight:b,outWidth:y}}function On(e,t){if(!t)return e;switch(t){case"round":return Math.round(e);case"ceil":return Math.ceil(e);case"floor":return Math.floor(e);default:throw new Error(`Unknown roundingMode ${t}`)}}function lt(e){const[t,n,r]=ha(e);return t===1&&n===1&&r===1}function pe(e,t){return lt(e)||lt(t)}function hn(e){if(e==="NHWC")return"channelsLast";if(e==="NCHW")return"channelsFirst";throw new Error(`Unknown dataFormat ${e}`)}function Oy(e,t,n,r,o){const i=u(e,"x","avgPool","float32"),a=1;f(pe(n,a),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${n} and dilations '${a}'`);let s=i,c=!1;i.rank===3&&(c=!0,s=x(i,[1,i.shape[0],i.shape[1],i.shape[2]])),f(s.rank===4,()=>`Error in avgPool: x must be rank 4 but got rank ${s.rank}.`),o!=null&&f(X(r),()=>`Error in avgPool: pad must be an integer when using, dimRoundingMode ${o} but got pad ${r}.`);const p=(b,y)=>{const w=At(s.shape,t,n,1,r,o);return y([s]),w.filterWidth===1&&w.filterHeight===1&&Se(w.inShape,w.outShape)?s.clone():b.avgPool(s,w)},l={x:s},h={filterSize:t,strides:n,pad:r,dimRoundingMode:o};let m=g.runKernelFunc(p,l,null,wo,h);return m=E(m,i.dtype),c?x(m,[m.shape[1],m.shape[2],m.shape[3]]):m}const ht=d({avgPool_:Oy});function ky(){ce().set("PROD",!0)}function _y(){ce().set("DEBUG",!0)}function Dy(){ce().set("DEPRECATION_WARNINGS_ENABLED",!1),console.warn("TensorFlow.js deprecation warnings have been disabled.")}function xe(e){ce().getBool("DEPRECATION_WARNINGS_ENABLED")&&console.warn(e+" You can disable deprecation warnings with tf.disableDeprecationWarnings().")}hd(xe);function Fy(){g.disposeVariables()}function My(){return g}function Uy(){return g.memory()}function Wy(e){return g.profile(e)}function F(e,t){return g.tidy(e,t)}function Le(e){const t=Zi(e);t.forEach(n=>n.dispose())}function ol(e){return g.keep(e)}function By(e){return g.time(e)}function $y(e){return g.setBackend(e)}function Gy(){return g.ready()}function jy(){return g.backendName}function Py(e){g.removeBackend(e)}function qy(e){return g.findBackend(e)}function Hy(e){return g.findBackendFactory(e)}function zy(e,t,n=1){return g.registerBackend(e,t,n)}function Yy(){return g.backend}function Vy(e,t){ce().setPlatform(e,t)}function Ky(e,t,n,r,o,i="NDHWC",a){a==null?a=[1,1,1]:xe("dilations is deprecated, this field will be gone in v3.0.0.");const s=u(e,"x","avgPool3d","float32");let c=s,p=!1;s.rank===4&&(p=!0,c=x(s,[1,s.shape[0],s.shape[1],s.shape[2],s.shape[3]])),f(c.rank===5,()=>`Error in avgPool3d: x must be rank 5 but got rank ${c.rank}.`),f(i==="NDHWC",()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${i}`),f(pe(n,a),()=>`Error in avgPool3d: Either strides or dilations must be 1. Got strides ${n} and dilations '${a}'`),o!=null&&f(X(r),()=>`Error in avgPool3d: pad must be an integer when using, dimRoundingMode ${o} but got pad ${r}.`);const l=(y,w)=>{a==null&&(a=[1,1,1]);const L=Kt(c.shape,t,n,a,r,o,i);return w([c]),y.avgPool3d(c,L)},h={x:c},m={filterSize:t,strides:n,pad:r,dimRoundingMode:o,dataFormat:i,dilations:a};let b=g.runKernelFunc(l,h,null,yo,m);return b=E(b,c.dtype),p?x(b,[b.shape[1],b.shape[2],b.shape[3],b.shape[4]]):b}const il=d({avgPool3d_:Ky});function sl(e,t){const n=e[0].length;e.forEach((o,i)=>{f(o.length===n,()=>`Error in concat${n}D: rank of tensors[${i}] must be the same as the rank of the rest (${n})`)}),f(t>=0&&t`Error in concat${n}D: axis must be between 0 and ${n-1}.`);const r=e[0];e.forEach((o,i)=>{for(let a=0;a`Error in concat${n}D: Shape of tensors[${i}] (${o}) does not match the shape of the rest (${r}) along the non-concatenated axis ${i}.`)})}function al(e,t){const n=e[0].slice();for(let r=1;r`Based on the provided shape, [${t}], the tensor should have ${o} values but has ${i}`);for(let a=0;a`Error creating a new Tensor. Inferred shape (${n}) does not match the provided shape (${t}). `)}}return!Ne(e)&&!Array.isArray(e)&&(e=[e]),t=t||n,e=r!=="string"?zi(e,r):Ft(e,[],!0),g.makeTensor(e,t,r)}function Ye(e,t,n){const r=Fe(e,n);return ze(e,t,r,n)}function Jy(e,t=0){f(e.length>=1,()=>"Pass at least one tensor to concat");let n=Vt(e,"tensors","concat");n[0].dtype==="complex64"&&n.forEach(p=>{if(p.dtype!=="complex64")throw new Error(`Cannot concatenate complex64 tensors with a tensor - with dtype ${p.dtype}. `)});const r=z(t,n[0].shape)[0],o=al(n.map(p=>p.shape),r);if(te(o)===0)return Ye([],o);if(n=n.filter(p=>p.size>0),n.length===1)return n[0];const i=n.map(p=>p.shape);sl(i,r);const a=(p,l)=>{const h=p.concat(n,r);return l(n),h},s=n,c={axis:t};return g.runKernelFunc(a,s,null,To,c)}const Q=d({concat_:Jy});function Xy(e,t,n=!1,r=!1){let o=u(e,"a","matMul"),i=u(t,"b","matMul");[o,i]=K(o,i),f(o.rank>=2&&i.rank>=2&&o.rank===i.rank,()=>`Error in matMul: inputs must have the same rank of at least 2, got ranks ${o.rank} and ${i.rank}.`);const a=n?o.shape[o.rank-2]:o.shape[o.rank-1],s=r?i.shape[i.rank-1]:i.shape[i.rank-2],c=n?o.shape[o.rank-1]:o.shape[o.rank-2],p=r?i.shape[i.rank-2]:i.shape[i.rank-1],l=o.shape.slice(0,-2),h=i.shape.slice(0,-2),m=te(l),b=te(h);f(Se(l,h),()=>`Error in matMul: outer dimensions (${l}) and (${h}) of Tensors with shapes ${o.shape} and ${i.shape} must match.`),f(a===s,()=>`Error in matMul: inner shapes (${a}) and (${s}) of Tensors with shapes ${o.shape} and ${i.shape} and transposeA=${n} and transposeB=${r} must match.`);const y=o.shape.slice(0,-2).concat([c,p]),w=n?x(o,[m,a,c]):x(o,[m,c,a]),L=r?x(i,[b,p,s]):x(i,[b,s,p]),v=(O,M)=>(M([w,L]),O.batchMatMul(w,L,n,r)),A={a:w,b:L},R={transposeA:n,transposeB:r},N=g.runKernelFunc(v,A,null,xo,R);return x(N,y)}const Y=d({matMul_:Xy});function Zy(e,t){let n=u(e,"a","mul"),r=u(t,"b","mul");[n,r]=K(n,r);const o=(a,s)=>{const c=a.multiply(n,r);return s([n,r]),c},i={a:n,b:r};return g.runKernelFunc(o,i,null,ii)}const S=d({mul_:Zy});function Qy(e){const t=u(e,"x","sigmoid"),n={x:t};return g.runKernelFunc((r,o)=>{const i=r.sigmoid(t);return o([i]),i},n,null,Ni)}const Nt=d({sigmoid_:Qy});const yd={};me(yd,{assertParamsValid:()=>cl,computeFlatOffset:()=>tx,computeOutShape:()=>pl,isSliceContinous:()=>ex,maskToAxes:()=>es,parseSliceParams:()=>ts,startForAxis:()=>ml,startIndicesWithElidedDims:()=>hl,stopForAxis:()=>fl,stopIndicesWithElidedDims:()=>ul,stridesForAxis:()=>dl,stridesWithElidedDims:()=>ll});function cl(e,t,n){f(e.rank===t.length,()=>`Error in slice${e.rank}D: Length of begin ${t} must match the rank of the array (${e.rank}).`),f(e.rank===n.length,()=>`Error in slice${e.rank}D: Length of size ${n} must match the rank of the array (${e.rank}).`);for(let r=0;r`Error in slice${e.rank}D: begin[${r}] + size[${r}] (${t[r]+n[r]}) would overflow input.shape[${r}] (${e.shape[r]})`)}function es(e){const t=[];let n=0;for(;e>0;)e&1&&t.push(n),e/=2,n++;return t}function pl(e,t,n){const r=[];for(let o=0;o-1)i[s]=0;else{const c=xd(t,n,s);let p=r[c];e&1<-1)i[s]=Number.MAX_SAFE_INTEGER;else{const c=xd(t,n,s);let p=r[c];e&1<0?a=Number.MIN_SAFE_INTEGER:a=Number.MAX_SAFE_INTEGER);const c=r[o];return a<0&&(a+=c),a=wr(0,a,c-1),a}function fl(e,t,n,r,o,i){let a=t[o];const s=n[o]||1;(e&1<0?a=Number.MAX_SAFE_INTEGER:a=Number.MIN_SAFE_INTEGER);const c=r[o];return a<0&&(a+=c),s>0?a=wr(0,a,c):a=wr(-1,a,c-1),a}function ex(e,t,n){let r=n.length;for(let o=0;o1){r=o;break}for(let o=r+1;o0||n[o]!==e[o])return!1;return!0}function tx(e,t){let n=e.length>0?e[e.length-1]:1;for(let r=0;r{f(i!==-1,()=>"slice() does not support negative begin indexing.")});let o;return n==null?o=new Array(e.rank).fill(-1):typeof n=="number"?o=[n,...new Array(e.rank-1).fill(-1)]:n.lengthi>=0?i:(f(i===-1,()=>`Negative size values should be exactly -1 but got ${i} for the slice() size at index ${a}.`),e.shape[a]-r[a])),[r,o]}function nx(e,t,n){const r=u(e,"x","slice");if(r.rank===0)throw new Error("Slicing scalar is not possible");const[o,i]=ts(r,t,n);cl(r,o,i);const a=(p,l)=>(l([r]),p.slice(r,o,i)),s={x:r},c={begin:t,size:n};return g.runKernelFunc(a,s,null,vi,c)}const V=d({slice_:nx});function rx(e){const t=u(e,"x","tanh"),n={x:t};return g.runKernelFunc((r,o)=>{const i=r.tanh(t);return o([i]),i},n,null,Ui)}const Ar=d({tanh_:rx});function ox(e,t,n,r,o,i){const a=u(e,"forgetBias","basicLSTMCell"),s=u(t,"lstmKernel","basicLSTMCell"),c=u(n,"lstmBias","basicLSTMCell"),p=u(r,"data","basicLSTMCell"),l=u(o,"c","basicLSTMCell"),h=u(i,"h","basicLSTMCell"),m=Q([p,h],1),b=Y(m,s),y=C(b,c),w=y.shape[0],L=y.shape[1]/4,v=[w,L],A=V(y,[0,0],v),R=V(y,[0,L],v),N=V(y,[0,L*2],v),O=V(y,[0,L*3],v),M=C(S(Nt(A),Ar(R)),S(l,Nt(C(a,N)))),D=S(Ar(M),Nt(O));return[M,D]}const gl=d({basicLSTMCell_:ox});function ix(e,t,n){const r=u(e,"x","batchToSpaceND"),o=t.reduce((c,p)=>c*p);f(r.rank>=1+t.length,()=>`input rank is ${r.rank} but should be > than blockShape.length ${t.length}`),f(n.length===t.length,()=>`crops.length is ${n.length} but should be equal to blockShape.length ${t.length}`),f(r.shape[0]%o===0,()=>`input tensor batch is ${r.shape[0]} but is not divisible by the product of the elements of blockShape ${t.join(" * ")} === ${o}`);const i=c=>c.batchToSpaceND(r,t,n),a={x:r},s={blockShape:t,crops:n};return g.runKernelFunc(i,a,null,Lo,s)}const kn=d({batchToSpaceND_:ix});function Sd(e){let t;return e.rank===0||e.rank===1?t=x(e,[1,1,1,e.size]):e.rank===2?t=x(e,[1,1,e.shape[0],e.shape[1]]):e.rank===3?t=x(e,[1,e.shape[0],e.shape[1],e.shape[2]]):t=e,t}function sx(e,t,n,r,o,i){i==null&&(i=.001);const a=u(e,"x","batchNorm"),s=u(t,"mean","batchNorm"),c=u(n,"variance","batchNorm");let p;o!=null&&(p=u(o,"scale","batchNorm"));let l;r!=null&&(l=u(r,"offset","batchNorm")),f(s.rank===c.rank,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),f(l==null||s.rank===l.rank,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),f(p==null||s.rank===p.rank,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");const h=Sd(a),m=(L,v)=>(v([h,s,c,p]),L.batchNorm(h,ua(s),ua(c),ua(l),ua(p),i)),b={x:h,scale:p,offset:l,mean:s,variance:c},y={varianceEpsilon:i},w=g.runKernelFunc(m,b,null,Go,y);return x(w,a.shape)}function ua(e){return e==null?null:e.rank===0?x(e,[e.size]):e.rank===1?e:e.rank===2?x(e,[1,1,e.shape[0],e.shape[1]]):e.rank===3?x(e,[1,e.shape[0],e.shape[1],e.shape[2]]):e}const Jt=d({batchNorm_:sx});function ax(e,t,n,r,o,i){const a=u(e,"x","batchNorm"),s=u(t,"mean","batchNorm"),c=u(n,"variance","batchNorm");let p;o!=null&&(p=u(o,"scale","batchNorm"));let l;return r!=null&&(l=u(r,"offset","batchNorm")),f(a.rank===2,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${a.rank}.`),f(s.rank===2||s.rank===1,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${s.rank}.`),f(c.rank===2||c.rank===1,()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${c.rank}.`),p!=null&&f(p.rank===2||p.rank===1,()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${p.rank}.`),l!=null&&f(l.rank===2||l.rank===1,()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${l.rank}.`),Jt(a,s,c,l,p,i)}const bl=d({batchNorm2d_:ax});function cx(e,t,n,r,o,i){const a=u(e,"x","batchNorm"),s=u(t,"mean","batchNorm"),c=u(n,"variance","batchNorm");let p;o!=null&&(p=u(o,"scale","batchNorm"));let l;return r!=null&&(l=u(r,"offset","batchNorm")),f(a.rank===3,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${a.rank}.`),f(s.rank===3||s.rank===1,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${s.rank}.`),f(c.rank===3||c.rank===1,()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${c.rank}.`),p!=null&&f(p.rank===3||p.rank===1,()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${p.rank}.`),l!=null&&f(l.rank===3||l.rank===1,()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${l.rank}.`),Jt(a,s,c,l,p,i)}const wl=d({batchNorm3d_:cx});function px(e,t,n,r,o,i){const a=u(e,"x","batchNorm"),s=u(t,"mean","batchNorm"),c=u(n,"variance","batchNorm");let p;o!=null&&(p=u(o,"scale","batchNorm"));let l;return r!=null&&(l=u(r,"offset","batchNorm")),f(a.rank===4,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${a.rank}.`),f(s.rank===4||s.rank===1,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${s.rank}.`),f(c.rank===4||c.rank===1,()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${c.rank}.`),p!=null&&f(p.rank===4||p.rank===1,()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${p.rank}.`),l!=null&&f(l.rank===4||l.rank===1,()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${l.rank}.`),Jt(a,s,c,l,p,i)}const yl=d({batchNorm4d_:px});function lx(e){const t=u(e,"x","clone",null),n=()=>g.makeTensorFromDataId(t.dataId,t.shape,t.dtype),r={x:t};return g.runKernelFunc(n,r,null,qo)}const Rt=d({clone_:lx});function hx(e,t){let n=u(e,"broadcastTo","x");const r=n.shape;if(t.some(l=>!(l>0)||l%1!==0))throw new Error(`broadcastTo(): Invalid broadcast shape [${t}].`);if(t.lengthn.rank){const l=n.shape.slice();for(;l.length=0;l--)if(o[l]===t[l])i[l]=1;else if(n.shape[l]!==1)throw new Error(`broadcastTo(): [${r}] cannot be broadcast to [${t}].`);const a=i.map((l,h)=>l>1?h:-1).filter(l=>l>=0);if(a.length===0)return Rt(n);const s=l=>l.tile(n,i),c={x:n},p={shape:t,inputShape:o};return g.runKernelFunc(s,c,null,So,p)}const Nr=d({broadcastTo_:hx});function Me(e,t="float32",n){return t=t||"float32",Vi(e),new Sr(e,t,n)}function ux(e){const t=u(e,"x","ceil"),n={x:t};return g.runKernelFunc(r=>r.ceil(t),n,null,vo)}const xl=d({ceil_:ux});function dx(e,t,n){const r=u(e,"x","clipByValue");f(t<=n,()=>`Error in clip: min (${t}) must be less than or equal to max (${n}).`);const o={x:r},i={clipValueMin:t,clipValueMax:n};return g.runKernelFunc((a,s)=>{const c=a.clip(r,t,n);return s([r]),c},o,null,Io,i)}const Ll=d({clipByValue_:dx});function mx(e,t){const n=u(e,"real","complex"),r=u(t,"imag","complex");P(n.shape,r.shape,`real and imag shapes, ${n.shape} and ${r.shape}, must match in call to tf.complex().`);const o=a=>a.complex(n,r),i={real:n,imag:r};return g.runKernelFunc(o,i,null,_c)}const Ve=d({complex_:mx});function fx(e){return Q(e,0)}const Sl=d({concat1d_:fx});function gx(e,t){return Q(e,t)}const vl=d({concat2d_:gx});function bx(e,t){return Q(e,t)}const Il=d({concat3d_:bx});function wx(e,t){return Q(e,t)}const Tl=d({concat4d_:wx});function yx(e,t,n,r,o="NHWC",i=[1,1],a){const s=u(e,"x","conv2d"),c=u(t,"filter","conv2d");let p=s,l=!1;s.rank===3&&(l=!0,p=x(s,[1,s.shape[0],s.shape[1],s.shape[2]])),f(p.rank===4,()=>`Error in conv2d: input must be rank 4, but got rank ${p.rank}.`),f(c.rank===4,()=>`Error in conv2d: filter must be rank 4, but got rank ${c.rank}.`),a!=null&&f(X(r),()=>`Error in conv2d: pad must be an integer when using, dimRoundingMode ${a} but got pad ${r}.`);const h=o==="NHWC"?p.shape[3]:p.shape[1];f(h===c.shape[2],()=>`Error in conv2d: depth of input (${h}) must match input depth for filter ${c.shape[2]}.`),f(pe(n,i),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`);const m=(L,v)=>{const A=hn(o),R=$e(p.shape,c.shape,n,i,r,a,!1,A),N=L.conv2d(p,c,R);return v([p,c]),N},b={x:p,filter:c},y={strides:n,pad:r,dataFormat:o,dilations:i,dimRoundingMode:a},w=g.runKernelFunc(m,b,null,Ao,y);return l?x(w,[w.shape[1],w.shape[2],w.shape[3]]):w}const ve=d({conv2d_:yx});function xx(e,t,n,r,o="NWC",i=1,a){const s=u(e,"x","conv1d"),c=u(t,"filter","conv1d");let p=s,l=!1;s.rank===2&&(l=!0,p=x(s,[1,s.shape[0],s.shape[1]])),f(p.rank===3,()=>`Error in conv1d: input must be rank 3, but got rank ${p.rank}.`),f(c.rank===3,()=>`Error in conv1d: filter must be rank 3, but got rank ${c.rank}.`),a!=null&&f(X(r),()=>`Error in conv1d: pad must be an integer when using, dimRoundingMode ${a} but got pad ${r}.`),f(p.shape[2]===c.shape[1],()=>`Error in conv1d: depth of input (${p.shape[2]}) must match input depth for filter ${c.shape[1]}.`),f(pe(n,i),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${n} and dilation '${i}'`),f(o==="NWC",()=>`Error in conv1d: got dataFormat of ${o} but only NWC is currently supported.`);const h=x(c,[1,c.shape[0],c.shape[1],c.shape[2]]),m=x(p,[p.shape[0],1,p.shape[1],p.shape[2]]),b=[1,n],y=[1,i],w="NHWC",L=ve(m,h,b,r,w,y,a);return l?x(L,[L.shape[2],L.shape[3]]):x(L,[L.shape[0],L.shape[2],L.shape[3]])}const Al=d({conv1d_:xx});function Lx(e,t,n,r,o,i="NHWC",a){f(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let s=e,c=t,p=!1;t.rank===3&&(p=!0,c=x(t,[1,t.shape[0],t.shape[1],t.shape[2]]),s=[1,e[0],e[1],e[2]]),f(s.length===4,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${s.length}.`),f(c.rank===4,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${c.rank}`),f(n.rank===4,()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${n.rank}`);const l=i==="NHWC"?s[3]:s[1],h=i==="NHWC"?c.shape[3]:c.shape[1];f(l===n.shape[2],()=>`Error in conv2dDerInput: depth of input (${l}) must match input depth for filter ${n.shape[2]}.`),f(h===n.shape[3],()=>`Error in conv2dDerInput: depth of output (${h}) must match output depth for filter ${n.shape[3]}.`),a!=null&&f(X(o),()=>`Error in conv2dDerInput: pad must be an integer when using, dimRoundingMode ${a} but got pad ${o}.`);const m=(L,v)=>{const A=1,R=hn(i),N=$e(s,n.shape,r,A,o,a,!1,R),O=L.conv2dDerInput(c,n,N);return v([c,n]),O},b={dy:c,filter:n},y={strides:r,pad:o,dataFormat:i,dimRoundingMode:a,inputShape:s},w=g.runKernelFunc(m,b,null,No,y);return p?x(w,[w.shape[1],w.shape[2],w.shape[3]]):w}const Rr=d({conv2DBackpropInput_:Lx});function Sx(e,t,n,r,o,i){const a=u(e,"x","conv2dTranspose"),s=u(t,"filter","conv2dTranspose");return Rr(n,a,s,r,o,"NHWC",i)}const Nl=d({conv2dTranspose_:Sx});function vx(e,t,n,r,o="NDHWC",i=[1,1,1]){const a=u(e,"x","conv3d"),s=u(t,"filter","conv3d");let c=a,p=!1;a.rank===4&&(p=!0,c=x(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]])),f(c.rank===5,()=>`Error in conv3d: input must be rank 5, but got rank ${c.rank}.`),f(s.rank===5,()=>`Error in conv3d: filter must be rank 5, but got rank ${s.rank}.`),f(c.shape[4]===s.shape[3],()=>`Error in conv3d: depth of input (${c.shape[4]}) must match input depth for filter ${s.shape[3]}.`),f(pe(n,i),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`),f(o==="NDHWC",()=>`Error in conv3d: got dataFormat of ${o} but only NDHWC is currently supported.`);const l=(y,w)=>{const L=un(c.shape,s.shape,n,i,r),v=y.conv3d(c,s,L);return w([c,s]),v},h={x:c,filter:s},m={strides:n,pad:r,dataFormat:o,dilations:i},b=g.runKernelFunc(l,h,null,Ro,m);return p?x(b,[b.shape[1],b.shape[2],b.shape[3],b.shape[4]]):b}const Rl=d({conv3d_:vx});function Ix(e,t,n,r,o){f(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let i=e,a=t,s=!1;t.rank===4&&(s=!0,a=x(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]]),i=[1,e[0],e[1],e[2],e[3]]);const c=i[4],p=a.shape[4];f(i.length===5,()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${i.length}.`),f(a.rank===5,()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${a.rank}`),f(n.rank===5,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${n.rank}`),f(c===n.shape[3],()=>`Error in conv3dDerInput: depth of input (${c}) must match input depth for filter ${n.shape[3]}.`),f(p===n.shape[4],()=>`Error in conv3dDerInput: depth of output (${p}) must match output depth for filter ${n.shape[4]}.`);const l=y=>{const w=1,L=un(i,n.shape,r,w,o);return y.conv3dDerInput(a,n,L)},h={dy:a},m={pad:o},b=g.runKernelFunc(l,h,null,Mc,m);return s?x(b,[b.shape[1],b.shape[2],b.shape[3],b.shape[4]]):b}const da=d({conv3DBackpropInput_:Ix});function Tx(e,t,n,r,o){const i=u(e,"x","conv3dTranspose"),a=u(t,"filter","conv3dTranspose");return da(n,i,a,r,o)}const Cl=d({conv3dTranspose_:Tx});function Ax(e){const t=u(e,"x","cos"),n={x:t};return g.runKernelFunc((r,o)=>{const i=r.cos(t);return o([t]),i},n,null,Co)}const _n=d({cos_:Ax});function Nx(e){const t=u(e,"x","cosh"),n={x:t};return g.runKernelFunc((r,o)=>{const i=r.cosh(t);return o([t]),i},n,null,Eo)}const ns=d({cosh_:Nx});function Rx(e,t=0,n=!1,r=!1){const o=u(e,"x","cumsum"),i=(c,p)=>{const l=fe([t],o.rank);let h=o;l!=null&&(h=Z(o,l));const m=De(1,o.rank)[0];let b=c.cumsum(h,m,n,r);if(p([o]),l!=null){const y=En(l);b=Z(b,y)}return b},a={x:o},s={axis:t,exclusive:n,reverse:r};return g.runKernelFunc(i,a,null,Oo,s)}const rs=d({cumsum_:Rx});function Cx(e,t,n="NHWC"){const r=u(e,"x","depthToSpace"),o=n==="NHWC"?r.shape[1]:r.shape[2],i=n==="NHWC"?r.shape[2]:r.shape[3],a=n==="NHWC"?r.shape[3]:r.shape[1];f(o*t>=0,()=>`Negative dimension size caused by overflow when multiplying - ${o} and ${t} for depthToSpace with input shape - ${r.shape}`),f(i*t>=0,()=>`Negative dimension size caused by overflow when multiplying - ${i} and ${t} for depthToSpace with input shape - ${r.shape}`),f(a%(t*t)===0,()=>`Dimension size must be evenly divisible by ${t*t} but is ${a} for depthToSpace with input shape ${r.shape}`);const s=l=>l.depthToSpace(r,t,n),c={x:r},p={blockSize:t,dataFormat:n};return g.runKernelFunc(s,c,null,Wc,p)}const El=d({depthToSpace_:Cx});function Ex(e,t,n,r,o="NHWC",i=[1,1],a){const s=u(e,"x","depthwiseConv2d"),c=u(t,"filter","depthwiseConv2d");let p=s,l=!1;s.rank===3&&(l=!0,p=x(s,[1,s.shape[0],s.shape[1],s.shape[2]])),f(p.rank===4,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${p.rank}.`),f(c.rank===4,()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${c.rank}.`),f(p.shape[3]===c.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${p.shape[3]}) must match the inChannels dimension in filter ${c.shape[2]}.`),a!=null&&f(X(r),()=>`Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode ${a} but got pad ${r}.`);const h=(w,L)=>{i==null&&(i=[1,1]),f(pe(n,i),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`);const v=$e(p.shape,c.shape,n,i,r,a,!0),A=w.depthwiseConv2D(p,c,v);return L([p,c]),A},m={x:p,filter:c},b={strides:n,pad:r,dataFormat:o,dilations:i,dimRoundingMode:a},y=g.runKernelFunc(h,m,null,ko,b);return l?x(y,[y.shape[1],y.shape[2],y.shape[3]]):y}const Dn=d({depthwiseConv2d_:Ex});function Ox(e){const t=u(e,"x","diag"),n=o=>{const i=x(t,[t.size]),a=o.diag(i),s=[...e.shape,...e.shape];return x(a,s)},r={x:t};return g.runKernelFunc(n,r,null,Gc)}const Ol=d({diag_:Ox});function kx(e,t,n,r,o=[1,1],i="NHWC"){const a=u(e,"x","dilation2d"),s=u(t,"filter","dilation2d");f(a.rank===3||a.rank===4,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${a.rank}.`),f(s.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${s.rank}.`),f(i==="NHWC",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${i}`);let c=a,p=!1;a.rank===3&&(c=x(a,[1,a.shape[0],a.shape[1],a.shape[2]]),p=!0);const l={x:c,filter:s},h={strides:n,pad:r,dilations:o},m=g.runKernel(_o,l,h);return p?x(m,[m.shape[1],m.shape[2],m.shape[3]]):m}const kl=d({dilation2d_:kx});function _x(e,t){let n=u(e,"a","floorDiv"),r=u(t,"b","floorDiv");[n,r]=K(n,r);const o=(a,s)=>{const c=a.floorDiv(n,r);return s([n,r]),c},i={a:n,b:r};return g.runKernelFunc(o,i,null,$o)}const os=d({floorDiv_:_x});function Dx(e,t){let n=u(e,"a","div"),r=u(t,"b","div");if([n,r]=K(n,r),n.dtype==="int32"&&r.dtype==="int32")return os(n,r);const o=(s,c)=>{const p=s.realDivide(n,r);return c([n,r]),p},i={a:n,b:r},a={};return g.runKernelFunc(o,i,null,Do,a)}const U=d({div_:Dx});function Fx(e,t){const n=e.length,r=[];for(let o=0;o1&&a===1&&r.unshift(i)}return r}function ae(e,t){const n=[];for(let r=0;r1)&&n.unshift(i)}return n}function q(e,t){const n=[],r=Math.max(e.length,t.length);for(let o=0;oa.equal(n,r),i={a:n,b:r};return g.runKernelFunc(o,i,null,Hc)}const Xt=d({equal_:Mx});function Ux(e,t,n){const r=u(t,"a","where"),o=u(n,"b","where"),i=u(e,"condition","where","bool"),a=q(r.shape,o.shape),s=Nr(r,a),c=Nr(o,a);i.rank===1&&f(i.shape[0]===r.shape[0],()=>"The first dimension of `a` must match the size of `condition`."),i.rank!==1&&P(i.shape,c.shape,"Error in where: ");const p=(h,m)=>{const b=h.select(i,s,c);return m([i]),b},l={condition:i,t:s,e:c};return g.runKernelFunc(p,l,null,Li)}const Ee=d({where_:Ux});function Wx(e){const t=u(e,"x","zerosLike"),n={x:t};return g.runKernelFunc(r=>r.zerosLike(t),n,null,ji)}const B=d({zerosLike_:Wx});function Bx(e,t){let n=u(e,"a","div"),r=u(t,"b","div");[n,r]=K(n,r);const o=U(n,r),i=B(o),a=Xt(r,i);return Ee(a,i,o)}const _l=d({divNoNan_:Bx});function $x(e,t){const n=u(e,"t1","dot"),r=u(t,"t2","dot");f((n.rank===1||n.rank===2)&&(r.rank===1||r.rank===2),()=>`Error in dot: inputs must all be rank 1 or 2, but got ranks ${n.rank} and ${r.rank}.`);const o=n.rank===1?n.size:n.shape[1],i=r.rank===1?r.size:r.shape[0];if(f(o===i,()=>`Error in dot: inner dimensions of inputs must match, but got ${o} and ${i}.`),n.rank===1&&r.rank===1){const a=x(n,[1,-1]),s=x(r,[-1,1]),c=Y(a,s);return x(c,[])}else if(n.rank===1&&r.rank===2){const a=x(n,[1,-1]),s=x(r,[r.shape[0],r.shape[1]]),c=Y(a,s);return x(c,[c.size])}else if(n.rank===2&&r.rank===1){const a=x(r,[-1,1]),s=Y(n,a);return x(s,[s.size])}else{const a=x(r,[r.shape[0],r.shape[1]]),s=Y(n,a);return s}}const Dl=d({dot_:$x});function Gx(e){const t=u(e,"x","elu"),n=(o,i)=>{const a=o.elu(t);return i([a]),a},r={x:t};return g.runKernelFunc(n,r,null,Fo)}const is=d({elu_:Gx});function jx(e){let t=u(e,"x","erf");f(t.dtype==="int32"||t.dtype==="float32",()=>"Input dtype must be `int32` or `float32`."),t.dtype==="int32"&&(t=E(t,"float32"));const n={x:t};return g.runKernelFunc((r,o)=>{const i=r.erf(t);return o([t]),i},n,null,Mo)}const Fl=d({erf_:jx});function Px(e){const t=u(e,"x","exp"),n={x:t};return g.runKernelFunc((r,o)=>{const i=r.exp(t);return o([i]),i},n,null,Uo)}const Oe=d({exp_:Px});function qx(e,t=0){const n=null,r=u(e,"x","expandDims",n);f(t<=r.rank,()=>"Axis must be <= rank of the tensor");const o=r.shape.slice();return t<0&&(f(-(r.rank+1)<=t,()=>`Axis must be in the interval [${-(r.rank+1)}, ${r.rank}]`),t=r.rank+t+1),o.splice(t,0,1),x(r,o)}const et=d({expandDims_:qx});function Hx(e){const t=u(e,"x","expm1"),n={x:t};return g.runKernelFunc((r,o)=>{const i=r.expm1(t);return o([t]),i},n,null,Wo)}const Ml=d({expm1_:Hx});function zx(e,t){const n=null,r=u(e,"x","tile",n);f(r.rank===t.length,()=>`Error in transpose: rank of input ${r.rank} must match length of reps ${t}.`);const o=(c,p)=>{const l=c.tile(r,t);return p([r]),l},i=[r],a={x:r},s={reps:t};return g.runKernelFunc(o,a,null,Wi,s,i)}const Zt=d({tile_:zx});function Yx(e,t,n,r="float32"){t==null&&(t=e);const o=Me([e,t],r),i=e<=t?e:t;for(let s=0;s`The dtype for tf.spectral.fft() must be complex64 but got ${e.dtype}.`);const t={input:e};return g.runKernelFunc(n=>{const r=e.shape[e.shape.length-1],o=e.size/r,i=e.as2D(o,r),a=n.fft(i);return a.reshape(e.shape)},t,null,zc)}const Fn=d({fft_:Vx});function Ge(e,t,n){const r={shape:e,value:t,dtype:n};return g.runKernelFunc(o=>o.fill(e,t,n),{},null,Yc,r)}function Kx(e){const t=u(e,"x","floor"),n={x:t};return g.runKernelFunc(r=>r.floor(t),n,null,Bo)}const Mn=d({floor_:Kx});const ma=30;function Jx(e){return e<=ma?e:Lr(e,Math.floor(Math.sqrt(e)))}const vd={};me(vd,{collectGatherOpShapeInfo:()=>Ul,computeOutShape:()=>Zx,segOpComputeOptimalWindowSize:()=>Xx});function Xx(e,t){let n=!1,r;for(e<=ma?(r=e,n=!0):r=Lr(e,Math.floor(Math.sqrt(e)));!n;)r>t||r===e?n=!0:r=Lr(e,r+1);return r}function Zx(e,t,n){const r=[],o=e.length;for(let i=0;i{const l=z(n,r.shape)[0],h=Ul(r,o,l),m=c.gather(r,x(o,[o.size]),l);return p([r,o]),x(m,h.outputShape)};return g.runKernelFunc(s,i,null,jo,a)}const Un=d({gather_:Qx});function eL(e,t){let n=u(e,"a","greater"),r=u(t,"b","greater");[n,r]=K(n,r),q(n.shape,r.shape);const o=a=>a.greater(n,r),i={a:n,b:r};return g.runKernelFunc(o,i,null,Jc)}const tt=d({greater_:eL});function tL(e,t){let n=u(e,"a","greaterEqual"),r=u(t,"b","greaterEqual");[n,r]=K(n,r),q(n.shape,r.shape);const o=(a,s)=>{const c=a.greaterEqual(n,r);return s([n,r]),c},i={a:n,b:r};return g.runKernelFunc(o,i,null,Po)}const ut=d({greaterEqual_:tL});function nL(e){f(e.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${e.dtype}.`);const t={input:e};return g.runKernelFunc(n=>{const r=e.shape[e.shape.length-1],o=e.size/r,i=x(e,[o,r]),a=n.ifft(i);return x(a,e.shape)},t,null,Xc)}const dn=d({ifft_:nL});function rL(e){const t=u(e,"input","imag"),n=o=>o.imag(t),r={input:t};return g.runKernelFunc(n,r,null,Zc)}const Qt=d({imag_:rL});function oL(e){const t=u(e,"input","real"),n=o=>o.real(t),r={input:t};return g.runKernelFunc(n,r,null,fp)}const Gt=d({real_:oL});function iL(e,t){const n=u(e,"x","reverse"),r=a=>{const s=z(t,n.shape);if(n.rank===0)return Rt(n);const c=a.reverse(n,s);return x(c,n.shape)},o={x:n},i={dims:t};return g.runKernelFunc(r,o,null,wi,i)}const Ke=d({reverse_:iL});function k(e,t){if((Ne(e)&&t!=="string"||Array.isArray(e))&&t!=="complex64")throw new Error("Error creating a new Scalar: value must be a primitive (number|boolean|string)");if(t==="string"&&Ne(e)&&!(e instanceof Uint8Array))throw new Error("When making a scalar from encoded string, the value must be `Uint8Array`.");const n=[],r=[];return ze(e,n,r,t)}function sL(e){const t=e.shape[e.shape.length-1],n=e.size/t;let r;if(t<=2){const o=x(e,[n,t]);r=dn(o)}else{const o=[n,2*(t-1)],i=x(Gt(e),[n,t]),a=x(Qt(e),[n,t]),s=Ke(V(i,[0,1],[n,t-2]),1),c=S(Ke(V(a,[0,1],[n,t-2]),1),k(-1)),p=Q([i,s],1),l=Q([a,c],1),h=x(Ve(p,l),[o[0],o[1]]);r=dn(h)}if(r=Gt(r),e.rank===3&&e.shape[0]!==0){const o=r,i=e.shape[0];r=x(r,[i,r.shape[0]/i,r.shape[1]]),o.dispose()}return r}const as=d({irfft_:sL});function aL(e){const t=u(e,"x","isFinite"),n={x:t};return g.runKernelFunc(r=>r.isFinite(t),n,null,Ho)}const Wl=d({isFinite_:aL});function cL(e){const t=u(e,"x","isInf"),n={x:t};return g.runKernelFunc(r=>r.isInf(t),n,null,zo)}const Bl=d({isInf_:cL});function pL(e){const t=u(e,"x","isNaN"),n={x:t};return g.runKernelFunc(r=>r.isNaN(t),n,null,Yo)}const $l=d({isNaN_:pL});function lL(e,t){let n=u(e,"a","maximum"),r=u(t,"b","maximum");[n,r]=K(n,r),n.dtype==="bool"&&(n=E(n,"int32"),r=E(r,"int32")),q(n.shape,r.shape);const o=(a,s)=>{const c=a.maximum(n,r);return s([n,r]),c},i={a:n,b:r};return g.runKernelFunc(o,i,null,Qo)}const Ct=d({maximum_:lL});function hL(e,t=.2){const n=u(e,"x","leakyRelu");return Ct(S(k(t),n),n)}const Gl=d({leakyRelu_:hL});function uL(e,t){let n=u(e,"a","less"),r=u(t,"b","less");[n,r]=K(n,r),q(n.shape,r.shape);const o=a=>a.less(n,r),i={a:n,b:r};return g.runKernelFunc(o,i,null,Qc)}const Wn=d({less_:uL});function dL(e,t){let n=u(e,"a","lessEqual"),r=u(t,"b","lessEqual");[n,r]=K(n,r),q(n.shape,r.shape);const o=(a,s)=>{const c=a.lessEqual(n,r);return s([n,r]),c},i={a:n,b:r};return g.runKernelFunc(o,i,null,ep)}const dt=d({lessEqual_:dL});function jl(e,t,n){if(n<=0)throw new Error("The number of values should be positive.");const r={start:e,stop:t,num:n};return g.runKernelFunc(o=>o.linspace(e,t,n),{},null,tp,r)}function mL(e,t=5,n=1,r=1,o=.5){const i=u(e,"x","localResponseNormalization");f(i.rank===4||i.rank===3,()=>`Error in localResponseNormalization: x must be rank 3 or 4 but got - rank ${i.rank}.`),f(X(t),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`);let a=i,s=!1;i.rank===3&&(s=!0,a=x(i,[1,i.shape[0],i.shape[1],i.shape[2]]));const c=(m,b)=>{const y=m.localResponseNormalization4D(a,t,n,r,o);return b([a,y]),y},p={x:a},l={depthRadius:t,bias:n,alpha:r,beta:o},h=g.runKernelFunc(c,p,null,Xo,l);return s?x(h,[h.shape[1],h.shape[2],h.shape[3]]):h}const Pl=d({localResponseNormalization_:mL});function fL(e){const t=u(e,"x","log"),n={x:t};return g.runKernelFunc((r,o)=>{const i=r.log(t);return o([t]),i},n,null,Vo)}const wt=d({log_:fL});function gL(e){const t=u(e,"x","log1p"),n={x:t};return g.runKernelFunc((r,o)=>{const i=r.log1p(t);return o([t]),i},n,null,Ko)}const cs=d({log1p_:gL});function bL(e){return f(Mt(e),()=>"The f passed in grad(f) must be a function"),(t,n)=>{const r=u(t,"x","tf.grad",null),o=n!=null?u(n,"dy","tf.grad"):null;return g.tidy(()=>{const{value:i,grads:a}=g.gradients(()=>e(r),[r],o);return o!=null&&P(i.shape,o.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),fa(a),a[0]})}}function wL(e){return f(Mt(e),()=>"The f passed in grads(f) must be a function"),(t,n)=>{f(Array.isArray(t),()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s");const r=Vt(t,"args","tf.grads",null),o=n!=null?u(n,"dy","tf.grads"):null;return g.tidy(()=>{const{value:i,grads:a}=g.gradients(()=>e(...r),r,o);return o!=null&&P(i.shape,o.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),fa(a),a})}}function yL(e){return f(Mt(e),()=>"The f passed in valueAndGrad(f) must be a function"),(t,n)=>{f(t instanceof ne,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),f(n==null||n instanceof ne,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");const{grads:r,value:o}=g.gradients(()=>e(t),[t],n);return fa(r),{grad:r[0],value:o}}}function xL(e){return f(Mt(e),()=>"The f passed in valueAndGrads(f) must be a function"),(t,n)=>{f(Array.isArray(t)&&t.every(o=>o instanceof ne),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),f(n==null||n instanceof ne,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");const r=g.gradients(()=>e(...t),t,n);return n!=null&&P(r.value.shape,n.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),fa(r.grads),r}}function ql(e,t){f(Mt(e),()=>"The f passed in variableGrads(f) must be a function"),f(t==null||Array.isArray(t)&&t.every(p=>p instanceof $t),()=>"The varList passed in variableGrads(f, varList) must be an array of variables");const n=t!=null;if(!n){t=[];for(const p in g.registeredVariables)t.push(g.registeredVariables[p])}const r=n?t.filter(p=>!p.trainable):null,o=t.length;t=t.filter(p=>p.trainable),f(t.length>0,()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${o} variables is trainable.`);const i=!0,{value:a,grads:s}=g.gradients(e,t,null,i);f(s.some(p=>p!=null),()=>"Cannot find a connection between any variable and the result of the loss function y=f(x). Please make sure the operations that use variables are inside the function f passed to minimize()."),f(a.rank===0,()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${a.rank} tensor`);const c={};return t.forEach((p,l)=>{s[l]!=null&&(c[p.name]=s[l])}),r!=null&&r.forEach(p=>c[p.name]=null),{value:a,grads:c}}function Je(e){return g.customGrad(e)}function fa(e){const t=e.filter(n=>n==null).length;if(t>0)throw new Error(`Cannot compute gradient of y=f(x) with respect to x. Make sure that - the f you passed encloses all operations that lead from x to y.`)}function LL(e){const t=u(e,"x","neg"),n={x:t};return g.runKernelFunc(r=>r.neg(t),n,null,si)}const re=d({neg_:LL});function SL(e){const t=u(e,"x","softplus"),n={x:t};return g.runKernelFunc((r,o)=>{const i=r.softplus(t);return o([t]),i},n,null,Ri)}const ps=d({softplus_:SL});function vL(e){const t=u(e,"x","logSigmoid"),n=Je(r=>{const o=re(ps(re(r))),i=a=>{const s=S(a,Nt(re(r)));return s};return{value:o,gradFunc:i}});return n(t)}const Hl=d({logSigmoid_:vL});function IL(e,t=null,n=!1){const r=u(e,"x","max"),o=(s,c)=>{const p=z(t,r.shape);let l=p;const h=fe(l,r.rank);let m=r;h!=null&&(m=Z(r,h),l=De(l.length,m.rank));const b=s.max(m,l);h!=null&&m.dispose();let y=b;if(n){const w=we(y.shape,z(t,r.shape));y=x(y,w),b.dispose()}return c([r,y]),y},i={x:r},a={reductionIndices:t,keepDims:n};return g.runKernelFunc(o,i,null,Zo,a)}const mt=d({max_:IL});function TL(e,t){let n=u(e,"a","sub"),r=u(t,"b","sub");[n,r]=K(n,r);const o=(a,s)=>{const c=a.subtract(n,r);return s([n,r]),c},i={a:n,b:r};return g.runKernelFunc(o,i,null,Fi)}const _=d({sub_:TL});function AL(e,t=null,n=!1){let r=u(e,"x","sum");r.dtype==="bool"&&(r=E(r,"int32"));const o=(s,c)=>{c([r]);const p=z(t,r.shape),l=fe(p,r.rank);let h=p,m=r;l!=null&&(m=Z(r,l),h=De(h.length,r.rank));let b=s.sum(m,h);if(n){const y=we(b.shape,p);b=x(b,y)}return b},i={x:r},a={axis:t,keepDims:n};return g.runKernelFunc(o,i,null,Ei,a)}const W=d({sum_:AL});function NL(e,t=-1){const n=u(e,"logits","logSoftmax");if(t===-1&&(t=n.rank-1),t!==n.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${n.rank} and axis was ${t}`);const r=(a,s)=>{const c=!0,p=mt(e,t,!0),l=_(e,p),h=_(E(l,"float32"),wt(W(Oe(l),t,c)));return s([h]),h},o={logits:n},i={axis:t};return g.runKernelFunc(r,o,null,Jo,i)}const zl=d({logSoftmax_:NL});function RL(e,t=null,n=!1){const r=u(e,"x","logSumExp"),o=z(t,r.shape),i=mt(r,o,!0),a=_(r,i),s=Oe(a),c=W(s,o),p=wt(c),l=C(x(i,p.shape),p);if(n){const h=we(l.shape,o);return x(l,h)}return l}const ls=d({logSumExp_:RL});function CL(e,t){const n=u(e,"a","logicalAnd","bool"),r=u(t,"b","logicalAnd","bool");q(n.shape,r.shape);const o={a:n,b:r};return g.runKernelFunc(i=>i.logicalAnd(n,r),o,null,np)}const yt=d({logicalAnd_:CL});function EL(e){const t=u(e,"x","logicalNot","bool"),n={x:t};return g.runKernelFunc(r=>r.logicalNot(t),n,null,rp)}const Bn=d({logicalNot_:EL});function OL(e,t){const n=u(e,"a","logicalOr","bool"),r=u(t,"b","logicalOr","bool");q(n.shape,r.shape);const o={a:n,b:r};return g.runKernelFunc(i=>i.logicalOr(n,r),o,null,op)}const hs=d({logicalOr_:OL});function kL(e,t){const n=u(e,"a","logicalXor","bool"),r=u(t,"b","logicalXor","bool");return q(n.shape,r.shape),yt(hs(e,t),Bn(yt(e,t)))}const Yl=d({logicalXor_:kL});function _L(e,t,n,r,o){const i=u(e,"x","maxPool"),a=1;let s=i,c=!1;i.rank===3&&(c=!0,s=x(i,[1,i.shape[0],i.shape[1],i.shape[2]])),f(s.rank===4,()=>`Error in maxPool: input must be rank 4 but got rank ${s.rank}.`),f(pe(n,a),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${n} and dilations '${a}'`),o!=null&&f(X(r),()=>`Error in maxPool: pad must be an integer when using, dimRoundingMode ${o} but got pad ${r}.`);const p=(b,y)=>{const w=At(s.shape,t,n,1,r,o);let L;return w.filterWidth===1&&w.filterHeight===1&&Se(w.inShape,w.outShape)?L=s.clone():L=b.maxPool(s,w),y([s,L]),L},l={x:s},h={filterSize:t,strides:n,pad:r,dimRoundingMode:o},m=g.runKernelFunc(p,l,null,ei,h);return c?x(m,[m.shape[1],m.shape[2],m.shape[3]]):m}const Ie=d({maxPool_:_L});function DL(e,t=[1,1,1],n,r,o,i="NDHWC",a){a==null?a=[1,1,1]:xe("dilations is deprecated, this field will be gone in v3.0.0.");const s=u(e,"x","maxPool3d");let c=s,p=!1;s.rank===4&&(p=!0,c=x(s,[1,s.shape[0],s.shape[1],s.shape[2],s.shape[3]])),f(c.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${c.rank}.`),f(i==="NDHWC",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${i}`),f(pe(n,a),()=>`Error in maxPool3d: Either strides or dilations must be 1. Got strides ${n} and dilations '${a}'`),o!=null&&f(X(r),()=>`Error in maxPool3d: pad must be an integer when using, dimRoundingMode ${o} but got pad ${r}.`);const l=(y,w)=>{a==null&&(a=[1,1,1]);const L=Kt(c.shape,t,n,a,r,o,i),v=y.maxPool3d(c,L);return w([c,v]),v},h={x:c},m={filterSize:t,strides:n,pad:r,dimRoundingMode:o,dataFormat:i,dilations:a},b=g.runKernelFunc(l,h,null,ti,m);return p?x(b,[b.shape[1],b.shape[2],b.shape[3],b.shape[4]]):b}const Vl=d({maxPool3d_:DL});function FL(e,t,n,r,o=!1){const i=u(e,"x","maxPoolWithArgmax"),a={x:i},s={filterSize:t,strides:n,pad:r,includeBatchInIndex:o},c=g.runKernel(cp,a,s);return{result:c[0],indexes:c[1]}}const Kl=d({maxPoolWithArgmax_:FL});function Re(e,t="float32"){if(t==="complex64"){const r=Re(e,"float32"),o=Re(e,"float32");return Ve(r,o)}const n=Wt(te(e),t);return g.makeTensor(n,e,t)}function xt(e,t="float32"){if(t==="complex64"){const r=xt(e,"float32"),o=Re(e,"float32");return Ve(r,o)}const n=Yi(te(e),t);return g.makeTensor(n,e,t)}function ML(e,t=null,n=!1){const r=u(e,"x","mean"),o=z(t,r.shape),i=zp(r.shape,o),a=i[1],s=te(a),c=Je(p=>{const l=k(s),h=l.dtype===p.dtype?p:E(p,l.dtype),m=U(h,l),b=W(m,t,n),y=w=>{const L=p.shape.slice();o.forEach(R=>{L[R]=1});const v=x(w,L),A=U(S(v,xt(p.shape,"float32")),s);return A};return{value:b,gradFunc:y}});return c(r)}const mn=d({mean_:ML});function UL(e,t=null,n=!1){const r=u(e,"x","min"),o=(s,c)=>{const p=z(t,r.shape);let l=p;const h=fe(l,r.rank);let m=r;h!=null&&(m=Z(r,h),l=De(l.length,r.rank));const b=s.min(m,l);h!=null&&m.dispose();let y=b;if(n){const w=we(y.shape,p);y=x(b,w),b.dispose()}return c([r,y]),y},i={x:r},a={axis:t,keepDims:n};return g.runKernelFunc(o,i,null,ni,a)}const fn=d({min_:UL});function WL(e,t){let n=u(e,"a","minimum"),r=u(t,"b","minimum");[n,r]=K(n,r),n.dtype==="bool"&&(n=E(n,"int32"),r=E(r,"int32")),q(n.shape,r.shape);const o=(a,s)=>{const c=a.minimum(n,r);return s([n,r]),c},i={a:n,b:r};return g.runKernelFunc(o,i,null,ri)}const $n=d({minimum_:WL});function BL(e,t){let n=u(e,"a","mod"),r=u(t,"b","mod");[n,r]=K(n,r);const o=(a,s)=>{const c=a.mod(n,r);return s([n,r]),c},i={a:n,b:r};return g.runKernelFunc(o,i,null,oi)}const us=d({mod_:BL});function $L(e){const t=u(e,"x","square"),n={},r=[t],o=[];return g.runKernelFunc((i,a)=>(a([t]),i.square(t)),{x:t},null,"Square",n,r,o)}const H=d({square_:$L});function GL(e,t=null,n=!1){e=u(e,"x","moments");const r=z(t,e.shape),o=mn(e,r,n);let i=o.shape;n||(i=we(o.shape,r));const a=H(_(E(e,"float32"),x(o,i))),s=mn(a,r,n);return{mean:o,variance:s}}const Jl=d({moments_:GL});function jL(e,t,n,r){const o=u(t,"data","multiRNNCell"),i=Vt(n,"c","multiRNNCell"),a=Vt(r,"h","multiRNNCell");let s=o;const c=[];for(let h=0;h2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${a}`);n=n||Math.random();const s=a===1?x(o,[1,-1]):o,c=g.runKernelFunc(p=>p.multinomial(s,r,t,n),{logits2D:s});return a===1?x(c,[c.size]):c}const Zl=d({multinomial_:PL});function qL(e,t){let n=u(e,"a","notEqual"),r=u(t,"b","notEqual");[n,r]=K(n,r),q(n.shape,r.shape);const o=a=>a.notEqual(n,r),i={a:n,b:r};return g.runKernelFunc(o,i,null,pp)}const Gn=d({notEqual_:qL});function HL(e,t,n=1,r=0){if(t<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${t}`);const o=u(e,"indices","oneHot","int32"),i=[...o.shape,t],a=(p,l)=>(l([o]),x(p.oneHot(x(o,[o.size]),t,n,r),i)),s={indices:o},c={depth:t,onValue:n,offValue:r};return g.runKernelFunc(a,s,null,ci,c)}const Cr=d({oneHot_:HL});function zL(e){const t=u(e,"x","onesLike"),n=(o,i)=>{if(t.dtype==="complex64"){const a=ga(Gt(t)),s=B(Qt(t));return Ve(a,s)}return o.onesLike(t)},r={x:t};return g.runKernelFunc(n,r,null,ai)}const ga=d({onesLike_:zL});function YL(e,t){const n=u(e,"v1","outerProduct"),r=u(t,"v2","outerProduct");f(n.rank===1&&r.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${n.rank} and ${r.rank}.`);const o=x(n,[-1,1]),i=x(r,[1,-1]);return Y(o,i)}const Ql=d({outerProduct_:YL});function VL(e,t,n=0){const r=u(e,"x","pad");if(r.rank===0)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");const o=(s,c)=>(c([r]),s.pad(r,t,n)),i={paddings:t,constantValue:n},a={x:r};return g.runKernelFunc(o,a,null,pi,i)}const je=d({pad_:VL});function KL(e,t,n=0){return f(t.length===2,()=>"Invalid number of paddings. Must be length of 2."),je(e,[t],n)}const eh=d({pad1d_:KL});function JL(e,t,n=0){return f(t.length===2&&t[0].length===2&&t[1].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),je(e,t,n)}const th=d({pad2d_:JL});function XL(e,t,n=0){return f(t.length===3&&t[0].length===2&&t[1].length===2&&t[2].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),je(e,t,n)}const nh=d({pad3d_:XL});function ZL(e,t,n=0){return f(t.length===4&&t[0].length===2&&t[1].length===2&&t[2].length===2&&t[3].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),je(e,t,n)}const rh=d({pad4d_:ZL});function QL(e,t,n){const r=u(e,"x","spaceToBatchND");f(r.rank>=1+t.length,()=>`input rank ${r.rank} should be > than [blockShape] ${t.length}`),f(n.length===t.length,()=>`paddings.shape[0] ${n.length} must be equal to [blockShape] ${t.length}`),f(r.shape.reduce((s,c,p)=>p>0&&p<=t.length?s&&(c+n[p-1][0]+n[p-1][1])%t[p-1]===0:s,!0),()=>`input spatial dimensions ${r.shape.slice(1)} with paddings ${n.toString()} must be divisible by blockShapes ${t.toString()}`);const o=s=>s.spaceToBatchND(r,t,n),i={x:r},a={blockShape:t,paddings:n};return g.runKernelFunc(o,i,null,Oi,a)}const jn=d({spaceToBatchND_:QL});function nS(e,t,n,r,o,i){o==null&&(o=[1,1]),i==null&&(i=1),r===0&&(r="valid");const a=u(e,"x","maxPool");let s=a,c=!1;a.rank===3&&(c=!0,s=x(a,[1,a.shape[0],a.shape[1],a.shape[2]])),f(pe(i,o),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${i} and dilations '${o}'`);const p=At(s.shape,t,i,o,r),l=[p.dilationHeight,p.dilationWidth];let h;r==="same"?h=tS([p.filterHeight,p.filterWidth],l):h=[[0,0],[0,0]];const m=l[0]===1&&l[1]===1,[b,y]=eS([p.inHeight,p.inWidth],l,h),w=m?r:"valid",L=m?s:jn(s,l,b),v=n==="avg"?()=>ht(L,t,i,w):()=>Ie(L,t,i,w),A=v(),R=m?A:kn(A,l,y);return c?x(R,[R.shape[1],R.shape[2],R.shape[3]]):R}function eS(e,t,n){const r=n.map(l=>l[0]),o=n.map(l=>l[1]),i=e.concat(r,o),a=t.map((l,h)=>(l-i[h]%l)%l),s=o.map((l,h)=>l+a[h]),c=t.map((l,h)=>[r[h],s[h]]),p=t.map((l,h)=>[0,a[h]]);return[c,p]}function tS(e,t){const n=e.map((a,s)=>a+(a-1)*(t[s]-1)),r=n.map(a=>a-1),o=r.map(a=>Math.floor(a/2)),i=r.map((a,s)=>a-o[s]);return r.map((a,s)=>[o[s],i[s]])}const oh=d({pool_:nS});function rS(e,t){let n=u(e,"base","pow"),r=u(t,"exp","pow");[n,r]=K(n,r);const o={a:n,b:r},i=(a,s)=>{const c=a.pow(n,r);return s([n,r,c]),c};return g.runKernelFunc(i,o,null,li)}const Xe=d({pow_:rS});function oS(e,t){const n=u(e,"x","prelu"),r=u(t,"alpha","prelu"),o=(a,s)=>{const c=a.prelu(n,r);return s([n,r]),c},i={x:n,alpha:r};return g.runKernelFunc(o,i,null,hi)}const ds=d({prelu_:oS});function ih(e,t=!1){console.log(e.toString(t))}function iS(e,t=null,n=!1){let r=u(e,"x","prod");const o=s=>{r.dtype==="bool"&&(r=E(r,"int32"));const c=z(t,r.shape),p=fe(c,r.rank);let l=c,h=r;p!=null&&(h=Z(r,p),l=De(l.length,r.rank));let m=s.prod(h,l);if(n){const b=we(m.shape,c);m=x(m,b)}return m},i={x:r},a={axis:t,keepDims:n};return g.runKernelFunc(o,i,null,dp,a)}const sh=d({prod_:iS});function sS(e,t,n){const r=te(e);let o=null;if(n==null||n==="float32")o=new Float32Array(r);else if(n==="int32")o=new Int32Array(r);else if(n==="bool")o=new Uint8Array(r);else throw new Error(`Unknown data type ${n}`);for(let i=0;iTd,expectArrayBuffersEqual:()=>dS,expectArraysClose:()=>cS,expectArraysEqual:()=>lS,expectNumbersClose:()=>hS,expectPromiseToFail:()=>pS,expectValuesInRange:()=>uS,testEpsilon:()=>ch});const aS=.001,Td=.1;function cS(e,t,n){return n==null&&(n=ch()),ph(e,t,(r,o)=>lh(r,o,n))}function ch(){return g.backend.floatPrecision()===32?aS:Td}function ph(e,t,n){let r=!0;if((Ne(e)||Ne(t))&&(r=!1),Ne(e)&&Ne(t)&&(r=!0),r){const a=e.constructor.name,s=t.constructor.name;if(a!==s)throw new Error(`Arrays are of different type. Actual: ${a}. Expected: ${s}`)}if(Array.isArray(e)&&Array.isArray(t)){const a=Fe(e),s=Fe(t);if(!Se(a,s))throw new Error(`Arrays have different shapes. Actual: [${a}]. Expected: [${s}]`)}const o=Ne(e)?e:Ft(e),i=Ne(t)?t:Ft(t);if(o.length!==i.length)throw new Error(`Arrays have different lengths actual: ${o.length} vs expected: ${i.length}. -Actual: ${o}. -Expected: ${i}.`);for(let a=0;at.fail(),()=>t())}function lS(e,t){const n=typeof t=="string"||typeof t=="number"||typeof t=="boolean"?[t]:t;return Tt(e)||Tt(e[0])||Tt(t)||Tt(t[0])?ph(e,n,(r,o)=>r==o):ph(e,t,(r,o)=>lh(r,o,0))}function hS(e,t,n){if(n==null&&(n=ch()),!lh(e,t,n))throw new Error(`Numbers differ: actual === ${e}, expected === ${t}`)}function lh(e,t,n){return!isFinite(e)&&!isFinite(t)?!0:!(isNaN(e)||isNaN(t)||Math.abs(e-t)>n)}function uS(e,t,n){for(let r=0;rn)throw new Error(`Value out of range:${e[r]} low: ${t}, high: ${n}`)}function dS(e,t){expect(new Float32Array(e)).toEqual(new Float32Array(t))}const ba=ee(Ru());class ms{constructor(e,t,n,r,o){this.mean=e,this.stdDev=t,this.dtype=n,this.nextVal=NaN,this.truncated=r,this.truncated&&(this.upper=this.mean+this.stdDev*2,this.lower=this.mean-this.stdDev*2);const i=o||Math.random();this.random=ba.alea(i.toString())}nextValue(){if(!isNaN(this.nextVal)){const r=this.nextVal;return this.nextVal=NaN,r}let e,t,n=!1;for(;!n;){let r,o,i;do r=2*this.random()-1,o=2*this.random()-1,i=r*r+o*o;while(i>=1||i===0);const a=Math.sqrt(-2*Math.log(i)/i);e=this.mean+this.stdDev*r*a,t=this.mean+this.stdDev*o*a,(!this.truncated||this.isValidTruncated(e))&&(n=!0)}return(!this.truncated||this.isValidTruncated(t))&&(this.nextVal=this.convertValue(t)),this.convertValue(e)}convertValue(e){return this.dtype==null||this.dtype==="float32"?e:Math.round(e)}isValidTruncated(e){return e<=this.upper&&e>=this.lower}}class Ad{constructor(e,t,n,r){this.alpha=e,this.beta=1/t,this.dtype=n;const o=r||Math.random();this.randu=ba.alea(o.toString()),this.randn=new ms(0,1,n,!1,this.randu()),e<1?this.d=e+2/3:this.d=e-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let e,t,n,r,o,i;for(;;){do r=this.randn.nextValue(),i=1+this.c*r;while(i<=0);if(i*=i*i,e=r*r,t=1-.331*e*e,n=.5*e+this.d*(1-i+Math.log(i)),o=this.randu(),othis.dtype==null||this.dtype==="float32",this.min=e,this.range=t-e,this.dtype=n,r==null&&(r=Math.random()),typeof r=="number"&&(r=r.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`The difference between ${e} - ${t} <= 1 and dtype is not float`);this.random=ba.alea(r)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}}function mS(e,t,n=1,r="float32",o){if(n==null&&(n=1),r==null&&(r="float32"),r!=="float32"&&r!=="int32")throw new Error(`Unsupported data type ${r}`);const i=new Ad(t,n,r,o),a=Me(e,r);for(let s=0;s{const a=e===t,s=e1;if(a||s||c)return Re([0],r);const p=Math.abs(Math.ceil((t-e)/n)),l=Wt(p,r);t{const i=r.reciprocal(t);return o([t]),i},n,null,ui)}const dh=d({reciprocal_:bS});function wS(e){const t=u(e,"x","relu"),n=(o,i)=>(i([t]),t.dtype==="bool"?E(t,"int32"):o.relu(t)),r={x:t};return g.runKernelFunc(n,r,null,di)}const se=d({relu_:wS});function yS(e){const t=u(e,"x","relu6"),n=(o,i)=>(i([t]),t.dtype==="bool"?E(t,"int32"):o.relu6(t)),r={x:t};return g.runKernelFunc(n,r,null,bi)}const gs=d({relu6_:yS});function xS(e){const t=u(e,"x","reverse");return f(t.rank===1,()=>`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),Ke(t,0)}const mh=d({reverse1d_:xS});function LS(e,t){const n=u(e,"x","reverse");return f(n.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${n.rank}.`),Ke(n,t)}const fh=d({reverse2d_:LS});function SS(e,t){const n=u(e,"x","reverse");return f(n.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${n.rank}.`),Ke(n,t)}const gh=d({reverse3d_:SS});function vS(e,t){const n=u(e,"x","reverse");return f(n.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${n.rank}.`),Ke(n,t)}const bh=d({reverse4d_:vS});function wh(e,t,n=0){let r=[];if(typeof t=="number")f(e.shape[n]%t===0,()=>"Number of splits must evenly divide the axis."),r=new Array(t).fill(e.shape[n]/t);else{const o=t.reduce((a,s)=>(s===-1&&(a+=1),a),0);f(o<=1,()=>"There should be only one negative value in split array.");const i=t.indexOf(-1);if(i!==-1){const a=t.reduce((s,c)=>c>0?s+c:s);t[i]=e.shape[n]-a}f(e.shape[n]===t.reduce((a,s)=>a+s),()=>"The sum of sizes must match the size of the axis dimension."),r=t}return r}function IS(e,t,n=0){const r=u(e,"x","split"),o=(s,c)=>{const p=z(n,r.shape)[0],l=wh(r,t,p);return s.split(r,l,p)},i={x:r},a={numOrSizeSplits:t,axis:n};return g.runKernelFunc(o,i,null,ki,a)}const jt=d({split_:IS});function TS(e,t){f(e.dtype==="float32",()=>`The dtype for rfft() must be real value but got ${e.dtype}`);let n=e.shape[e.shape.length-1];const r=e.size/n;let o;if(t!=null&&t0),w=e.shape.map(L=>L);w[e.shape.length-1]=t,o=V(e,y,w),n=t}else if(t!=null&&t>n){const y=e.shape.map(w=>w);y[e.shape.length-1]=t-n,o=Q([e,Re(y)],e.shape.length-1),n=t}else o=e;const i=B(o),a=x(Ve(o,i),[r,n]),s=Fn(a),c=Math.floor(n/2)+1,p=Gt(s),l=Qt(s),h=jt(p,[c,n-c],p.shape.length-1),m=jt(l,[c,n-c],l.shape.length-1),b=o.shape.slice();return b[o.shape.length-1]=c,x(Ve(h[0],m[0]),b)}const Pn=d({rfft_:TS});function AS(e){const t=u(e,"x","round"),n={x:t};return g.runKernelFunc(r=>r.round(t),n,null,yi)}const yh=d({round_:AS});function NS(e){const t=u(e,"x","rsqrt"),n={x:t};return g.runKernelFunc((r,o)=>{const i=r.rsqrt(t);return o([t]),i},n,null,xi)}const bs=d({rsqrt_:NS});function RS(e){const t=u(e,"x","selu"),n=(o,i)=>{const a=o.selu(t);return i([t]),a},r={x:t};return g.runKernelFunc(n,r,null,Si)}const xh=d({selu_:RS});function CS(e,t,n,r,o,i=[1,1],a="NHWC"){const s=u(e,"x","separableConv2d"),c=u(t,"depthwiseFilter","separableConv2d"),p=u(n,"pointwiseFilter","separableConv2d");let l=s,h=!1;if(s.rank===3&&(h=!0,l=x(s,[1,s.shape[0],s.shape[1],s.shape[2]])),a==="NCHW")throw new Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");f(l.rank===4,()=>`Error in separableConv2d: input must be rank 4, but got rank ${l.rank}.`),f(c.rank===4,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${c.rank}.`),f(p.rank===4,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${c.rank}.`),f(p.shape[0]===1,()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${p.shape[0]}.`),f(p.shape[1]===1,()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${p.shape[1]}.`);const m=c.shape[2],b=c.shape[3];f(p.shape[2]===m*b,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${m*b}, but got ${p.shape[2]}.`);const y=Dn(l,c,r,o,a,i),w=1,L=ve(y,p,w,"valid",a);return h?x(L,[L.shape[1],L.shape[2],L.shape[3]]):L}const qn=d({separableConv2d_:CS});async function ES(e,t){const n=u(e,"x","setdiff1d"),r=u(t,"y","setdiff1d");f(n.dtype===r.dtype,()=>`x and y should have the same dtype, but got x (${n.dtype}) and y (${r.dtype}).`),f(n.rank===1,()=>`x should be 1D tensor, but got x (${n.shape}).`),f(r.rank===1,()=>`y should be 1D tensor, but got y (${r.shape}).`);const o=await n.data(),i=await r.data(),a=new Set(i);let s=0;for(let l=0;lr.sign(t),n,null,Ai)}const Sh=d({sign_:OS});function kS(e){const t=u(e,"x","sin"),n={x:t};return g.runKernelFunc((r,o)=>{const i=r.sin(t);return o([t]),i},n,null,Ii)}const ws=d({sin_:kS});function _S(e){const t=u(e,"x","sinh"),n={x:t};return g.runKernelFunc((r,o)=>{const i=r.sinh(t);return o([t]),i},n,null,Ti)}const ys=d({sinh_:_S});function DS(e,t,n){const r=u(e,"x","slice1d");return f(r.rank===1,()=>`slice1d expects a rank-1 tensor, but got a rank-${r.rank} tensor`),V(r,[t],[n])}const vh=d({slice1d_:DS});function FS(e,t,n){const r=u(e,"x","slice2d");return f(r.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${r.rank} tensor`),V(r,t,n)}const Ih=d({slice2d_:FS});function MS(e,t,n){const r=u(e,"x","slice3d");return f(r.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${r.rank} tensor`),V(r,t,n)}const xs=d({slice3d_:MS});function US(e,t,n){const r=u(e,"x","slice4d");return f(r.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${r.rank} tensor`),V(r,t,n)}const Th=d({slice4d_:US});function WS(e,t=-1){const n=u(e,"logits","softmax","float32");if(t===-1&&(t=n.rank-1),t!==n.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${n.rank} and dim was ${t}`);const r={logits:n},o={dim:t};return g.runKernelFunc((i,a)=>{const s=i.softmax(n,t);return a([s]),s},r,null,_i,o)}const en=d({softmax_:WS});function BS(e){const t=u(e,"x","sqrt"),n={x:t};return g.runKernelFunc((r,o)=>{const i=r.sqrt(t);return o([t]),i},n,null,Ci)}const de=d({sqrt_:BS});function $S(e,t){let n=u(e,"a","squaredDifference"),r=u(t,"b","squaredDifference");[n,r]=K(n,r),q(n.shape,r.shape);const o=(s,c)=>{const p=s.squaredDifference(n,r);return c([n,r]),p},i={a:n,b:r},a={};return g.runKernelFunc(o,i,null,Di,a)}const Hn=d({squaredDifference_:$S});function GS(e,t){const n=u(e,"x","squeeze");return x(n,Np(n.shape,t).newShape)}const zn=d({squeeze_:GS});function jS(e,t=0){const n=Vt(e,"tensors","stack");if(f(n.length>=1,()=>"Pass at least one tensor to tf.stack"),n.length===1)return et(n[0],t);const r=n[0].rank,o=n[0].shape,i=n[0].dtype;f(t<=r,()=>"Axis must be <= rank of the tensor"),n.forEach(s=>{P(o,s.shape,"All tensors passed to stack must have matching shapes"),f(i===s.dtype,()=>"All tensors passed to stack must have matching dtypes")});const a=n.map(s=>et(s,t));return Q(a,t)}const Ue=d({stack_:jS});function PS(e,t=0){const n=u(e,"x","step"),r={x:n},o={alpha:t};return g.runKernelFunc(i=>i.step(n,t),r,null,Pi,o)}const Et=d({step_:PS});function qS(e,t,n,r,o=0,i=0,a=0,s=0,c=0){r==null&&(r=new Array(t.length));let p=u(e,"x","stridedSlice");const l=b=>{const y=es(a);if(y.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(a!==0&&s!==0)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(a!==0&&c!==0)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");const w=p.rank-t.length,L=es(s),v=p.shape.slice();if(L.forEach(D=>{t[D]=0,n[D]=1,v.splice(D,0,1)}),p=x(p,v),y.length&&w>0){const D=y[0],G=w+1;t=hl(o,D,G,t,p.shape),n=ul(i,D,G,n,p.shape),r=ll(r,D,G,p.shape)}else for(let D=0;D{n[D]=t[D]+1,r[D]=1});const R=pl(t,n,r),N=R.filter((D,G)=>A.indexOf(G)===-1),O=r.every(D=>D===1);if(O)return x(V(p,t,R),N);const M=b.stridedSlice(p,t,n,r);return x(M,N)},h={x:p},m={begin:t,end:n,strides:r,beginMask:o,endMask:i,ellipsisMask:a,newAxisMask:s,shrinkAxisMask:c};return g.runKernelFunc(l,h,null,Lp,m)}const Ah=d({stridedSlice_:qS});function HS(e){const t=u(e,"x","tan"),n={x:t};return g.runKernelFunc((r,o)=>{const i=r.tan(t);return o([t]),i},n,null,Mi)}const Nh=d({tan_:HS});function ft(e,t,n){if(pt(e),t!=null&&t.length!==2)throw new Error("tensor2d() requires shape to have two numbers");const r=Fe(e,n);if(r.length!==2&&r.length!==1)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(r.length===1&&t==null)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return ze(e,t,r,n)}function Ls(e,t,n){if(pt(e),t!=null&&t.length!==3)throw new Error("tensor3d() requires shape to have three numbers");const r=Fe(e,n);if(r.length!==3&&r.length!==1)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(r.length===1&&t==null)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return ze(e,t,r,n)}function Pt(e,t,n){if(pt(e),t!=null&&t.length!==4)throw new Error("tensor4d() requires shape to have four numbers");const r=Fe(e,n);if(r.length!==4&&r.length!==1)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(r.length===1&&t==null)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return ze(e,t,r,n)}function Rh(e,t,n){if(pt(e),t!=null&&t.length!==5)throw new Error("tensor5d() requires shape to have five numbers");const r=Fe(e,n);if(r.length!==5&&r.length!==1)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(r.length===1&&t==null)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return ze(e,t,r,n)}function Ch(e,t,n){if(pt(e),t!=null&&t.length!==6)throw new Error("tensor6d() requires shape to have six numbers");const r=Fe(e,n);if(r.length!==6&&r.length!==1)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(r.length===1&&t==null)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return t=t||r,ze(e,t,r,n)}function zS(e,t=1,n=!0){const r=u(e,"x","topk");if(r.rank===0)throw new Error("topk() expects the input to be of rank 1 or higher");const o=r.shape[r.shape.length-1];if(t>o)throw new Error(`'k' passed to topk() must be <= the last dimension (${o}) but got ${t}`);const i={x:r},a={k:t,sorted:n},[s,c]=g.runKernelFunc(p=>p.topk(r,t,n),i,null,Sp,a);return{values:s,indices:c}}const Eh=d({topk_:zS});function YS(e,t=0,n=1,r,o){if(r!=null&&r==="bool")throw new Error("Unsupported data type $ { dtype }");const i=new ms(t,n,r,!0,o),a=Me(e,r);for(let s=0;s"numSegments must be of dtype int");const i={x:r,segmentIds:o},a={numSegments:n},s=(c,p)=>{const l=c.unsortedSegmentSum(r,o,n);return p([o]),l};return g.runKernelFunc(s,i,null,Gi,a)}const Ss=d({unsortedSegmentSum_:VS});function KS(e,t=0){const n=u(e,"x","unstack");f(t>=-n.shape.length&&t`Axis = ${t} is not in [-${n.shape.length}, ${n.shape.length})`),t<0&&(t+=n.shape.length);const r={value:n},o={axis:t},i=a=>a.unstack(n,t);return g.runKernelFunc(i,r,null,$i,o)}const We=d({unstack_:KS});function kh(e,t=!0,n,r){return g.makeVariable(e,t,n,r)}function wa(e,t){const n=[];for(let i=0;i0,()=>"mask cannot be scalar"),P(s.slice(i,i+a),o.shape,"mask's shape must match the first K dimensions of tensor's shape,");let c=1;for(let w=i;w"Shape mismatch in v and x");const c=k(1),p=_(c,s);let l=S(_(a,i),p);if(o){f(r!=null,()=>"When using zeroDebias: true, step is required.");const h=u(r,"step","movingAverage");l=U(l,_(c,Xe(s,h)))}return C(i,l)}const Hd=d({movingAverage_:mv});const zd={};me(zd,{calculateShapes:()=>Yd,validateInput:()=>ya,validateUpdateShape:()=>_h});function _h(e,t,n){const r=t.rank>1?t.shape[t.rank-1]:1,o=t.rank>1?t.rank-1:1,i=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${n.shape}, indices.shape: ${t.shape}, shape: ${e}, sliceDim: ${r}, and batchDim: ${o}.`;if(n.rank1?t.shape[r-1]:1,i=n.length;let a=1;for(let h=o;hc.scatterND(r,o,n),a={indices:r,updates:o},s={shape:n};return g.runKernelFunc(i,a,null,wp,s)}const Vd=d({scatterND_:fv});function Kd(e,t,n,r){if(e.dtype!=="int32")throw new Error(`tf.sparseToDense() expects the indices to be int32 type, but the dtype was ${e.dtype}.`);if(e.rank>2)throw new Error(`sparseIndices should be a scalar, vector, or matrix, but got shape ${e.shape}.`);const o=e.rank>0?e.shape[0]:1,i=e.rank>1?e.shape[1]:1;if(n.length!==i)throw new Error(`outputShape has incorrect number of elements:, ${n.length}, should be: ${i}.`);const a=t.size;if(!(t.rank===0||t.rank===1&&a===o))throw new Error(`sparseValues has incorrect shape ${t.shape}, should be [] or [${o}]`);if(t.dtype!==r.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}function gv(e,t,n,r=0){const o=u(e,"sparseIndices","sparseToDense","int32"),i=u(t,"sparseValues","sparseToDense"),a=u(r,"defaultValue","sparseToDense",i.dtype);Kd(o,i,n,a);const s={sparseIndices:o,sparseValues:i,defaultValue:a},c={outputShape:n};return g.runKernelFunc(p=>p.sparseToDense(o,i,n,a),s,null,xp,c)}const Jd=d({sparseToDense_:gv});function bv(e,t){const n=u(t,"indices","gatherND","int32"),r=u(e,"x","gatherND"),o=a=>a.gatherND(r,n),i={params:r,indices:n};return g.runKernelFunc(o,i,null,Kc)}const Xd=d({gatherND_:bv});function Zd(e,t){if(t==null)return e.shape.slice();if(Se(e.shape,t))return t;if(e.shape.length===t.length){const n=[];for(let r=0;r`x has to be a floating point tensor since it's going to be scaled, but got a ${o.dtype} tensor instead.`),f(t>=0&&t<1,()=>`rate must be a float in the range [0, 1), but got ${t}.`),t===0)return e instanceof ne?o.clone():o;const i=Zd(o,n),a=1-t,s=U(Mn(C(fs(i,0,1,"float32",r),a)),a);return S(o,s)}const Qd=d({dropout_:wv});function xa(e){return Math.floor(Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))))}function kr(e,t,n){const r=1-e%2,o=new Float32Array(e);for(let i=0;i1,()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${r.rank}`),f(r.rank-1===o.rank,()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${r.rank} and targets rank ${o.rank}`),P(r.shape.slice(0,r.shape.length-1),o.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");const i=r.shape[r.shape.length-1];f(n>0&&n<=i,()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${i}), but got ${n}`);const a=await r.data(),s=await o.data(),[c,p]=[a.length/i,i],l=yr("bool",c);for(let h=0;hL.value-w.value),l[h]=0;for(let w=0;w`Error in conv2dDerFilter: input must be rank 4, but got shape ${s.shape}.`),f(c.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${c.shape}.`),f(n.length===4,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${n}.`);const p=i==="NHWC"?s.shape[3]:s.shape[1],l=i==="NHWC"?c.shape[3]:c.shape[1];f(p===n[2],()=>`Error in conv2dDerFilter: depth of input ${p}) must match input depth in filter (${n[2]}.`),f(l===n[3],()=>`Error in conv2dDerFilter: depth of dy (${l}) must match output depth for filter (${n[3]}).`),a!=null&&f(X(o),()=>`Error in conv2dDerFilter: pad must be an integer when using, dimRoundingMode ${a} but got pad ${o}.`);const h=y=>{const w=1,L=hn(i),v=$e(s.shape,n,r,w,o,a,!1,L);return y.conv2dDerFilter(s,c,v)},m={x:s,dy:c},b={strides:r,pad:o,dataFormat:i,dimRoundingMode:a};return g.runKernelFunc(h,m,null,Dc,b)}const _r=d({conv2DBackpropFilter_:xv});function Yn(e,t,n){if(n==null||n==="linear")return e;if(n==="relu")return S(e,Et(t));throw new Error(`Cannot compute gradient for fused activation ${n}.`)}function Vn(e,t){let n=t;const r=ae(e.shape,t.shape);return r.length>0&&(n=W(n,r)),x(n,e.shape)}function Kn(e,t,n){if(t==="linear")return e;if(t==="relu")return se(e);if(t==="elu")return is(e);if(t==="relu6")return gs(e);if(t==="prelu")return ds(e,n);throw new Error(`Unknown fused activation ${t}.`)}const Jn=(e,t)=>{const n=e>0;return!n||t==="linear"};function Lv({x:e,filter:t,strides:n,pad:r,dataFormat:o="NHWC",dilations:i=[1,1],dimRoundingMode:a,bias:s,activation:c="linear",preluActivationWeights:p}){if(c=c||"linear",Jn(g.state.gradientDepth,c)===!1){let O=ve(e,t,n,r,o,i,a);return s!=null&&(O=C(O,s)),Kn(O,c,p)}const l=u(e,"x","conv2d"),h=u(t,"filter","conv2d");let m=l,b=!1;l.rank===3&&(b=!0,m=x(l,[1,l.shape[0],l.shape[1],l.shape[2]])),f(m.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${m.rank}.`),f(h.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${h.rank}.`),a!=null&&f(X(r),()=>`Error in fused conv2d: pad must be an integer when using, dimRoundingMode ${a} but got pad ${r}.`),f(m.shape[3]===h.shape[2],()=>`Error in conv2d: depth of input (${m.shape[3]}) must match input depth for filter ${h.shape[2]}.`),f(pe(n,i),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`),f(o==="NHWC",()=>`Error in conv2d: got dataFormat of ${o} but only NHWC is currently supported.`);const y=$e(m.shape,h.shape,n,i,r,a);let w;s!=null&&(w=u(s,"bias","fused conv2d"),[w]=K(w,l),q(y.outShape,w.shape));let L;p!=null&&(L=u(p,"prelu weights","fused conv2d"));const v=(O,M)=>{const[D,G,$,j]=M,oe=Yn(O,$,c);f(lt(i),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${i}'`);const ie=Rr(G.shape,oe,D,n,r),ue=_r(G,oe,D.shape,n,r),Ae=[ie,ue];if(j!=null){const Pe=Vn(j,oe);Ae.push(Pe)}return Ae},A=O=>{const M=O.fusedConv2d({input:m,filter:h,convInfo:y,bias:w,activation:c,preluActivationWeights:L});return M},R={x:m,filter:h,bias:w,preluActivationWeights:L},N={strides:n,pad:r,dataFormat:o,dilations:i,dimRoundingMode:a,activation:c};if(s==null){const O=Je((M,D,G)=>{let $=g.runKernelFunc(A,R,null,oa,N);return G([D,M,$]),b&&($=x($,[$.shape[1],$.shape[2],$.shape[3]])),{value:$,gradFunc:v}});return O(m,h)}else{const O=Je((M,D,G,$)=>{let j=g.runKernelFunc(A,R,null,oa,N);return $([D,M,j,G]),b&&(j=x(j,[j.shape[1],j.shape[2],j.shape[3]])),{value:j,gradFunc:v}});return O(m,h,w)}}const Sv=d({fusedConv2d_:Lv});function vv(e,t,n,r){let o=e;e.rank===3&&(o=x(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let i=t;i.rank===3&&(i=x(t,[1,t.shape[0],t.shape[1],t.shape[2]]));const a=c=>c.depthwiseConv2DDerFilter(o,i,r),s={x:o,dy:i};return g.runKernelFunc(a,s,null,Bc)}const La=d({depthwiseConv2dNativeBackpropFilter_:vv});function Iv(e,t,n,r){let o=t,i=!1;t.rank===3&&(i=!0,o=x(t,[1,t.shape[0],t.shape[1],t.shape[2]]));const a=p=>p.depthwiseConv2DDerInput(o,n,r),s={dy:o},c=g.runKernelFunc(a,s,null,$c);return i?x(c,[c.shape[1],c.shape[2],c.shape[3]]):c}const Sa=d({depthwiseConv2dNativeBackpropInput_:Iv});function Tv({x:e,filter:t,strides:n,pad:r,dataFormat:o="NHWC",dilations:i=[1,1],dimRoundingMode:a,bias:s,activation:c="linear",preluActivationWeights:p}){if(Jn(g.state.gradientDepth,c)===!1){let O=Dn(e,t,n,r,o,i,a);return s!=null&&(O=C(O,s)),Kn(O,c,p)}const l=u(e,"x","depthwiseConv2d"),h=u(t,"filter","depthwiseConv2d");let m=l,b=!1;l.rank===3&&(b=!0,m=x(l,[1,l.shape[0],l.shape[1],l.shape[2]])),f(m.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${m.rank}.`),f(h.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${h.rank}.`),f(m.shape[3]===h.shape[2],()=>`Error in fused depthwiseConv2d: number of input channels (${m.shape[3]}) must match the inChannels dimension in filter ${h.shape[2]}.`),i==null&&(i=[1,1]),f(pe(n,i),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`),a!=null&&f(X(r),()=>`Error in fused depthwiseConv2d: pad must be an integer when using dimRoundingMode ${a} but got pad ${r}.`);const y=$e(m.shape,h.shape,n,i,r,a,!0);let w;s!=null&&(w=u(s,"bias","fused conv2d"),[w]=K(w,l),q(y.outShape,w.shape));let L;p!=null&&(L=u(p,"prelu weights","fused depthwiseConv2d"));const v=(O,M)=>{f(lt(i),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${i}'`);const[D,G,$,j]=M,oe=Yn(O,$,c),ie=Sa(G.shape,oe,D,y),ue=La(G,oe,D.shape,y);if(j!=null){const Ae=Vn(w,oe);return[ie,ue,Ae]}return[ie,ue]},A=O=>{const M=O.fusedDepthwiseConv2D({input:m,filter:h,convInfo:y,bias:w,activation:c,preluActivationWeights:L});return M},R={x:m,filter:h,bias:w,preluActivationWeights:L},N={strides:n,pad:r,dataFormat:o,dilations:i,dimRoundingMode:a,activation:c};if(s==null){const O=Je((M,D,G)=>{let $=g.runKernelFunc(A,R,null,ia,N);return G([D,M,$]),b&&($=x($,[$.shape[1],$.shape[2],$.shape[3]])),{value:$,gradFunc:v}});return O(m,h)}else{const O=Je((M,D,G,$)=>{let j=g.runKernelFunc(A,R,null,ia,N);return $([D,M,j,G]),b&&(j=x(j,[j.shape[1],j.shape[2],j.shape[3]])),{value:j,gradFunc:v}});return O(m,h,w)}}const Av=d({fusedDepthwiseConv2d_:Tv});function Nv({a:e,b:t,transposeA:n=!1,transposeB:r=!1,bias:o,activation:i="linear",preluActivationWeights:a}){if(Jn(g.state.gradientDepth,i)===!1){let j=Y(e,t,n,r);return o!=null&&(j=C(j,o)),Kn(j,i,a)}let s=u(e,"a","fused matMul"),c=u(t,"b","fused matMul");[s,c]=K(s,c);const p=n?s.shape[s.rank-2]:s.shape[s.rank-1],l=r?c.shape[c.rank-1]:c.shape[c.rank-2],h=n?s.shape[s.rank-1]:s.shape[s.rank-2],m=r?c.shape[c.rank-2]:c.shape[c.rank-1],b=s.shape.slice(0,-2),y=c.shape.slice(0,-2),w=te(b),L=te(y);f(s.rank>=2&&c.rank>=2&&s.rank===c.rank,()=>`Error in fused matMul: inputs must have the same rank of at least 2, got ranks ${s.rank} and ${c.rank}.`),f(Se(b,y),()=>`Error in fused matMul: outer dimensions (${b}) and (${y}) of Tensors with shapes ${s.shape} and ${c.shape} must match.`),f(p===l,()=>`Error in fused matMul: inner shapes (${p}) and (${l}) of Tensors with shapes ${s.shape} and ${c.shape} and transposeA=${n} and transposeB=${r} must match.`);const v=s.shape.slice(0,-2).concat([h,m]),A=n?x(s,[w,p,h]):x(s,[w,h,p]),R=r?x(c,[L,m,l]):x(c,[L,l,m]);let N;o!=null&&(N=u(o,"bias","fused matMul"),[N]=K(N,s),q(v,N.shape));let O;a!=null&&(O=u(a,"prelu weights","fused matMul"));const M=(j,oe)=>{const[ie,ue,Ae,Pe]=oe,zt=Yn(x(j,Ae.shape),Ae,i);let pr,lr;if(!n&&!r?(pr=Y(zt,ue,!1,!0),lr=Y(ie,zt,!0,!1)):!n&&r?(pr=Y(zt,ue,!1,!1),lr=Y(zt,ie,!0,!1)):n&&!r?(pr=Y(ue,zt,!1,!0),lr=Y(ie,zt,!1,!1)):(pr=Y(ue,zt,!0,!0),lr=Y(zt,ie,!0,!0)),o!=null){const Bb=Vn(Pe,zt);return[pr,lr,Bb]}else return[pr,lr]},D=j=>{const oe=j.fusedBatchMatMul({a:A,b:R,transposeA:n,transposeB:r,bias:N,activation:i,preluActivationWeights:O});return oe},G={a:A,b:R,bias:N,preluActivationWeights:O},$={transposeA:n,transposeB:r,activation:i};if(o==null){const j=Je((oe,ie,ue)=>{const Ae=g.runKernelFunc(D,G,null,ra,$);return ue([oe,ie,Ae]),{value:x(Ae,v),gradFunc:M}});return j(A,R)}else{const j=Je((oe,ie,ue,Ae)=>{const Pe=g.runKernelFunc(D,G,null,ra,$);return Ae([oe,ie,Pe,ue]),{value:x(Pe,v),gradFunc:M}});return j(A,R,N)}}const Rv=d({fusedMatMul_:Nv});const Dh={};me(Dh,{conv2d:()=>Sv,depthwiseConv2d:()=>Av,matMul:()=>Rv});function Cv(e){return kr(e,.54,.46)}const tm=d({hammingWindow_:Cv});function Ev(e){return kr(e,.5,.5)}const va=d({hannWindow_:Ev});function Ov(e,t,n,r=!1,o=0){let i=0;const a=[];for(;i+t<=e.size;)a.push(V(e,i,t)),i+=n;if(r)for(;i`Error in cropAndResize: image must be rank 4,but got rank ${a.rank}.`),f(s.rank===2&&s.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${p},4] but had shape ${s.shape}.`),f(c.rank===1&&c.shape[0]===p,()=>`Error in cropAndResize: boxInd must be have size [${p}] but had shape ${s.shape}.`),f(r.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${r.length}.`),f(r[0]>=1&&r[1]>=1,()=>`cropSize must be atleast [1,1], but was ${r}`),f(o==="bilinear"||o==="nearest",()=>`method must be bilinear or nearest, but was ${o}`);const l=y=>y.cropAndResize(a,s,c,r,o,i),h={image:a,boxes:s,boxInd:c},m={method:o,extrapolationValue:i,cropSize:r},b=g.runKernelFunc(l,h,null,Uc,m);return b}const rm=d({cropAndResize_:_v});function Dv(e){const t=u(e,"image","flipLeftRight","float32");f(t.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`);const n={image:t},r=g.runKernel(Vc,n,{});return r}const om=d({flipLeftRight_:Dv});function Fv(e,t,n=0,r=.5){const o=u(e,"image","rotateWithOffset","float32");f(o.rank===4,()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${o.rank}.`);const i={image:o},a={radians:t,fillValue:n,center:r},s=g.runKernel(vp,i,a);return s}const im=d({rotateWithOffset_:Fv});function Lt(e,t,n,r,o,i){r==null&&(r=.5),o==null&&(o=Number.NEGATIVE_INFINITY),i==null&&(i=0);const a=e.shape[0];return n=Math.min(n,a),f(0<=r&&r<=1,()=>`iouThreshold must be in [0, 1], but was '${r}'`),f(e.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${e.rank}'`),f(e.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${e.shape[1]}`),f(t.rank===1,()=>"scores must be a 1D tensor"),f(t.shape[0]===a,()=>`scores has incompatible shape with boxes. Expected ${a}, but was ${t.shape[0]}`),f(0<=i&&i<=1,()=>`softNmsSigma must be in [0, 1], but was '${i}'`),{maxOutputSize:n,iouThreshold:r,scoreThreshold:o,softNmsSigma:i}}function Mv(e,t,n,r=.5,o=Number.NEGATIVE_INFINITY){const i=u(e,"boxes","nonMaxSuppression"),a=u(t,"scores","nonMaxSuppression"),s=Lt(i,a,n,r,o);n=s.maxOutputSize,r=s.iouThreshold,o=s.scoreThreshold;const c={maxOutputSize:n,iouThreshold:r,scoreThreshold:o};return g.runKernelFunc(p=>p.nonMaxSuppression(i,a,n,r,o),{boxes:i,scores:a},null,lp,c)}const sm=d({nonMaxSuppression_:Mv});function am(e,t,n){const r=Uv(e,t,n),o=r<0?-(r+1):r;e.splice(o,0,t)}function Uv(e,t,n){return Bv(e,t,n||Wv)}function Wv(e,t){return e>t?1:e>>1);const s=n(t,e[i]);s>0?r=i+1:(o=i,a=!s)}return a?r:-r-1}function Ta(e,t,n,r,o){return Fh(e,t,n,r,o,0).selectedIndices}function Aa(e,t,n,r,o,i){return Fh(e,t,n,r,o,0,!1,i,!0)}function Na(e,t,n,r,o,i){return Fh(e,t,n,r,o,i,!0)}function Fh(e,t,n,r,o,i,a=!1,s=!1,c=!1){const p=[];for(let L=0;Lo&&p.push({score:t[L],boxIndex:L,suppressBeginIndex:0});p.sort(cm);const l=i>0?-.5/i:0,h=[],m=[];for(;h.length0;){const L=p.pop(),{score:v,boxIndex:A,suppressBeginIndex:R}=L;if(v=R;--O){const M=$v(e,A,h[O]);if(M>=r){N=!0;break}if(L.score=L.score*Gv(r,l,M),L.score<=o)break}L.suppressBeginIndex=h.length,N||(L.score===v?(h.push(A),m.push(L.score)):L.score>o&&am(p,L,cm))}const b=h.length,y=n-b;s&&y>0&&(h.push(...new Array(y).fill(0)),m.push(...new Array(y).fill(0)));const w={selectedIndices:ge(h,"int32")};return a&&(w.selectedScores=ge(m,"float32")),c&&(w.validOutputs=k(b,"int32")),w}function $v(e,t,n){const r=e.subarray(t*4,t*4+4),o=e.subarray(n*4,n*4+4),i=Math.min(r[0],r[2]),a=Math.min(r[1],r[3]),s=Math.max(r[0],r[2]),c=Math.max(r[1],r[3]),p=Math.min(o[0],o[2]),l=Math.min(o[1],o[3]),h=Math.max(o[0],o[2]),m=Math.max(o[1],o[3]),b=(s-i)*(c-a),y=(h-p)*(m-l);if(b<=0||y<=0)return 0;const w=Math.max(i,p),L=Math.max(a,l),v=Math.min(s,h),A=Math.min(c,m),R=Math.max(v-w,0)*Math.max(A-L,0);return R/(b+y-R)}function Gv(e,t,n){const r=Math.exp(t*n*n);return n<=e?r:0}function cm(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}async function jv(e,t,n,r=.5,o=Number.NEGATIVE_INFINITY){const i=u(e,"boxes","nonMaxSuppressionAsync"),a=u(t,"scores","nonMaxSuppressionAsync"),s=Lt(i,a,n,r,o);n=s.maxOutputSize,r=s.iouThreshold,o=s.scoreThreshold;const c=await Promise.all([i.data(),a.data()]),p=c[0],l=c[1],h=Ta(p,l,n,r,o);return i!==e&&i.dispose(),a!==t&&a.dispose(),h}const pm=jv;function Pv(e,t,n,r=.5,o=Number.NEGATIVE_INFINITY,i=0){const a=u(e,"boxes","nonMaxSuppression"),s=u(t,"scores","nonMaxSuppression"),c=Lt(a,s,n,r,o,i);n=c.maxOutputSize,r=c.iouThreshold,o=c.scoreThreshold,i=c.softNmsSigma;const p={boxes:a,scores:s},l={maxOutputSize:n,iouThreshold:r,scoreThreshold:o,softNmsSigma:i},h=g.runKernel(up,p,l);return{selectedIndices:h[0],selectedScores:h[1]}}const lm=d({nonMaxSuppressionWithScore_:Pv});async function qv(e,t,n,r=.5,o=Number.NEGATIVE_INFINITY,i=0){const a=u(e,"boxes","nonMaxSuppressionAsync"),s=u(t,"scores","nonMaxSuppressionAsync"),c=Lt(a,s,n,r,o,i);n=c.maxOutputSize,r=c.iouThreshold,o=c.scoreThreshold,i=c.softNmsSigma;const p=await Promise.all([a.data(),s.data()]),l=p[0],h=p[1],m=Na(l,h,n,r,o,i);return a!==e&&a.dispose(),s!==t&&s.dispose(),m}const hm=qv;function Hv(e,t,n,r=.5,o=Number.NEGATIVE_INFINITY,i=!1){const a=u(e,"boxes","nonMaxSuppression"),s=u(t,"scores","nonMaxSuppression"),c=Lt(a,s,n,r,o,null),p=c.maxOutputSize,l=c.iouThreshold,h=c.scoreThreshold,m={boxes:a,scores:s},b={maxOutputSize:p,iouThreshold:l,scoreThreshold:h,padToMaxOutputSize:i},y=g.runKernel(hp,m,b);return{selectedIndices:y[0],validOutputs:y[1]}}const um=d({nonMaxSuppressionPadded_:Hv});async function zv(e,t,n,r=.5,o=Number.NEGATIVE_INFINITY,i=!1){const a=u(e,"boxes","nonMaxSuppressionAsync"),s=u(t,"scores","nonMaxSuppressionAsync"),c=Lt(a,s,n,r,o,null),p=c.maxOutputSize,l=c.iouThreshold,h=c.scoreThreshold,[m,b]=await Promise.all([a.data(),s.data()]),y=Aa(m,b,p,l,h,i);return a!==e&&a.dispose(),s!==t&&s.dispose(),y}const dm=zv;function Yv(e,t,n=!1){const r=u(e,"images","resizeBilinear");f(r.rank===3||r.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${r.rank}.`),f(t.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`);let o=r,i=!1;r.rank===3&&(i=!0,o=x(r,[1,r.shape[0],r.shape[1],r.shape[2]]));const[a,s]=t,c=(m,b)=>(b([o]),m.resizeBilinear(o,a,s,n)),p={images:o},l={alignCorners:n,size:t},h=g.runKernelFunc(c,p,null,gi,l);return i?x(h,[h.shape[1],h.shape[2],h.shape[3]]):h}const mm=d({resizeBilinear_:Yv});function Vv(e,t,n=!1){const r=u(e,"images","resizeNearestNeighbor");f(r.rank===3||r.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${r.rank}.`),f(t.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`),f(r.dtype==="float32"||r.dtype==="int32",()=>"`images` must have `int32` or `float32` as dtype");let o=r,i=!1;r.rank===3&&(i=!0,o=x(r,[1,r.shape[0],r.shape[1],r.shape[2]]));const[a,s]=t,c={images:o},p={alignCorners:n,size:t},l=(m,b)=>(b([o]),m.resizeNearestNeighbor(o,a,s,n)),h=g.runKernelFunc(l,c,null,fi,p);return i?x(h,[h.shape[1],h.shape[2],h.shape[3]]):h}const fm=d({resizeNearestNeighbor_:Vv});function Kv(e,t,n){f(t%1===0,()=>`bandPart(): numLower must be an integer, got ${t}.`),f(n%1===0,()=>`bandPart(): numUpper must be an integer, got ${n}.`);const r=u(e,"a","bandPart");f(r.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${r.rank}.`);const o=r.shape,[i,a]=r.shape.slice(-2);if(!(t<=i))throw new Error(`bandPart(): numLower (${t}) must not be greater than the number of rows (${i}).`);if(!(n<=a))throw new Error(`bandPart(): numUpper (${n}) must not be greater than the number of columns (${a}).`);t<0&&(t=i),n<0&&(n=a);const s=x(Er(0,i,1,"int32"),[-1,1]),c=Er(0,a,1,"int32"),p=_(s,c),l=yt(dt(p,k(+t,"int32")),ut(p,k(-n,"int32"))),h=Re([i,a],r.dtype);return x(Ue(We(x(r,[-1,i,a])).map(m=>Ee(l,m,h))),o)}const gm=d({bandPart_:Kv});function Jv(e){let t;if(Array.isArray(e)){t=!1,f(e!=null&&e.length>0,()=>"Gram-Schmidt process: input must not be null, undefined, or empty");const o=e[0].shape[0];for(let i=1;i`Gram-Schmidt: Non-unique lengths found in the input vectors: (${e[i].shape[0]} vs. ${o})`)}else t=!0,e=jt(e,e.shape[0],0).map(o=>zn(o,[0]));f(e.length<=e[0].shape[0],()=>`Gram-Schmidt: Number of vectors (${e.length}) exceeds number of dimensions (${e[0].shape[0]}).`);const n=[],r=e;for(let o=0;o{let i=r[o];if(o>0)for(let a=0;a=2,()=>`qr() requires input tensor to have a rank >= 2, but got rank ${e.rank}`),e.rank===2)return wm(e,t);{const n=e.shape.slice(0,e.shape.length-2).reduce((c,p)=>c*p),r=We(x(e,[n,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0),o=[],i=[];r.forEach(c=>{const[p,l]=wm(c,t);o.push(p),i.push(l)});const a=x(Ue(o,0),e.shape),s=x(Ue(i,0),e.shape);return[a,s]}}function wm(e,t=!1){return g.tidy(()=>{f(e.shape.length===2,()=>`qr2d() requires a 2D Tensor, but got a ${e.shape.length}D Tensor.`);const n=e.shape[0],r=e.shape[1];let o=ss(n),i=Rt(e);const a=ft([[1]],[1,1]);let s=Rt(a);const c=n>=r?r:n;for(let p=0;p{const b=V(i,[p,p],[n-p,1]),y=Or(b),w=V(i,[p,p],[1,1]),L=Ee(tt(w,0),ft([[-1]]),ft([[1]])),v=_(w,S(L,y)),A=U(b,v);A.shape[0]===1?s=Rt(a):s=Q([a,V(A,[1,0],[A.shape[0]-1,A.shape[1]])],0);const R=re(U(Y(L,v),y)),N=V(i,[p,0],[n-p,r]),O=S(R,s),M=Z(s);if(p===0)i=_(N,Y(O,Y(M,N)));else{const $=_(N,Y(O,Y(M,N)));i=Q([V(i,[0,0],[p,r]),$],0)}const D=Z(O),G=V(o,[0,p],[n,o.shape[1]-p]);if(p===0)o=_(G,Y(Y(G,s),D));else{const $=_(G,Y(Y(G,s),D));o=Q([V(o,[0,0],[n,p]),$],1)}return[s,i,o]}),Le([l,h,m])}return!t&&n>r&&(o=V(o,[0,0],[n,r]),i=V(i,[0,0],[r,r])),[o,i]})}const ym=d({qr_:Xv});var be;(function(e){e[e.NONE=0]="NONE",e[e.MEAN=1]="MEAN",e[e.SUM=2]="SUM",e[e.SUM_BY_NONZERO_WEIGHTS=3]="SUM_BY_NONZERO_WEIGHTS"})(be||(be={}));function Zv(e,t,n=be.SUM_BY_NONZERO_WEIGHTS){const r=u(e,"losses","computeWeightedLoss");let o=null;t!=null&&(o=u(t,"weights","computeWeightedLoss"));const i=o==null?r:S(r,o);if(n===be.NONE)return i;if(n===be.SUM)return W(i);if(n===be.MEAN){if(o==null)return mn(i);{const a=r.size/o.size,s=U(W(i),W(o));return a>1?U(s,k(a)):s}}if(n===be.SUM_BY_NONZERO_WEIGHTS){if(o==null)return U(W(i),k(r.size));{const a=S(o,xt(r.shape)),s=E(W(Gn(a,k(0))),"float32");return U(W(i),s)}}throw Error(`Unknown reduction: ${n}`)}const Be=d({computeWeightedLoss_:Zv});function Qv(e,t,n,r=be.SUM_BY_NONZERO_WEIGHTS){const o=u(e,"labels","absoluteDifference"),i=u(t,"predictions","absoluteDifference");let a=null;n!=null&&(a=u(n,"weights","absoluteDifference")),P(o.shape,i.shape,"Error in absoluteDifference: ");const s=Ce(_(o,i));return Be(s,a,r)}const xm=d({absoluteDifference_:Qv});function eI(e,t,n,r,o=be.SUM_BY_NONZERO_WEIGHTS){const i=u(e,"labels","cosineDistance"),a=u(t,"predictions","cosineDistance");let s=null;r!=null&&(s=u(r,"weights","cosineDistance")),P(i.shape,a.shape,"Error in cosineDistance: ");const c=k(1),p=_(c,W(S(i,a),n,!0));return Be(p,s,o)}const Lm=d({cosineDistance_:eI});function tI(e,t,n,r=be.SUM_BY_NONZERO_WEIGHTS){let o=u(e,"labels","hingeLoss");const i=u(t,"predictions","hingeLoss");let a=null;n!=null&&(a=u(n,"weights","hingeLoss")),P(o.shape,i.shape,"Error in hingeLoss: ");const s=k(1);o=_(S(k(2),o),s);const c=se(_(s,S(o,i)));return Be(c,a,r)}const Sm=d({hingeLoss_:tI});function nI(e,t,n,r=1,o=be.SUM_BY_NONZERO_WEIGHTS){const i=u(e,"labels","huberLoss"),a=u(t,"predictions","huberLoss");let s=null;n!=null&&(s=u(n,"weights","huberLoss")),P(i.shape,a.shape,"Error in huberLoss: ");const c=k(r),p=Ce(_(a,i)),l=$n(p,c),h=_(p,l),m=C(S(k(.5),H(l)),S(c,h));return Be(m,s,o)}const vm=d({huberLoss_:nI});function rI(e,t,n,r=1e-7,o=be.SUM_BY_NONZERO_WEIGHTS){const i=u(e,"labels","logLoss"),a=u(t,"predictions","logLoss");let s=null;n!=null&&(s=u(n,"weights","logLoss")),P(i.shape,a.shape,"Error in logLoss: ");const c=k(1),p=k(r),l=re(S(i,wt(C(a,p)))),h=S(_(c,i),wt(C(_(c,a),p))),m=_(l,h);return Be(m,s,o)}const Im=d({logLoss_:rI});function oI(e,t,n,r=be.SUM_BY_NONZERO_WEIGHTS){const o=u(e,"labels","meanSquaredError"),i=u(t,"predictions","meanSquaredError");let a=null;n!=null&&(a=u(n,"weights","meanSquaredError")),P(o.shape,i.shape,"Error in meanSquaredError: ");const s=Hn(o,i);return Be(s,a,r)}const Tm=d({meanSquaredError_:oI});function iI(e,t){const n=u(e,"labels","sigmoidCrossEntropyWithLogits"),r=u(t,"logits","sigmoidCrossEntropyWithLogits");P(n.shape,r.shape,"Error in sigmoidCrossEntropyWithLogits: ");const o=se(r),i=S(r,n),a=cs(Oe(re(Ce(r))));return C(_(o,i),a)}function sI(e,t,n,r=0,o=be.SUM_BY_NONZERO_WEIGHTS){let i=u(e,"multiClassLabels","sigmoidCrossEntropy");const a=u(t,"logits","sigmoidCrossEntropy");let s=null;if(n!=null&&(s=u(n,"weights","sigmoidCrossEntropy")),P(i.shape,a.shape,"Error in sigmoidCrossEntropy: "),r>0){const p=k(r),l=k(1),h=k(.5);i=C(S(i,_(l,p)),S(h,p))}const c=iI(i,a);return Be(c,s,o)}const Am=d({sigmoidCrossEntropy_:sI});function aI(e,t,n=-1){if(n===-1&&(n=t.rank-1),n!==t.rank-1)throw Error(`Softmax cross entropy along a non-last dimension is not yet supported. Labels / logits was rank ${t.rank} and dim was ${n}`);const r=Je((o,i,a)=>{const s=!0,c=ls(i,[n],s),p=_(E(i,"float32"),c);a([o,p]);const l=re(S(p,o)),h=W(l,[n]),m=(b,y)=>{const[w,L]=y,v=we(b.shape,[n]);return[S(x(b,v),_(E(w,"float32"),Oe(L))),S(x(b,v),_(Oe(L),E(w,"float32")))]};return{value:h,gradFunc:m}});return r(e,t)}function cI(e,t,n,r=0,o=be.SUM_BY_NONZERO_WEIGHTS){let i=u(e,"onehotLabels","softmaxCrossEntropy");const a=u(t,"logits","softmaxCrossEntropy");let s=null;if(n!=null&&(s=u(n,"weights","softmaxCrossEntropy")),P(i.shape,a.shape,"Error in softmaxCrossEntropy: "),r>0){const p=k(r),l=k(1),h=k(i.shape[1]);i=C(S(i,_(l,p)),U(p,h))}const c=aI(i,a);return Be(c,s,o)}const Nm=d({softmaxCrossEntropy_:cI});const Mh={};me(Mh,{abs:()=>Ce,acos:()=>jp,acosh:()=>Pp,add:()=>C,addN:()=>qp,addStrict:()=>Fd,all:()=>Yp,any:()=>Vp,argMax:()=>Kp,argMin:()=>Jp,asin:()=>Xp,asinh:()=>Zp,atan:()=>Qp,atan2:()=>el,atanh:()=>tl,avgPool:()=>ht,avgPool3d:()=>il,basicLSTMCell:()=>gl,batchNorm:()=>Jt,batchNorm2d:()=>bl,batchNorm3d:()=>wl,batchNorm4d:()=>yl,batchToSpaceND:()=>kn,booleanMaskAsync:()=>Rd,broadcastTo:()=>Nr,buffer:()=>Me,cast:()=>E,ceil:()=>xl,clipByValue:()=>Ll,clone:()=>Rt,complex:()=>Ve,concat:()=>Q,concat1d:()=>Sl,concat2d:()=>vl,concat3d:()=>Il,concat4d:()=>Tl,conv1d:()=>Al,conv2d:()=>ve,conv2dTranspose:()=>Nl,conv3d:()=>Rl,conv3dTranspose:()=>Cl,cos:()=>_n,cosh:()=>ns,cosineWindow:()=>kr,cumsum:()=>rs,depthToSpace:()=>El,depthwiseConv2d:()=>Dn,diag:()=>Ol,dilation2d:()=>kl,div:()=>U,divNoNan:()=>_l,divStrict:()=>Md,dot:()=>Dl,dropout:()=>Qd,elu:()=>is,enclosingPowerOfTwo:()=>xa,equal:()=>Xt,equalStrict:()=>Cd,erf:()=>Fl,exp:()=>Oe,expandDims:()=>et,expm1:()=>Ml,eye:()=>ss,fft:()=>Fn,fill:()=>Ge,floor:()=>Mn,floorDiv:()=>os,fused:()=>Dh,gather:()=>Un,gatherND:()=>Xd,greater:()=>tt,greaterEqual:()=>ut,greaterEqualStrict:()=>Ed,greaterStrict:()=>Od,ifft:()=>dn,imag:()=>Qt,image:()=>Ra,inTopKAsync:()=>em,irfft:()=>as,isFinite:()=>Wl,isInf:()=>Bl,isNaN:()=>$l,leakyRelu:()=>Gl,less:()=>Wn,lessEqual:()=>dt,lessEqualStrict:()=>kd,lessStrict:()=>_d,linalg:()=>Em,linspace:()=>jl,localResponseNormalization:()=>Pl,log:()=>wt,log1p:()=>cs,logSigmoid:()=>Hl,logSoftmax:()=>zl,logSumExp:()=>ls,logicalAnd:()=>yt,logicalNot:()=>Bn,logicalOr:()=>hs,logicalXor:()=>Yl,losses:()=>Om,matMul:()=>Y,max:()=>mt,maxPool:()=>Ie,maxPool3d:()=>Vl,maxPoolWithArgmax:()=>Kl,maximum:()=>Ct,maximumStrict:()=>Ud,mean:()=>mn,min:()=>fn,minimum:()=>$n,minimumStrict:()=>Wd,mod:()=>us,modStrict:()=>Bd,moments:()=>Jl,movingAverage:()=>Hd,mul:()=>S,mulStrict:()=>$d,multiRNNCell:()=>Xl,multinomial:()=>Zl,neg:()=>re,norm:()=>Or,notEqual:()=>Gn,notEqualStrict:()=>Dd,oneHot:()=>Cr,ones:()=>xt,onesLike:()=>ga,op:()=>d,outerProduct:()=>Ql,pad:()=>je,pad1d:()=>eh,pad2d:()=>th,pad3d:()=>nh,pad4d:()=>rh,pool:()=>oh,pow:()=>Xe,powStrict:()=>Gd,prelu:()=>ds,print:()=>ih,prod:()=>sh,rand:()=>ah,randomGamma:()=>hh,randomNormal:()=>uh,randomUniform:()=>fs,range:()=>Er,real:()=>Gt,reciprocal:()=>dh,relu:()=>se,relu6:()=>gs,reshape:()=>x,reverse:()=>Ke,reverse1d:()=>mh,reverse2d:()=>fh,reverse3d:()=>gh,reverse4d:()=>bh,rfft:()=>Pn,round:()=>yh,rsqrt:()=>bs,scalar:()=>k,scatterND:()=>Vd,selu:()=>xh,separableConv2d:()=>qn,setdiff1dAsync:()=>Lh,sigmoid:()=>Nt,sign:()=>Sh,signal:()=>Cm,sin:()=>ws,sinh:()=>ys,slice:()=>V,slice1d:()=>vh,slice2d:()=>Ih,slice3d:()=>xs,slice4d:()=>Th,softmax:()=>en,softplus:()=>ps,spaceToBatchND:()=>jn,sparseToDense:()=>Jd,spectral:()=>Rm,split:()=>jt,sqrt:()=>de,square:()=>H,squaredDifference:()=>Hn,squaredDifferenceStrict:()=>jd,squeeze:()=>zn,stack:()=>Ue,step:()=>Et,stridedSlice:()=>Ah,sub:()=>_,subStrict:()=>Pd,sum:()=>W,tan:()=>Nh,tanh:()=>Ar,tensor:()=>Ye,tensor1d:()=>ge,tensor2d:()=>ft,tensor3d:()=>Ls,tensor4d:()=>Pt,tensor5d:()=>Rh,tensor6d:()=>Ch,tile:()=>Zt,topk:()=>Eh,transpose:()=>Z,truncatedNormal:()=>Oh,unsortedSegmentSum:()=>Ss,unstack:()=>We,variable:()=>kh,where:()=>Ee,whereAsync:()=>vs,zeros:()=>Re,zerosLike:()=>B});const Rm={fft:Fn,ifft:dn,rfft:Pn,irfft:as},Cm={hammingWindow:tm,hannWindow:va,frame:Ia,stft:nm},Ra={flipLeftRight:om,resizeNearestNeighbor:fm,resizeBilinear:mm,rotateWithOffset:im,cropAndResize:rm,nonMaxSuppression:sm,nonMaxSuppressionAsync:pm,nonMaxSuppressionWithScore:lm,nonMaxSuppressionWithScoreAsync:hm,nonMaxSuppressionPadded:um,nonMaxSuppressionPaddedAsync:dm},Em={bandPart:gm,gramSchmidt:bm,qr:ym},Om={absoluteDifference:xm,computeWeightedLoss:Be,cosineDistance:Lm,hingeLoss:Sm,huberLoss:vm,logLoss:Im,meanSquaredError:Tm,sigmoidCrossEntropy:Am,softmaxCrossEntropy:Nm};ld(Mh);const Is={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8};const Ca=4;async function lI(e,t){const n=[],r=[],o=Array.isArray(e)?e.map(a=>a.name):Object.keys(e);for(let a=0;a{const m=await c.bytes(),b=m.reduce((L,v)=>L+v.length,0)+Ca*m.length,y=new Uint8Array(b);let w=0;for(let L=0;L{if(t+=i.byteLength,n.push(i.byteLength===i.buffer.byteLength?i:new i.constructor(i)),!(i instanceof Float32Array||i instanceof Int32Array||i instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${i.constructor.name}`)});const r=new Uint8Array(t);let o=0;return n.forEach(i=>{r.set(new Uint8Array(i.buffer),o),o+=i.byteLength}),r.buffer}const uI=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function km(e){return uI?Buffer.byteLength(e):new Blob([e]).size}function Ts(e){if(e.length===1)return e[0];let t=0;e.forEach(o=>{t+=o.byteLength});const n=new Uint8Array(t);let r=0;return e.forEach(o=>{n.set(new Uint8Array(o),r),r+=o.byteLength}),n.buffer}function Wh(e){const t="/";for(e=e.trim();e.endsWith(t);)e=e.slice(0,e.length-1);const n=e.split(t);return n[n.length-1]}function As(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("Expected JSON model topology, received ArrayBuffer.");return{dateSaved:new Date(),modelTopologyType:"JSON",modelTopologyBytes:e.modelTopology==null?0:km(JSON.stringify(e.modelTopology)),weightSpecsBytes:e.weightSpecs==null?0:km(JSON.stringify(e.weightSpecs)),weightDataBytes:e.weightData==null?0:e.weightData.byteLength}}function dI(){const e=n=>{let r=n<<13,o=0;for(;(r&8388608)===0;)o-=8388608,r<<=1;return r&=~8388608,o+=947912704,r|o},t=new Uint32Array(2048);t[0]=0;for(let n=1;n<1024;n++)t[n]=e(n);for(let n=1024;n<2048;n++)t[n]=939524096+(n-1024<<13);return t}function mI(){const e=new Uint32Array(64);e[0]=0,e[31]=1199570944,e[32]=2147483648,e[63]=3347054592;for(let t=1;t<31;t++)e[t]=t<<23;for(let t=33;t<63;t++)e[t]=2147483648+(t-32<<23);return e}function fI(){const e=new Uint32Array(64);for(let t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}function hI(){const e=dI(),t=mI(),n=fI();return r=>{const o=new ArrayBuffer(4*r.length),i=new Uint32Array(o);for(let a=0;a>10]+(s&1023)]+t[s>>10];i[a]=c}return new Float32Array(o)}}class Te{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return Te.instance==null&&(Te.instance=new Te()),Te.instance}static registerSaveRouter(e){Te.getInstance().saveRouters.push(e)}static registerLoadRouter(e){Te.getInstance().loadRouters.push(e)}static getSaveHandlers(e){return Te.getHandlers(e,"save")}static getLoadHandlers(e,t){return Te.getHandlers(e,"load",t)}static getHandlers(e,t,n){const r=[],o=t==="load"?Te.getInstance().loadRouters:Te.getInstance().saveRouters;return o.forEach(i=>{const a=i(e,n);a!==null&&r.push(a)}),r}}const gI=e=>Te.registerSaveRouter(e),bI=e=>Te.registerLoadRouter(e),wI=e=>Te.getSaveHandlers(e),yI=(e,t)=>Te.getLoadHandlers(e,t);const Dr="://";class Ot{constructor(){this.managers={}}static getInstance(){return Ot.instance==null&&(Ot.instance=new Ot()),Ot.instance}static registerManager(e,t){f(e!=null,()=>"scheme must not be undefined or null."),e.endsWith(Dr)&&(e=e.slice(0,e.indexOf(Dr))),f(e.length>0,()=>"scheme must not be an empty string.");const n=Ot.getInstance();f(n.managers[e]==null,()=>`A model store manager is already registered for scheme '${e}'.`),n.managers[e]=t}static getManager(e){const t=this.getInstance().managers[e];if(t==null)throw new Error(`Cannot find model manager for scheme '${e}'`);return t}static getSchemes(){return Object.keys(this.getInstance().managers)}}function Ea(e){if(e.indexOf(Dr)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Ot.getSchemes().join(",")}`);return{scheme:e.split(Dr)[0],path:e.split(Dr)[1]}}async function _m(e,t,n=!1){f(e!==t,()=>`Old path and new path are the same: '${e}'`);const r=Te.getLoadHandlers(e);f(r.length>0,()=>`Copying failed because no load handler is found for source URL ${e}.`),f(r.length<2,()=>`Copying failed because more than one (${r.length}) load handlers for source URL ${e}.`);const o=r[0],i=Te.getSaveHandlers(t);f(i.length>0,()=>`Copying failed because no save handler is found for destination URL ${t}.`),f(i.length<2,()=>`Copying failed because more than one (${r.length}) save handlers for destination URL ${t}.`);const a=i[0],s=Ea(e).scheme,c=Ea(e).path,p=s===Ea(e).scheme,l=await o.load();n&&p&&await Ot.getManager(s).removeModel(c);const h=await a.save(l);return n&&!p&&await Ot.getManager(s).removeModel(c),h.modelArtifactsInfo}async function Dm(){const e=Ot.getSchemes(),t={};for(const n of e){const r=await Ot.getManager(n).listModels();for(const o in r){const i=n+Dr+o;t[i]=r[o]}}return t}async function Fm(e){const t=Ea(e),n=Ot.getManager(t.scheme);return n.removeModel(t.path)}async function Mm(e,t){const n=!1;return _m(e,t,n)}async function Um(e,t){const n=!0;return _m(e,t,n)}const xI="model",LI=".json",SI=".weights.bin";function Wm(e){return new Promise(t=>setTimeout(t)).then(e)}class Fr{constructor(e){if(!ce().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(Fr.URL_SCHEME)&&(e=e.slice(Fr.URL_SCHEME.length)),(e==null||e.length===0)&&(e=xI),this.modelTopologyFileName=e+LI,this.weightDataFileName=e+SI}async save(e){if(typeof document=="undefined")throw new Error("Browser downloads are not supported in this environment since `document` is not present");const t=window.URL.createObjectURL(new Blob([e.weightData],{type:"application/octet-stream"}));if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");{const n=[{paths:["./"+this.weightDataFileName],weights:e.weightSpecs}],r={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:n},o=window.URL.createObjectURL(new Blob([JSON.stringify(r)],{type:"application/json"})),i=this.jsonAnchor==null?document.createElement("a"):this.jsonAnchor;if(i.download=this.modelTopologyFileName,i.href=o,await Wm(()=>i.dispatchEvent(new MouseEvent("click"))),e.weightData!=null){const a=this.weightDataAnchor==null?document.createElement("a"):this.weightDataAnchor;a.download=this.weightDataFileName,a.href=t,await Wm(()=>a.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:As(e)}}}}Fr.URL_SCHEME="downloads://";class vI{constructor(e){if(e==null||e.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${e}`);this.files=e}async load(){const e=this.files[0],t=this.files.slice(1);return new Promise((n,r)=>{const o=new FileReader();o.onload=i=>{const a=JSON.parse(i.target.result),s=a.modelTopology;if(s==null){r(new Error(`modelTopology field is missing from file ${e.name}`));return}t.length===0&&n({modelTopology:s});const c=a.weightsManifest;if(c==null){r(new Error(`weightManifest field is missing from file ${e.name}`));return}let p;try{p=this.checkManifestAndWeightFiles(c,t)}catch(b){r(b);return}const l=[],h=[],m=[];c.forEach(b=>{b.paths.forEach(y=>{h.push(y),m.push(null)}),l.push(...b.weights)}),c.forEach(b=>{b.paths.forEach(y=>{const w=new FileReader();w.onload=L=>{const v=L.target.result,A=h.indexOf(y);m[A]=v,m.indexOf(null)===-1&&n({modelTopology:s,weightSpecs:l,weightData:Ts(m),format:a.format,generatedBy:a.generatedBy,convertedBy:a.convertedBy,userDefinedMetadata:a.userDefinedMetadata})},w.onerror=L=>r(`Failed to weights data from file of path '${y}'.`),w.readAsArrayBuffer(p[y])})})},o.onerror=i=>r(`Failed to read model topology and weights manifest JSON from file '${e.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),o.readAsText(e)})}checkManifestAndWeightFiles(e,t){const n=[],r=t.map(i=>Wh(i.name)),o={};for(const i of e)i.paths.forEach(a=>{const s=Wh(a);if(n.indexOf(s)!==-1)throw new Error(`Duplicate file basename found in weights manifest: '${s}'`);if(n.push(s),r.indexOf(s)===-1)throw new Error(`Weight file with basename '${s}' is not provided.`);o[a]=t[r.indexOf(s)]});if(n.length!==t.length)throw new Error(`Mismatch in the number of files in weights manifest (${n.length}) and the number of weight files provided (${t.length}).`);return o}}const TI=e=>ce().getBool("IS_BROWSER")&&(!Array.isArray(e)&&e.startsWith(Fr.URL_SCHEME))?II(e.slice(Fr.URL_SCHEME.length)):null;Te.registerSaveRouter(TI);function II(e="model"){return new Fr(e)}function AI(e){return new vI(e)}function Bh(e,t,n,r){a(e),n=n==null?0:n,r=r==null?1:r,s(n,r);let o=0;const i=c=>(c.then(p=>{const l=n+ ++o/e.length*(r-n);return t(l),p}),c);function a(c){f(c!=null&&Array.isArray(c)&&c.length>0,()=>"promises must be a none empty array")}function s(c,p){f(c>=0&&c<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${c}`),f(p>=0&&p<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${p}`),f(p>=c,()=>`startFraction must be no more than endFraction, but got startFraction ${c} and endFraction ${p}`)}return Promise.all(e.map(i))}async function $h(e,t){t==null&&(t={});const n=t.fetchFunc==null?ce().platform.fetch:t.fetchFunc,r=e.map(h=>n(h,t.requestInit,{isBinary:!0})),o=0,i=.5,a=t.onProgress==null?await Promise.all(r):await Bh(r,t.onProgress,o,i),s=a.map(h=>h.arrayBuffer()),c=.5,p=1,l=t.onProgress==null?await Promise.all(s):await Bh(s,t.onProgress,c,p);return l}async function NI(e,t="",n,r){const o=a=>$h(a,{requestInit:r}),i=Bm(o);return i(e,t,n)}function Bm(e){return async(t,n="",r)=>{const o=t.map(()=>!1),i={},a=r!=null?r.map(()=>!1):[],s=[];if(t.forEach((b,y)=>{let w=0;b.weights.forEach(L=>{const v="quantization"in L?L.quantization.dtype:L.dtype,A=Is[v]*te(L.shape),R=()=>{o[y]=!0,i[y]==null&&(i[y]=[]),i[y].push({manifestEntry:L,groupOffset:w,sizeBytes:A})};r!=null?r.forEach((N,O)=>{N===L.name&&(R(),a[O]=!0)}):R(),s.push(L.name),w+=A})}),!a.every(b=>b)){const b=r.filter((y,w)=>!a[w]);throw new Error(`Could not find weights in manifest with names: ${b.join(", ")}. -Manifest JSON has weights with names: ${s.join(", ")}.`)}const c=o.reduce((b,y,w)=>(y&&b.push(w),b),[]),p=[];c.forEach(b=>{t[b].paths.forEach(y=>{const w=n+(n.endsWith("/")?"":"/")+y;p.push(w)})});const l=await e(p),h={};let m=0;return c.forEach(b=>{const y=t[b].paths.length;let w=0;for(let N=0;N{const O=L.slice(N.groupOffset,N.groupOffset+N.sizeBytes),M=Uh(O,[N.manifestEntry]);for(const D in M)h[D]=M[D]}),m+=y}),h}}const RI="application/octet-stream",CI="application/json";class Gh{constructor(e,t){if(this.DEFAULT_METHOD="POST",t==null&&(t={}),this.weightPathPrefix=t.weightPathPrefix,this.onProgress=t.onProgress,t.fetchFunc!=null?(f(typeof t.fetchFunc=="function",()=>"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)"),this.fetch=t.fetchFunc):this.fetch=ce().platform.fetch,f(e!=null&&e.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(e)&&f(e.length===2,()=>`URL paths for http must have a length of 2, (actual length is ${e.length}).`),this.path=e,t.requestInit!=null&&t.requestInit.body!=null)throw new Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=t.requestInit||{}}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");const t=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);t.body=new FormData();const n=[{paths:["./model.weights.bin"],weights:e.weightSpecs}],r={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,userDefinedMetadata:e.userDefinedMetadata,weightsManifest:n};t.body.append("model.json",new Blob([JSON.stringify(r)],{type:CI}),"model.json"),e.weightData!=null&&t.body.append("model.weights.bin",new Blob([e.weightData],{type:RI}),"model.weights.bin");const o=await this.fetch(this.path,t);if(o.ok)return{modelArtifactsInfo:As(e),responses:[o]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${o.status}.`)}async load(){const e=await this.fetch(this.path,this.requestInit);if(!e.ok)throw new Error(`Request to ${this.path} failed with status code ${e.status}. Please verify this URL points to the model JSON of the model to load.`);let t;try{t=await e.json()}catch(l){let h=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?h+=" Your path contains a .pb file extension. Support for .pb models have been removed in TensorFlow.js 1.0 in favor of .json models. You can re-convert your Python TensorFlow model using the TensorFlow.js 1.0 conversion scripts or you can convert your.pb models with the 'pb2json'NPM script in the tensorflow/tfjs-converter repository.":h+=" Please make sure the server is serving valid JSON for this request.",new Error(h)}const n=t.modelTopology,r=t.weightsManifest,o=t.generatedBy,i=t.convertedBy,a=t.format,s=t.userDefinedMetadata;if(n==null&&r==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);let c,p;if(r!=null){const l=await this.loadWeights(r);[c,p]=l}return{modelTopology:n,weightSpecs:c,weightData:p,userDefinedMetadata:s,generatedBy:o,convertedBy:i,format:a}}async loadWeights(e){const t=Array.isArray(this.path)?this.path[1]:this.path,[n,r]=EI(t),o=this.weightPathPrefix||n,i=[];for(const c of e)i.push(...c.weights);const a=[];e.forEach(c=>{c.paths.forEach(p=>{a.push(o+p+r)})});const s=await $h(a,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[i,Ts(s)]}}Gh.URL_SCHEME_REGEX=/^https?:\/\//;function EI(e){const t=e.lastIndexOf("/"),n=e.lastIndexOf("?"),r=e.substring(0,t),o=n>t?e.substring(n):"";return[r+"/",o]}function jh(e){return e.match(Gh.URL_SCHEME_REGEX)!=null}const $m=(e,t)=>{if(typeof fetch=="undefined"&&(t==null||t.fetchFunc==null))return null;{let n=!0;if(Array.isArray(e)?n=e.every(r=>jh(r)):n=jh(e),n)return Ph(e,t)}return null};Te.registerSaveRouter($m);Te.registerLoadRouter($m);function Ph(e,t){return new Gh(e,t)}function OI(e,t){return Ph(e,t)}class qh{constructor(e){this.modelArtifacts=e}async load(){return this.modelArtifacts}}class kI{constructor(e){this.saveHandler=e}async save(e){return this.saveHandler(e)}}function _I(e,t,n,r){if(arguments.length===1){const o=e.modelTopology!=null||e.weightSpecs!=null;return o?new qh(e):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new qh({modelTopology:e}))}else return console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new qh({modelTopology:e,weightSpecs:t,weightData:n,trainingConfig:r})}function DI(e){return new kI(e)}const Mr={};me(Mr,{browserFiles:()=>AI,browserHTTPRequest:()=>OI,concatenateArrayBuffers:()=>Ts,copyModel:()=>Mm,decodeWeights:()=>Uh,encodeWeights:()=>lI,fromMemory:()=>_I,getLoadHandlers:()=>yI,getModelArtifactsInfoForJSON:()=>As,getSaveHandlers:()=>wI,http:()=>Ph,isHTTPScheme:()=>jh,listModels:()=>Dm,loadWeights:()=>NI,moveModel:()=>Um,registerLoadRouter:()=>bI,registerSaveRouter:()=>gI,removeModel:()=>Fm,weightsLoaderFactory:()=>Bm,withSaveHandler:()=>DI});function FI(e,t,n){const r=u(e,"labels","confusionMatrix"),o=u(t,"predictions","confusionMatrix");f(n==null||n>0&&Number.isInteger(n),()=>`If provided, numClasses must be a positive integer, but got ${n}`),f(r.rank===1,()=>`Expected the rank of labels to be 1, but got ${r.rank}`),f(o.rank===1,()=>`Expected the rank of predictions to be 1, but got ${o.rank}`),f(r.shape[0]===o.shape[0],()=>`Mismatch in the number of examples: ${r.shape[0]} vs. ${o.shape[0]}. Labels and predictions should have the same number of elements.`),f(n>0&&Number.isInteger(n),()=>`numClasses is required to be a positive integer, but got ${n}`);const i=Cr(E(r,"int32"),n),a=Cr(E(o,"int32"),n),s=Z(i);return E(Y(s,a),"int32")}const MI=d({confusionMatrix_:FI});const Gm={};me(Gm,{confusionMatrix:()=>MI});const Ur={};me(Ur,{fromPixels:()=>BI,toPixels:()=>WI});let Wr;function UI(e,t=3){if(t>4)throw new Error("Cannot construct Tensor with more than 4 channels from pixels.");if(e==null)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");let n=!1,r=!1,o=!1,i=!1,a=!1;if(e.data instanceof Uint8Array)n=!0;else if(typeof ImageData!="undefined"&&e instanceof ImageData)r=!0;else if(typeof HTMLVideoElement!="undefined"&&e instanceof HTMLVideoElement)o=!0;else if(typeof HTMLImageElement!="undefined"&&e instanceof HTMLImageElement)i=!0;else if(e.getContext!=null)a=!0;else throw new Error(`pixels passed to tf.browser.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData in browser, or OffscreenCanvas, ImageData in webworker or {data: Uint32Array, width: number, height: number}, but was ${e.constructor.name}`);if(o){const b=2;if(o&&e.readyState element.")}const s=Hi(na,g.backendName);if(s!=null){const b={pixels:e},y={numChannels:t};return g.runKernel(na,b,y)}const[c,p]=o?[e.videoWidth,e.videoHeight]:[e.width,e.height];let l;a?l=e.getContext("2d").getImageData(0,0,c,p).data:r||n?l=e.data:(i||o)&&(Wr==null&&(Wr=document.createElement("canvas").getContext("2d")),Wr.canvas.width=c,Wr.canvas.height=p,Wr.drawImage(e,0,0,c,p),l=Wr.getImageData(0,0,c,p).data);let h;if(t===4)h=new Int32Array(l);else{const b=c*p;h=new Int32Array(b*t);for(let y=0;y4||i===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${i}`);const a=await n.data(),s=fn(n),c=mt(n),p=await Promise.all([s.data(),c.data()]),l=p[0],h=p[1],m=l[0],b=h[0];if(s.dispose(),c.dispose(),n.dtype==="float32"){if(m<0||b>1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but got range [${m} - ${b}].`)}else if(n.dtype==="int32"){if(m<0||b>255)throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but got range [${m} - ${b}].`)}else throw new Error(`Unsupported type for toPixels: ${n.dtype}. Please use float32 or int32 tensors.`);const y=n.dtype==="float32"?255:1,w=new Uint8ClampedArray(o*r*4);for(let L=0;LPm});function Pm(e,t){if(e.rank<1)throw new Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${e.rank}.`);if(t.rank<1)throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${t.rank}.`);if(t.dtype!=="int32")throw new Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${t.dtype}.`);if(t.shape[t.rank-1]>e.rank)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${t.shape[t.rank-1]} vs. ${e.rank}`);if(e.size===0)throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${e.shape}.`);const n=t.shape,r=n[n.length-1];let o=1;for(let p=0;pp/s),1].slice(0,r);return[a,o,s,c]}const qm={};me(qm,{Serializable:()=>Hh,SerializationMap:()=>Xn,registerClass:()=>nt});class Hh{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}}class Xn{constructor(){this.classNameMap={}}static getMap(){return Xn.instance==null&&(Xn.instance=new Xn()),Xn.instance}static register(e){Xn.getMap().classNameMap[e.className]=[e,e.fromConfig]}}function nt(e){f(e.className!=null,()=>"Class being registered does not have the static className property defined."),f(typeof e.className=="string",()=>"className is required to be a string, but got type "+typeof e.className),f(e.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),Xn.register(e)}const $I="2.3.0";class it extends Hh{minimize(e,t=!1,n){const{value:r,grads:o}=this.computeGradients(e,n);if(n!=null){const i=n.map(a=>({name:a.name,tensor:o[a.name]}));this.applyGradients(i)}else this.applyGradients(o);return Le(o),t?r:(r.dispose(),null)}get iterations(){return this.iterations_==null&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(e,t){return ql(e,t)}dispose(){this.iterations_!=null&&Le(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:k(this.iterations_,"int32")}}async getWeights(){throw new Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(e){throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(e){return this.iterations_=(await e[0].tensor.data())[0],e.slice(1)}}Object.defineProperty(it,Symbol.hasInstance,{value:e=>e.minimize!=null&&e.computeGradients!=null&&e.applyGradients!=null});class Zn extends it{constructor(e,t,n=null){super();this.learningRate=e,this.rho=t,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],n==null&&(this.epsilon=g.backend.epsilon())}applyGradients(e){const t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);t.forEach((n,r)=>{const o=g.registeredVariables[n],i=!1;this.accumulatedGrads[r]==null&&(this.accumulatedGrads[r]={originalName:`${n}/accum_grad`,variable:F(()=>B(o).variable(i))}),this.accumulatedUpdates[r]==null&&(this.accumulatedUpdates[r]={originalName:`${n}/accum_var`,variable:F(()=>B(o).variable(i))});const a=Array.isArray(e)?e[r].tensor:e[n];if(a==null)return;const s=this.accumulatedGrads[r].variable,c=this.accumulatedUpdates[r].variable;F(()=>{const p=C(S(s,this.rho),S(H(a),1-this.rho)),l=S(U(de(C(c,this.epsilon)),de(C(s,this.epsilon))),a),h=C(S(c,this.rho),S(H(l),1-this.rho));s.assign(p),c.assign(h);const m=C(S(l,-this.learningRate),o);o.assign(m)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(Le(this.accumulatedGrads.map(e=>e.variable)),Le(this.accumulatedUpdates.map(e=>e.variable)))}async getWeights(){const e=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);const t=e.length/2,n=!1;this.accumulatedGrads=e.slice(0,t).map(r=>({originalName:r.name,variable:r.tensor.variable(n)})),this.accumulatedUpdates=e.slice(t,t*2).map(r=>({originalName:r.name,variable:r.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.rho,t.epsilon)}}Zn.className="Adadelta";nt(Zn);class Qn extends it{constructor(e,t=.1){super();this.learningRate=e,this.initialAccumulatorValue=t,this.accumulatedGrads=[]}applyGradients(e){const t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);t.forEach((n,r)=>{const o=g.registeredVariables[n];if(this.accumulatedGrads[r]==null){const s=!1;this.accumulatedGrads[r]={originalName:`${n}/accumulator`,variable:F(()=>Ge(o.shape,this.initialAccumulatorValue).variable(s))}}const i=Array.isArray(e)?e[r].tensor:e[n];if(i==null)return;const a=this.accumulatedGrads[r].variable;F(()=>{const s=C(a,H(i));a.assign(s);const c=C(S(U(i,de(C(s,g.backend.epsilon()))),-this.learningRate),o);o.assign(c)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&Le(this.accumulatedGrads.map(e=>e.variable))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e);const t=!1;this.accumulatedGrads=e.map(n=>({originalName:n.name,variable:n.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(e,t){return new e(t.learningRate,t.initialAccumulatorValue)}}Qn.className="Adagrad";nt(Qn);class er extends it{constructor(e,t,n,r=null){super();this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=r,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],F(()=>{this.accBeta1=k(t).variable(),this.accBeta2=k(n).variable()}),r==null&&(this.epsilon=g.backend.epsilon())}applyGradients(e){const t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);F(()=>{const n=_(1,this.accBeta1),r=_(1,this.accBeta2);t.forEach((o,i)=>{const a=g.registeredVariables[o],s=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${o}/m`,variable:F(()=>B(a).variable(s))}),this.accumulatedSecondMoment[i]==null&&(this.accumulatedSecondMoment[i]={originalName:`${o}/v`,variable:F(()=>B(a).variable(s))});const c=Array.isArray(e)?e[i].tensor:e[o];if(c==null)return;const p=this.accumulatedFirstMoment[i].variable,l=this.accumulatedSecondMoment[i].variable,h=C(S(p,this.beta1),S(c,1-this.beta1)),m=C(S(l,this.beta2),S(H(c),1-this.beta2)),b=U(h,n),y=U(m,r);p.assign(h),l.assign(m);const w=C(S(U(b,C(de(y),this.epsilon)),-this.learningRate),a);a.assign(w)}),this.accBeta1.assign(S(this.accBeta1,this.beta1)),this.accBeta2.assign(S(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&Le(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedSecondMoment!=null&&Le(this.accumulatedSecondMoment.map(e=>e.variable))}async getWeights(){const e=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e),F(()=>{this.accBeta1.assign(Xe(this.beta1,this.iterations_+1)),this.accBeta2.assign(Xe(this.beta2,this.iterations_+1))});const t=e.length/2,n=!1;this.accumulatedFirstMoment=e.slice(0,t).map(r=>({originalName:r.name,variable:r.tensor.variable(n)})),this.accumulatedSecondMoment=e.slice(t,t*2).map(r=>({originalName:r.name,variable:r.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon)}}er.className="Adam";nt(er);class tr extends it{constructor(e,t,n,r=null,o=0){super();this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=r,this.decay=o,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],F(()=>{this.iteration=k(0).variable(),this.accBeta1=k(t).variable()}),r==null&&(this.epsilon=g.backend.epsilon())}applyGradients(e){const t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);F(()=>{const n=_(1,this.accBeta1),r=U(-this.learningRate,C(S(this.iteration,this.decay),1));t.forEach((o,i)=>{const a=g.registeredVariables[o],s=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${o}/m`,variable:B(a).variable(s)}),this.accumulatedWeightedInfNorm[i]==null&&(this.accumulatedWeightedInfNorm[i]={originalName:`${o}/v`,variable:B(a).variable(s)});const c=Array.isArray(e)?e[i].tensor:e[o];if(c==null)return;const p=this.accumulatedFirstMoment[i].variable,l=this.accumulatedWeightedInfNorm[i].variable,h=C(S(p,this.beta1),S(c,1-this.beta1)),m=S(l,this.beta2),b=Ce(c),y=Ct(m,b);p.assign(h),l.assign(y);const w=C(S(U(r,n),U(h,C(y,this.epsilon))),a);a.assign(w)}),this.iteration.assign(C(this.iteration,1)),this.accBeta1.assign(S(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&Le(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedWeightedInfNorm!=null&&Le(this.accumulatedWeightedInfNorm.map(e=>e.variable))}async getWeights(){throw new Error("getWeights() is not implemented for Adamax yet.")}async setWeights(e){throw new Error("setWeights() is not implemented for Adamax yet.")}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon,t.decay)}}tr.className="Adamax";nt(tr);class tn extends it{constructor(e){super();this.learningRate=e,this.setLearningRate(e)}applyGradients(e){const t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);t.forEach((n,r)=>{const o=Array.isArray(e)?e[r].tensor:e[n];if(o==null)return;const i=g.registeredVariables[n];F(()=>{const a=C(S(this.c,o),i);i.assign(a)})}),this.incrementIterations()}setLearningRate(e){this.learningRate=e,this.c!=null&&this.c.dispose(),this.c=ol(k(-e))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(e){if(e=await this.extractIterations(e),e.length!==0)throw new Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(e,t){return new e(t.learningRate)}}tn.className="SGD";nt(tn);class nr extends tn{constructor(e,t,n=!1){super(e);this.learningRate=e,this.momentum=t,this.useNesterov=n,this.accumulations=[],this.m=k(this.momentum)}applyGradients(e){const t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);t.forEach((n,r)=>{const o=g.registeredVariables[n];if(this.accumulations[r]==null){const s=!1;this.accumulations[r]={originalName:`${n}/momentum`,variable:F(()=>B(o).variable(s))}}const i=this.accumulations[r].variable,a=Array.isArray(e)?e[r].tensor:e[n];if(a==null)return;F(()=>{let s;const c=C(S(this.m,i),a);this.useNesterov?s=C(S(this.c,C(a,S(c,this.m))),o):s=C(S(this.c,c),o),i.assign(c),o.assign(s)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&Le(this.accumulations.map(e=>e.variable))}setMomentum(e){this.momentum=e}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e);const t=!1;this.accumulations=e.map(n=>({originalName:n.name,variable:n.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(e,t){return new e(t.learningRate,t.momentum,t.useNesterov)}}nr.className="Momentum";nt(nr);class rr extends it{constructor(e,t=.9,n=0,r=null,o=!1){super();if(this.learningRate=e,this.decay=t,this.momentum=n,this.epsilon=r,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=o,r==null&&(this.epsilon=g.backend.epsilon()),e==null)throw new Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(e){const t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);t.forEach((n,r)=>{const o=g.registeredVariables[n],i=!1;this.accumulatedMeanSquares[r]==null&&(this.accumulatedMeanSquares[r]={originalName:`${n}/rms`,variable:F(()=>B(o).variable(i))}),this.accumulatedMoments[r]==null&&(this.accumulatedMoments[r]={originalName:`${n}/momentum`,variable:F(()=>B(o).variable(i))}),this.accumulatedMeanGrads[r]==null&&this.centered&&(this.accumulatedMeanGrads[r]={originalName:`${n}/mg`,variable:F(()=>B(o).variable(i))});const a=Array.isArray(e)?e[r].tensor:e[n];if(a==null)return;const s=this.accumulatedMeanSquares[r].variable,c=this.accumulatedMoments[r].variable;F(()=>{const p=C(S(s,this.decay),S(H(a),1-this.decay));if(this.centered){const l=this.accumulatedMeanGrads[r].variable,h=C(S(l,this.decay),S(a,1-this.decay)),m=U(S(a,this.learningRate),de(_(p,C(H(h),this.epsilon)))),b=C(S(c,this.momentum),m);s.assign(p),l.assign(h),c.assign(b);const y=_(o,b);o.assign(y)}else{const l=C(S(s,this.decay),S(H(a),1-this.decay)),h=C(S(c,this.momentum),U(S(a,this.learningRate),de(C(l,this.epsilon))));s.assign(l),c.assign(h);const m=_(o,h);o.assign(m)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&Le(this.accumulatedMeanSquares.map(e=>e.variable)),this.accumulatedMeanGrads!=null&&this.centered&&Le(this.accumulatedMeanGrads.map(e=>e.variable)),this.accumulatedMoments!=null&&Le(this.accumulatedMoments.map(e=>e.variable))}async getWeights(){const e=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&e.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);const t=this.centered?e.length/3:e.length/2,n=!1;this.accumulatedMeanSquares=e.slice(0,t).map(r=>({originalName:r.name,variable:r.tensor.variable(n)})),this.accumulatedMoments=e.slice(t,t*2).map(r=>({originalName:r.name,variable:r.tensor.variable(n)})),this.centered&&(this.accumulatedMeanGrads=e.slice(t*2,t*3).map(r=>({originalName:r.name,variable:r.tensor.variable(n)})))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(e,t){return new e(t.learningRate,t.decay,t.momentum,t.epsilon,t.centered)}}rr.className="RMSProp";nt(rr);class gn{static sgd(e){return new tn(e)}static momentum(e,t,n=!1){return new nr(e,t,n)}static rmsprop(e,t=.9,n=0,r=null,o=!1){return new rr(e,t,n,r,o)}static adam(e=.001,t=.9,n=.999,r=null){return new er(e,t,n,r)}static adadelta(e=.001,t=.95,n=null){return new Zn(e,t,n)}static adamax(e=.002,t=.9,n=.999,r=null,o=0){return new tr(e,t,n,r,o)}static adagrad(e,t=.1){return new Qn(e,t)}}nr,tn,Zn,Qn,rr,tr,er;const GI={sgd:gn.sgd,momentum:gn.momentum,adadelta:gn.adadelta,adagrad:gn.adagrad,rmsprop:gn.rmsprop,adamax:gn.adamax,adam:gn.adam};const jI=(()=>typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:e=>e())();function PI(){return new Promise(e=>jI(()=>e()))}function qI(e,t,n){const r=n*(typeof e=="number"?e:e[0]),o=t*(typeof e=="number"?e:e[1]);return[r,o]}function HI(e,t,n,r=!0){let o=[];if(r)o=o.concat(t.slice(0)),o.push(e[0]/n),o=o.concat(e.slice(1));else{o=o.concat(e[0]);const i=t.length;for(let a=0;a=t*2+1||a%2===1?i.push(a):o.push(a);r.push(...o),r.push(0),r.push(...i)}return r}function YI(e,t,n,r=!0){const o=[];r?o.push(e[0]/n):o.push(e[0]*n);for(let i=1;iXI,ERF_A2:()=>ZI,ERF_A3:()=>QI,ERF_A4:()=>eT,ERF_A5:()=>tT,ERF_P:()=>JI,PARALLELIZE_THRESHOLD:()=>ma,SELU_SCALE:()=>Yh,SELU_SCALEALPHA:()=>zh,applyActivation:()=>Kn,assertAndGetBroadcastShape:()=>q,assertAxesAreInnerMostDims:()=>dy,assertParamsConsistent:()=>sl,assignToTypedArray:()=>pT,axesAreInnerMostDims:()=>Hp,calculateShapes:()=>Yd,castTensor:()=>uT,combineLocations:()=>wd,complexWithEvenIndex:()=>sT,complexWithOddIndex:()=>aT,computeConv2DInfo:()=>$e,computeConv3DInfo:()=>un,computeDefaultPad:()=>rl,computeDilation2DInfo:()=>Ay,computeOptimalWindowSize:()=>Jx,computeOutAndReduceShapes:()=>zp,computeOutShape:()=>al,computePool2DInfo:()=>At,computePool3DInfo:()=>Kt,convertConv2DDataFormat:()=>hn,eitherStridesOrDilationsAreOne:()=>pe,expandShapeToKeepDim:()=>we,exponent:()=>hT,exponents:()=>lT,getAxesPermutation:()=>fe,getBroadcastDims:()=>Fx,getComplexWithIndex:()=>cT,getFusedBiasGradient:()=>Vn,getFusedDyActivation:()=>Yn,getImageCenter:()=>qI,getInnerMostAxes:()=>De,getPermuted:()=>zI,getReductionAxes:()=>ae,getReshaped:()=>HI,getReshapedPermuted:()=>YI,getSliceBeginCoords:()=>VI,getSliceSize:()=>KI,getUndoAxesPermutation:()=>En,linspaceImpl:()=>mT,log:()=>rT,mergeRealAndImagArrays:()=>oT,prepareAndValidate:()=>Pm,prepareSplitSize:()=>wh,reshapeTensor:()=>dT,segment_util:()=>vd,shouldFuse:()=>Jn,splitRealAndImagArrays:()=>iT,tupleValuesAreOne:()=>lt,upcastType:()=>Ir,validateInput:()=>ya,validateUpdateShape:()=>_h,warn:()=>nT});function uT(e,t,n){if(t==="complex64"){if(e.dtype==="complex64")return e.clone();const r=Re(e.shape),o=E(e,"float32"),i=n.complex(o,r);return r.dispose(),o.dispose(),i}if(!Ep(e.dtype,t))return g.makeTensorFromDataId(e.dataId,e.shape,t);if(e.dtype==="complex64"){const r=n.real(e),o=E(r,t);return r.dispose(),o}if(t==="int32")return n.int(e);if(t==="bool"){const r=k(0,e.dtype),o=n.notEqual(e,r);return r.dispose(),o}else throw new Error(`Error in Cast: failed to cast ${e.dtype} to ${t}`)}function dT(e,t){return g.makeTensorFromDataId(e.dataId,t,e.dtype)}function mT(e,t,n){const r=(t-e)/(n-1),o=Wt(n,"float32");o[0]=e;for(let i=1;i{const a=[...o];a[n]=i;const s=V(e,r,a);return r[n]+=i,s})}function Ym(e,t){const n=new Array(e.rank);for(let o=0;oR.value-A.value);const w=h*r,L=c.subarray(w,w+r),v=p.subarray(w,w+r);for(let A=0;ATa,nonMaxSuppressionV4Impl:()=>Aa,nonMaxSuppressionV5Impl:()=>Na,split:()=>zm,tile:()=>Ym,topkImpl:()=>Vm,whereImpl:()=>wa});const fT=1e-7,gT=1e-4;class bT{constructor(e,t){this.backend=e,this.dataMover=t,this.data=new WeakMap(),this.dataIdsCount=0}get(e){return this.data.has(e)||this.dataMover.moveData(this.backend,e),this.data.get(e)}set(e,t){this.dataIdsCount++,this.data.set(e,t)}has(e){return this.data.has(e)}delete(e){return this.dataIdsCount--,this.data.delete(e)}numDataIds(){return this.dataIdsCount}}class wT{time(e){return I("time")}read(e){return I("read")}readSync(e){return I("readSync")}numDataIds(){return I("numDataIds")}disposeData(e){return I("disposeData")}write(e,t,n){return I("write")}move(e,t,n,r){return I("move")}memory(){return I("memory")}floatPrecision(){return I("floatPrecision")}epsilon(){return this.floatPrecision()===32?fT:gT}batchMatMul(e,t,n,r){return I("batchMatMul")}fusedBatchMatMul({a:e,b:t,transposeA:n,transposeB:r,bias:o,activation:i,preluActivationWeights:a}){return I("fusedBatchMatMul")}slice(e,t,n){return I("slice")}stridedSlice(e,t,n,r){return I("stridedSlice")}unstack(e,t){return I("unstack")}reverse(e,t){return I("reverse")}concat(e,t){return I("concat")}neg(e){return I("neg")}add(e,t){return I("add")}addN(e){return I("addN")}subtract(e,t){return I("subtract")}multiply(e,t){return I("multiply")}realDivide(e,t){return I("realDivide")}floorDiv(e,t){return I("floorDiv")}sum(e,t){return I("sum")}prod(e,t){return I("prod")}unsortedSegmentSum(e,t,n){return I("unsortedSegmentSum")}argMin(e,t){return I("argMin")}argMax(e,t){return I("argMax")}equal(e,t){return I("equal")}notEqual(e,t){return I("notEqual")}less(e,t){return I("less")}lessEqual(e,t){return I("lessEqual")}greater(e,t){return I("greater")}greaterEqual(e,t){return I("greaterEqual")}logicalNot(e){return I("logicalNot")}logicalAnd(e,t){return I("logicalAnd")}logicalOr(e,t){return I("logicalOr")}where(e){return I("where")}select(e,t,n){return I("select")}topk(e,t,n){return I("topk")}min(e,t){return I("min")}minimum(e,t){return I("minimum")}mod(e,t){return I("mod")}max(e,t){return I("max")}maximum(e,t){return I("maximum")}all(e,t){return I("all")}any(e,t){return I("any")}squaredDifference(e,t){return I("squaredDifference")}ceil(e){return I("ceil")}floor(e){return I("floor")}round(e){return I("round")}sign(e){return I("sign")}isNaN(e){return I("isNaN")}isInf(e){return I("isInf")}isFinite(e){return I("isFinite")}pow(e,t){return I("pow")}exp(e){return I("exp")}expm1(e){return I("expm1")}softmax(e,t){return I("softmax")}log(e){return I("log")}log1p(e){return I("log1p")}sqrt(e){return I("sqrt")}rsqrt(e){return I("rsqrt")}square(e){return I("square")}reciprocal(e){return I("reciprocal")}relu(e){return I("relu")}relu6(e){return I("relu6")}prelu(e,t){return I("prelu")}elu(e){return I("elu")}eluDer(e,t){return I("eluDer")}selu(e){return I("selu")}int(e){return I("int")}clip(e,t,n){return I("clip")}abs(e){return I("abs")}complexAbs(e){return I("complexAbs")}sigmoid(e){return I("sigmoid")}softplus(e){return I("softplus")}sin(e){return I("sin")}cos(e){return I("cos")}tan(e){return I("tan")}asin(e){return I("asin")}acos(e){return I("acos")}atan(e){return I("atan")}atan2(e,t){return I("atan2")}sinh(e){return I("sinh")}cosh(e){return I("cosh")}tanh(e){return I("tanh")}asinh(e){return I("asinh")}acosh(e){return I("acosh")}atanh(e){return I("atanh")}erf(e){return I("erf")}step(e,t){return I("step")}fusedConv2d({input:e,filter:t,convInfo:n,bias:r,activation:o,preluActivationWeights:i}){return I("fusedConv2d")}conv2d(e,t,n){return I("conv2d")}conv2dDerInput(e,t,n){return I("conv2dDerInput")}conv2dDerFilter(e,t,n){return I("conv2dDerFilter")}fusedDepthwiseConv2D({input:e,filter:t,convInfo:n,bias:r,activation:o,preluActivationWeights:i}){return I("fusedDepthwiseConv2D")}depthwiseConv2D(e,t,n){return I("depthwiseConv2D")}depthwiseConv2DDerInput(e,t,n){return I("depthwiseConv2DDerInput")}depthwiseConv2DDerFilter(e,t,n){return I("depthwiseConv2DDerFilter")}conv3d(e,t,n){return I("conv3d")}conv3dDerInput(e,t,n){return I("conv3dDerInput")}conv3dDerFilter(e,t,n){return I("conv3dDerFilter")}maxPool(e,t){return I("maxPool")}maxPoolBackprop(e,t,n,r){return I("maxPoolBackprop")}avgPool(e,t){return I("avgPool")}avgPoolBackprop(e,t,n){return I("avgPoolBackprop")}avgPool3d(e,t){return I("avgPool3d")}avgPool3dBackprop(e,t,n){return I("avgPool3dBackprop")}maxPool3d(e,t){return I("maxPool3d")}maxPool3dBackprop(e,t,n,r){return I("maxPool3dBackprop")}reshape(e,t){return I("reshape")}cast(e,t){return I("cast")}tile(e,t){return I("tile")}pad(e,t,n){return I("pad")}transpose(e,t){return I("transpose")}gather(e,t,n){return I("gather")}gatherND(e,t){return I("gatherND")}scatterND(e,t,n){return I("scatterND")}batchToSpaceND(e,t,n){return I("batchToSpaceND")}spaceToBatchND(e,t,n){return I("spaceToBatchND")}resizeBilinear(e,t,n,r){return I("resizeBilinear")}resizeBilinearBackprop(e,t,n){return I("resizeBilinearBackprop")}resizeNearestNeighbor(e,t,n,r){return I("resizeNearestNeighbor")}resizeNearestNeighborBackprop(e,t,n){return I("resizeNearestNeighborBackprop")}batchNorm(e,t,n,r,o,i){return I("batchNorm")}localResponseNormalization4D(e,t,n,r,o){return I("localResponseNormalization4D")}LRNGrad(e,t,n,r,o,i,a){return I("LRNGrad")}multinomial(e,t,n,r){return I("multinomial")}oneHot(e,t,n,r){return I("oneHot")}cumsum(e,t,n,r){return I("cumsum")}nonMaxSuppression(e,t,n,r,o){return I("nonMaxSuppression")}fft(e){return I("fft")}ifft(e){return I("ifft")}complex(e,t){return I("complex")}real(e){return I("real")}imag(e){return I("imag")}cropAndResize(e,t,n,r,o,i){return I("cropAndResize")}depthToSpace(e,t,n){return I("depthToSpace")}split(e,t,n){return I("split")}sparseToDense(e,t,n,r){return I("sparseToDense")}diag(e){return I("diag")}fill(e,t,n){return I("fill")}onesLike(e){return I("onesLike")}zerosLike(e){return I("zerosLike")}linspace(e,t,n){return I("linspace")}dispose(){return I("dispose")}}function I(e){throw new Error(`'${e}' not yet implemented or not found in the registry. Did you forget to import the kernel?`)}const Jm={kernelName:so,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>S(e,Et(E(n,"float32"),-1))}}};const Xm={kernelName:ao,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>{const r=H(E(n,"float32")),o=de(_(k(1),r));return re(U(e,o))}}}};const Zm={kernelName:co,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>{const r=de(_(H(E(n,"float32")),1));return U(e,r)}}}};const Qm={kernelName:An,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,o=q(n.shape,r.shape),i=()=>{let s=e;const c=ae(n.shape,o);return c.length>0&&(s=W(s,c)),x(s,n.shape)},a=()=>{let s=e;const c=ae(r.shape,o);return c.length>0&&(s=W(s,c)),x(s,r.shape)};return{a:i,b:a}}};const ef={kernelName:po,saveAllInputs:!0,gradFunc:(e,t)=>{const n={};return t.forEach((r,o)=>{n[o]=()=>e.clone()}),n}};const tf={kernelName:lo,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>B(n)}}};const nf={kernelName:ho,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>B(n)}}};const rf={kernelName:uo,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>U(e,de(_(k(1),H(E(n,"float32")))))}}};const of={kernelName:mo,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>{const r=de(C(k(1),H(E(n,"float32"))));return U(e,r)}}}};const sf={kernelName:bo,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,o=q(n.shape,r.shape),i=()=>{const s=C(H(n),H(r));let c=S(e,U(r,s));const p=ae(n.shape,o);return p.length>0&&(c=W(c,p)),x(c,n.shape)},a=()=>{const s=C(H(n),H(r));let c=re(S(e,U(n,s)));const p=ae(r.shape,o);return p.length>0&&(c=W(c,p)),x(c,r.shape)};return{a:i,b:a}}};const af={kernelName:fo,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>U(e,C(H(E(n,"float32")),1))}}};const cf={kernelName:go,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>U(e,_(k(1),H(E(n,"float32"))))}}};function yT(e,t,n,r,o=[1,1,1],i,a){const s=u(e,"dy","avgPool3dBackprop"),c=u(t,"input","avgPool3dBackprop");let p=s,l=c,h=!1;c.rank===4&&(h=!0,p=x(s,[1,s.shape[0],s.shape[1],s.shape[2],s.shape[3]]),l=x(c,[1,c.shape[0],c.shape[1],c.shape[2],c.shape[3]])),f(p.rank===5,()=>`Error in avgPool3dBackprop: dy must be rank 5 but got rank ${p.rank}.`),f(l.rank===5,()=>`Error in avgPool3dBackprop: input must be rank 5 but got rank ${l.rank}.`),f(pe(r,o),()=>`Error in avgPool3dBackprop: Either strides or dilations must be 1. Got strides ${r} and dilations '${o}'`),a!=null&&f(X(i),()=>`Error in maxPool3dBackprop: pad must be an integer when using, dimRoundingMode ${a} but got pad ${i}.`);const m=L=>{const v=Kt(l.shape,n,r,o,i,a);return L.avgPool3dBackprop(p,l,v)},b={dy:p,input:l},y={filterSize:n,strides:r,dilations:o,pad:i,dimRoundingMode:a},w=g.runKernelFunc(m,b,null,kc,y);return h?x(w,[w.shape[1],w.shape[2],w.shape[3],w.shape[4]]):w}const pf=d({avgPool3dBackprop_:yT});const lf={kernelName:yo,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{filterSize:o,strides:i,dilations:a,pad:s,dimRoundingMode:c}=n,p=a==null?[1,1,1]:a;return{x:()=>pf(e,r,o,i,p,s,c)}}};function xT(e,t,n,r,o){const i=u(e,"dy","avgPoolBackprop"),a=u(t,"input","avgPoolBackprop");f(a.rank===i.rank,()=>`Rank of input (${a.rank}) does not match rank of dy (${i.rank})`);let s=a,c=i,p=!1;a.rank===3&&(p=!0,s=x(a,[1,a.shape[0],a.shape[1],a.shape[2]]),c=x(i,[1,i.shape[0],i.shape[1],i.shape[2]])),f(c.rank===4,()=>`Error in avgPoolBackprop: dy must be rank 4 but got rank ${c.rank}.`),f(s.rank===4,()=>`Error in avgPoolBackprop: input must be rank 4 but got rank ${s.rank}.`);const l=y=>{const w=At(s.shape,n,r,1,o);return y.avgPoolBackprop(c,s,w)},h={dy:c,input:s},m={filterSize:n,strides:r,pad:o},b=g.runKernelFunc(l,h,null,Oc,m);return p?x(b,[b.shape[1],b.shape[2],b.shape[3]]):b}const hf=d({avgPoolBackprop_:xT});const uf={kernelName:wo,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{filterSize:o,strides:i,pad:a}=n;return{x:()=>hf(e,r,o,i,a)}}};const df={kernelName:xo,inputsToSave:["a","b"],gradFunc:(e,t,n)=>{const[r,o]=t,{transposeA:i,transposeB:a}=n;return!i&&!a?{a:()=>Y(e,o,!1,!0),b:()=>Y(r,e,!0,!1)}:!i&&a?{a:()=>Y(e,o,!1,!1),b:()=>Y(e,r,!0,!1)}:i&&!a?{a:()=>Y(o,e,!1,!0),b:()=>Y(r,e,!1,!1)}:{a:()=>Y(o,e,!0,!0),b:()=>Y(e,r,!0,!0)}}};const mf={kernelName:Lo,gradFunc:(e,t,n)=>{const{blockShape:r,crops:o}=n;return{x:()=>jn(e,r,o)}}};const ff={kernelName:So,gradFunc:(e,t,n)=>{const r=n,o=r.inputShape,i=r.shape,a=Array.from(i);for(let c=o.length-1;c>=0;c--)if(o[c]===i[c])a[c]=1;else if(o[c]!==1)throw new Error(`broadcastTo(): [${o}] cannot be broadcast to [${i}].`);const s=[];for(let c=0;c1&&s.push(c);return{x:()=>W(e,s,!0)}}};const gf={kernelName:Nn,gradFunc:e=>({x:()=>e.clone()})};const bf={kernelName:vo,gradFunc:e=>({x:()=>B(e)})};const wf={kernelName:Io,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{clipValueMin:o,clipValueMax:i}=n;return{x:()=>Ee(yt(ut(r,o),dt(r,i)),e,B(e))}}};const yf={kernelName:To,saveAllInputs:!0,gradFunc:(e,t,n)=>{const r=t.map(c=>c.shape),{axis:o}=n,i=z(o,t[0].shape)[0],a=r.map(c=>c[i]),s=jt(e,a,i);return s.map(c=>()=>c)}};const xf={kernelName:Ao,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{const[r,o]=t,{dilations:i,strides:a,pad:s,dataFormat:c}=n;return f(lt(i),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${i}'`),{x:()=>Rr(r.shape,e,o,a,s,c),filter:()=>_r(r,e,o.shape,a,s,c)}}};const Lf={kernelName:No,inputsToSave:["dy","filter"],gradFunc:(e,t,n)=>{const[r,o]=t,{strides:i,pad:a,dataFormat:s,dimRoundingMode:c}=n;return{dy:()=>ve(e,o,i,a,s,1,c),filter:()=>_r(e,r,o.shape,i,a,s,c)}}};function LT(e,t,n,r,o){let i=e;e.rank===4&&(i=x(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]]));let a=t;a.rank===4&&(a=x(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]])),f(i.rank===5,()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${i.shape}.`),f(a.rank===5,()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${a.shape}.`),f(n.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${n}.`),f(i.shape[4]===n[3],()=>`Error in conv3dDerFilter: depth of input ${i.shape[4]}) must match input depth in filter (${n[3]}.`),f(a.shape[4]===n[4],()=>`Error in conv3dDerFilter: depth of dy (${a.shape[4]}) must match output depth for filter (${n[4]}).`);const s=l=>{const h=1,m=un(i.shape,n,r,h,o);return l.conv3dDerFilter(i,a,m)},c={x:i,y:a},p={strides:r,pad:o};return g.runKernelFunc(s,c,null,Fc,p)}const Sf=d({conv3DBackpropFilter_:LT});const vf={kernelName:Ro,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{const{dilations:r,strides:o,pad:i}=n;f(lt(r),()=>`Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${r}'`);const[a,s]=t;return{x:()=>da(a.shape,e,s,o,i),filter:()=>Sf(a,e,s.shape,o,i)}}};const If={kernelName:Co,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>S(re(ws(E(n,"float32"))),e)}}};const Tf={kernelName:Eo,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>S(ys(E(n,"float32")),e)}}};const Af={kernelName:Oo,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{axis:o,exclusive:i,reverse:a}=n;return{x:()=>{const s=fe([o],r.rank);let c=rs(e,o,i,!a);return s!=null&&(c=Z(c,s)),c}}}};const Nf={kernelName:ko,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{const{dilations:r,strides:o,pad:i,dimRoundingMode:a}=n,s=r==null?[1,1]:r;f(lt(s),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);const[c,p]=t;f(c.rank===4,()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${c.rank}.`),f(p.rank===4,()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${p.rank}.`),f(c.shape[3]===p.shape[2],()=>`Error in gradient of depthwiseConv2d: number of input channels (${c.shape[3]}) must match the inChannels dimension in filter ${p.shape[2]}.`),f(pe(o,s),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${o} and dilations '${s}'.`),a!=null&&f(X(i),()=>`Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode ${a} but got pad ${i}.`);const l=$e(c.shape,p.shape,o,s,i,a,!0);return{x:()=>Sa(c.shape,e,p,l),filter:()=>La(c,e,p.shape,l)}}};const Rf={kernelName:_o,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{const[r,o]=t,i={x:r,filter:o,dy:e},a={x:r,filter:o,dy:e};return{x:()=>g.runKernel(jc,i,n),filter:()=>g.runKernel(Pc,a,n)}}};const Cf={kernelName:Do,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,o=q(n.shape,r.shape),i=()=>{const s=U(e,E(r,"float32")),c=ae(n.shape,o);return c.length>0?x(W(s,c),n.shape):s},a=()=>{let s=S(e,E(n,"float32"));const c=ae(r.shape,o);c.length>0&&(s=x(W(s,c),r.shape));const p=H(r);return re(U(s,E(p,"float32")))};return{a:i,b:a}}};const Ef={kernelName:Fo,outputsToSave:[!0],gradFunc:(e,t)=>{const[n]=t,r=i=>i.eluDer(e,n),o={dy:e,y:n};return{x:()=>g.runKernelFunc(r,o,null,qc)}}};const Of={kernelName:Mo,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t,r=S(Oe(re(H(n))),2/Math.sqrt(Math.PI));return{x:()=>S(e,r)}}};const kf={kernelName:Uo,outputsToSave:[!0],gradFunc:(e,t)=>{const[n]=t;return{x:()=>S(e,n)}}};const _f={kernelName:Wo,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>S(e,Oe(n))}}};const Df={kernelName:Bo,gradFunc:e=>({x:()=>B(e)})};const Ff={kernelName:$o,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,o=q(n.shape,r.shape),i=()=>{const s=U(e,E(r,"float32")),c=ae(n.shape,o);return c.length>0?x(W(s,c),n.shape):s},a=()=>{let s=S(e,E(n,"float32"));const c=ae(r.shape,o);c.length>0&&(s=x(W(s,c),r.shape));const p=H(r);return re(U(s,E(p,"float32")))};return{a:i,b:a}}};const Mf={kernelName:Go,inputsToSave:["x","mean","variance","scale"],gradFunc:(e,t,n)=>{const{varianceEpsilon:r}=n,[o,i,a,s]=t,c=s==null?k(1):s,p=ae(i.shape,o.shape),l=[];if(i.rank===1){for(let N=0;Ni.rank===1?x(S(S(e,Zt(x(b,[1,1,1,i.shape[0]]),l)),c),o.shape):x(S(S(e,b),c),o.shape),L=()=>{let N=S(S(b,k(-1)),m);return i.rank===1&&(N=W(N,p)),x(N,i.shape)},v=()=>{let N=S(S(y,h),m);return i.rank===1&&(N=W(N,p)),x(N,i.shape)},A=()=>{const N=S(h,b);let O=S(e,N);return i.rank===1&&(O=W(O,p)),x(O,i.shape)},R=()=>{let N=e;return i.rank===1&&(N=W(N,p)),x(N,i.shape)};return{x:w,mean:L,variance:v,scale:A,offset:R}}};const Bf={kernelName:jo,inputsToSave:["x","indices"],gradFunc:(e,t,n)=>{const[r,o]=t,{axis:i}=n,a=z(i,r.shape)[0],s=()=>{const c=r.shape,p=o.size,l=c.slice(0,a),h=l.length,m=c.slice(i,c.length).slice(1),b=m.length,y=Uf(0,h),w=Uf(h+1,h+1+b),L=Wf([l,[p],m]),v=x(e,L),A=x(o,[p]),R=Wf([[h],y,w]),N=Z(v,R);let O=Ss(N,A,r.shape[a]);const M=En(R);return O=Z(O,M),O};return{x:s,indices:()=>o}}};function Uf(e,t){const n=[];for(let r=e;r{const[n,r]=t;return{a:()=>B(n),b:()=>B(r)}}};const Gf={kernelName:qo,gradFunc:e=>({x:()=>E(e,"float32")})};const jf={kernelName:Ho,gradFunc:e=>({x:()=>B(e)})};const Pf={kernelName:zo,gradFunc:e=>({x:()=>B(e)})};const qf={kernelName:Yo,gradFunc:e=>({x:()=>B(e)})};const Hf={kernelName:Ko,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>U(e,C(n,1))}}};const zf={kernelName:Vo,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>U(e,E(n,"float32"))}}};const Yf={kernelName:Jo,inputsToSave:[],outputsToSave:[!0],gradFunc:(e,t,n)=>{const[r]=t,{axis:o}=n;return{logits:()=>{const i=!0,a=Oe(r);return _(e,S(W(e,o,i),a))}}}};function ST(e,t,n,r=5,o=1,i=1,a=.5){const s=l=>l.LRNGrad(n,e,t,r,o,i,a),c={x:e,y:t,dy:n},p={depthRadius:r,bias:o,alpha:i,beta:a};return g.runKernelFunc(s,c,null,ip,p)}const Vf=d({localResponseNormalizationBackprop_:ST});const Kf={kernelName:Xo,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{const[r,o]=t,{depthRadius:i,bias:a,alpha:s,beta:c}=n;return{x:()=>Vf(r,o,e,i,a,s,c)}}};function Oa(e,t,n,r,o){return t.rank{const i=S(e,E(Xt(n,t),e.dtype));return o==null?i:Z(i,o)}}}const Vh={kernelName:Zo,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{const r=n,{reductionIndices:o}=r,[i,a]=t,s=z(o,i.shape),c=fe(s,i.rank),p=Oa(e,a,i,s,c);return{x:()=>{let l=p.x();return c!=null&&(l=Z(l)),l}}}};const Jf={kernelName:Qo,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,o=()=>S(e,E(ut(n,r),"float32")),i=()=>S(e,E(Wn(n,r),"float32"));return{a:o,b:i}}};function vT(e,t,n,r,o,i=[1,1,1],a,s){const c=u(e,"dy","maxPool3dBackprop"),p=u(t,"input","maxPool3dBackprop"),l=u(n,"output","maxPool3dBackprop");let h=c,m=p,b=l,y=!1;p.rank===4&&(y=!0,h=x(c,[1,c.shape[0],c.shape[1],c.shape[2],c.shape[3]]),m=x(p,[1,p.shape[0],p.shape[1],p.shape[2],p.shape[3]]),b=x(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]])),f(h.rank===5,()=>`Error in maxPool3dBackprop: dy must be rank 5 but got rank ${h.rank}.`),f(m.rank===5,()=>`Error in maxPool3dBackprop: input must be rank 5 but got rank ${m.rank}.`),f(b.rank===5,()=>`Error in maxPool3dBackprop: output must be rank 5 but got rank ${b.rank}.`),f(pe(o,i),()=>`Error in maxPool3dBackprop: Either strides or dilations must be 1. Got strides ${o} and dilations '${i}'`),s!=null&&f(X(a),()=>`Error in maxPool3dBackprop: pad must be an integer when using, dimRoundingMode ${s} but got pad ${a}.`);const w=R=>{const N=Kt(m.shape,r,o,i,a,s);return R.maxPool3dBackprop(h,m,b,N)},L={dy:h,input:m,output:b},v={filterSize:r,strides:o,dilations:i,pad:a,dimRoundingMode:s},A=g.runKernelFunc(w,L,null,ap,v);return y?x(A,[A.shape[1],A.shape[2],A.shape[3],A.shape[4]]):A}const Xf=d({maxPool3dBackprop_:vT});const Zf={kernelName:ti,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{const[r,o]=t,{filterSize:i,strides:a,dilations:s,pad:c,dimRoundingMode:p}=n,l=s==null?[1,1,1]:s;return{x:()=>Xf(e,r,o,i,a,l,c,p)}}};function IT(e,t,n,r,o,i,a){const s=u(e,"dy","maxPoolBackprop"),c=u(t,"input","maxPoolBackprop"),p=u(n,"output","maxPoolBackprop");f(c.rank===s.rank,()=>`Rank of input (${c.rank}) does not match rank of dy (${s.rank})`),f(s.rank===4,()=>`Error in maxPoolBackprop: dy must be rank 4 but got rank ${s.rank}.`),f(c.rank===4,()=>`Error in maxPoolBackprop: input must be rank 4 but got rank ${c.rank}.`),a!=null&&f(X(i),()=>`Error in maxPoolBackprop: pad must be an integer when using, dimRoundingMode ${a} but got pad ${i}.`);const l=b=>{const y=At(c.shape,r,o,1,i,a);return b.maxPoolBackprop(s,c,p,y)},h={dy:s,input:c,output:p},m={filterSize:r,strides:o,pad:i,dimRoundingMode:a};return g.runKernelFunc(l,h,null,sp,m)}const Qf=d({maxPoolBackprop_:IT});const eg={kernelName:ei,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{const[r,o]=t,{filterSize:i,strides:a,pad:s}=n;return{x:()=>Qf(e,r,o,i,a,s)}}};const tg={kernelName:ni,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{const r=n,{axis:o}=r,[i,a]=t,s=z(o,i.shape),c=fe(s,i.rank),p=Oa(e,a,i,s,c);return{x:()=>{let l=p.x();return c!=null&&(l=Z(l)),l}}}};const ng={kernelName:ri,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,o=()=>S(e,E(dt(n,r),"float32")),i=()=>S(e,E(tt(n,r),"float32"));return{a:o,b:i}}};const rg={kernelName:oi,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,o=q(n.shape,r.shape),i=()=>{const s=ae(n.shape,o);return s.length>0?x(W(e,s),n.shape):e},a=()=>{const s=S(e,re(Mn(U(n,r)))),c=ae(r.shape,o);return c.length>0?x(W(s,c),r.shape):s};return{a:i,b:a}}};const og={kernelName:ii,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,o=q(n.shape,r.shape),i=()=>{const s=S(e,E(r,"float32")),c=ae(n.shape,o);return c.length>0?x(W(s,c),n.shape):s},a=()=>{const s=S(e,E(n,"float32")),c=ae(r.shape,o);return c.length>0?x(W(s,c),r.shape):s};return{a:i,b:a}}};const ig={kernelName:si,gradFunc:e=>({x:()=>re(e)})};const sg={kernelName:ci,inputsToSave:["indices"],gradFunc:(e,t)=>{const n=t[0];return{indices:()=>Re(n.shape,"float32")}}};const ag={kernelName:ai,gradFunc:e=>({x:()=>B(e)})};const Kh={kernelName:pi,inputsToSave:["x"],gradFunc:(e,t,n)=>{const r=t[0],{paddings:o}=n,i=o.map(a=>a[0]);return{x:()=>V(e,i,r.shape)}}};const cg={kernelName:li,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(e,t)=>{const[n,r,o]=t,i=n,a=r,s=q(i.shape,a.shape),c=()=>{const l=E(a,"float32");let h=S(e,S(l,Xe(i,_(l,k(1)))));const m=ae(i.shape,s);return m.length>0&&(h=W(h,m)),x(h,i.shape)},p=()=>{const l=tt(i,0),h=Ee(l,wt(i),B(i));let m=S(e,S(o,h));const b=ae(a.shape,s);return b.length>0&&(m=W(m,b)),x(m,a.shape)};return{a:c,b:p}}};const pg={kernelName:hi,inputsToSave:["x","alpha"],gradFunc:(e,t)=>{const[n,r]=t,o=tt(n,0);return{x:()=>Ee(o,e,S(e,r)),alpha:()=>{let i=Ee(o,B(e),S(e,n));const a=ae(r.shape,e.shape);return a.length>0&&(i=W(i,a)),x(i,r.shape)}}}};const lg={kernelName:ui,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>U(e,re(H(n)))}}};const hg={kernelName:bi,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t,r=S(dt(n,6),Et(n));return{x:()=>S(e,E(r,"float32"))}}};const ug={kernelName:di,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>S(e,E(Et(n),"float32"))}}};const dg={kernelName:mi,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>x(e,n.shape)}}};const mg={kernelName:gi,inputsToSave:["images"],gradFunc:(e,t,n)=>{const[r]=t,o=s=>{const{alignCorners:c}=n;return s.resizeBilinearBackprop(e,r,c)},i={images:r},a=()=>g.runKernelFunc(o,i,null,bp,n);return{images:a}}};const fg={kernelName:fi,inputsToSave:["images"],gradFunc:(e,t,n)=>{const[r]=t,o=s=>{const{alignCorners:c}=n;return s.resizeNearestNeighborBackprop(e,r,c)},i={images:r},a=()=>g.runKernelFunc(o,i,null,gp,n);return{images:a}}};const gg={kernelName:wi,gradFunc:(e,t,n)=>{const{dims:r}=n,o=z(r,e.shape);return{x:()=>Ke(e,o)}}};const bg={kernelName:yi,gradFunc:e=>({x:()=>B(e)})};const wg={kernelName:xi,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>re(U(e,S(Xe(n,1.5),2)))}}};const yg={kernelName:Li,inputsToSave:["condition"],gradFunc:(e,t)=>{const[n]=t;return{condition:()=>E(B(n),"float32"),t:()=>S(e,E(n,e.dtype)),e:()=>S(e,E(Bn(n),e.dtype))}}};const xg={kernelName:Si,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>{const r=tt(n,k(0)),o=k(zh),i=k(Yh),a=S(e,i),s=S(S(e,o),Oe(E(n,"float32")));return Ee(r,a,s)}}}};const Lg={kernelName:Ni,outputsToSave:[!0],gradFunc:(e,t)=>{const[n]=t;return{x:()=>S(e,S(n,_(k(1),n)))}}};const Sg={kernelName:Ai,gradFunc:e=>({x:()=>B(e)})};const vg={kernelName:Ii,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>S(_n(E(n,"float32")),e)}}};const Ig={kernelName:Ti,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>S(ns(E(n,"float32")),e)}}};const Tg={kernelName:vi,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{begin:o,size:i}=n,a=r.shape,[s,c]=ts(r,o,i),p=[];for(let l=0;lje(e,p)}}};const Ag={kernelName:_i,outputsToSave:[!0],gradFunc:(e,t,n)=>{const[r]=t,{dim:o}=n,i=!0,a=S(e,r);return{logits:()=>_(a,S(W(a,[o],i),r))}}};const Ng={kernelName:Ri,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>S(e,Nt(n))}}};const Jh={kernelName:Oi,gradFunc:(e,t,n)=>{const{blockShape:r,paddings:o}=n;return{x:()=>kn(e,r,o)}}};const Xh={kernelName:ki,gradFunc:(e,t,n)=>{const{axis:r}=n;return{x:()=>Q(e,r)}}};const Rg={kernelName:Ci,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>U(e,S(de(E(n,"float32")),2))}}};const Cg={kernelName:yp,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>S(e,S(E(n,"float32"),2))}}};const Eg={kernelName:Di,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,o=k(2),i=()=>S(e,S(o,_(n,r))),a=()=>S(e,S(o,_(r,n)));return{a:i,b:a}}};const Og={kernelName:Pi,gradFunc:e=>({x:()=>B(e)})};const kg={kernelName:Fi,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,o=q(n.shape,r.shape),i=()=>{let s=e;const c=ae(n.shape,o);return c.length>0&&(s=W(s,c)),x(s,n.shape)},a=()=>{let s=e;const c=ae(r.shape,o);return c.length>0&&(s=W(s,c)),x(re(s),r.shape)};return{a:i,b:a}}};const _g={kernelName:Ei,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,o=r.shape.slice(),{axis:i}=n,a=z(i,r.shape);a.forEach(p=>{o[p]=1});const s=x(e,o),c=S(s,xt(r.shape,"float32"));return{x:()=>c}}};const Dg={kernelName:Mi,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>U(e,H(_n(n)))}}};const Fg={kernelName:Ui,outputsToSave:[!0],gradFunc:(e,t)=>{const[n]=t;return{x:()=>S(_(k(1),H(n)),e)}}};const Mg={kernelName:Wi,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{reps:o}=n,i=()=>{let a=B(r);if(r.rank===1)for(let s=0;s{const r=n,{perm:o}=r,i=En(o);return{x:()=>Z(e,i)}}};const Wg={kernelName:$i,gradFunc:(e,t,n)=>{const r=n,{axis:o}=r;return{value:()=>Ue(e,o)}}};const Bg={kernelName:Gi,inputsToSave:["segmentIds"],gradFunc:(e,t)=>{const[n]=t,r=()=>TT(e,n);return{x:r}}};function TT(e,t){const n=Ct(t,B(t)),r=Un(e,n);let o=ut(t,k(0,"int32"));const i=r.rank-o.rank;for(let s=0;s({x:()=>B(e)})};const AT=[Jm,Xm,Zm,Qm,ef,tf,nf,rf,of,sf,af,cf,lf,uf,df,mf,ff,gf,bf,wf,yf,Lf,xf,vf,If,Tf,Af,Nf,Rf,Cf,Ef,Of,kf,_f,Ff,Df,Mf,Bf,$f,Gf,jf,Pf,qf,Hf,zf,Yf,Kf,Vh,Vh,Jf,Zf,eg,tg,ng,rg,og,ig,sg,ag,Kh,Kh,cg,pg,lg,hg,ug,dg,mg,fg,gg,bg,wg,yg,xg,Lg,Sg,vg,Ig,Tg,Ag,Ng,Jh,Jh,Xh,Xh,Rg,Eg,Cg,Og,kg,_g,Dg,Fg,Mg,Ug,Wg,Bg,$g];for(const e of AT)Tp(e);const js={};me(js,{Abs:()=>so,Acos:()=>ao,Acosh:()=>co,AdadeltaOptimizer:()=>Zn,AdagradOptimizer:()=>Qn,AdamOptimizer:()=>er,AdamaxOptimizer:()=>tr,Add:()=>An,AddN:()=>po,All:()=>Cc,Any:()=>Ec,ArgMax:()=>lo,ArgMin:()=>ho,Asin:()=>uo,Asinh:()=>mo,Atan:()=>fo,Atan2:()=>bo,Atanh:()=>go,AvgPool:()=>wo,AvgPool3D:()=>yo,AvgPool3DBackprop:()=>kc,AvgPoolBackprop:()=>Oc,BatchMatMul:()=>xo,BatchToSpaceND:()=>Lo,BroadcastTo:()=>So,Cast:()=>Nn,Ceil:()=>vo,ClipByValue:()=>Io,Complex:()=>_c,Concat:()=>To,Conv2D:()=>Ao,Conv2DBackpropFilter:()=>Dc,Conv2DBackpropInput:()=>No,Conv3D:()=>Ro,Conv3DBackpropFilterV2:()=>Fc,Conv3DBackpropInputV2:()=>Mc,Cos:()=>Co,Cosh:()=>Eo,CropAndResize:()=>Uc,Cumsum:()=>Oo,DataStorage:()=>bT,DepthToSpace:()=>Wc,DepthwiseConv2dNative:()=>ko,DepthwiseConv2dNativeBackpropFilter:()=>Bc,DepthwiseConv2dNativeBackpropInput:()=>$c,Diag:()=>Gc,Dilation2D:()=>_o,Dilation2DBackpropFilter:()=>Pc,Dilation2DBackpropInput:()=>jc,Div:()=>Do,ENV:()=>Tc,Elu:()=>Fo,EluGrad:()=>qc,Environment:()=>Ic,Equal:()=>Hc,Erf:()=>Mo,Exp:()=>Uo,Expm1:()=>Wo,FFT:()=>zc,Fill:()=>Yc,FlipLeftRight:()=>Vc,Floor:()=>Bo,FloorDiv:()=>$o,FromPixels:()=>na,FusedBatchNorm:()=>Go,FusedConv2D:()=>oa,FusedDepthwiseConv2D:()=>ia,GatherNd:()=>Kc,GatherV2:()=>jo,Greater:()=>Jc,GreaterEqual:()=>Po,IFFT:()=>Xc,Identity:()=>qo,Imag:()=>Zc,IsFinite:()=>Ho,IsInf:()=>zo,IsNan:()=>Yo,KernelBackend:()=>wT,LRN:()=>Xo,LRNBackprop:()=>ip,Less:()=>Qc,LessEqual:()=>ep,LinSpace:()=>tp,Log:()=>Vo,Log1p:()=>Ko,LogSoftmax:()=>Jo,LogicalAnd:()=>np,LogicalNot:()=>rp,LogicalOr:()=>op,Max:()=>Zo,MaxPool:()=>ei,MaxPool3D:()=>ti,MaxPool3DBackprop:()=>ap,MaxPoolBackprop:()=>sp,MaxPoolWithArgmax:()=>cp,Maximum:()=>Qo,Mean:()=>Ew,Min:()=>ni,Minimum:()=>ri,Mod:()=>oi,MomentumOptimizer:()=>nr,Multiply:()=>ii,Negate:()=>si,NonMaxSuppressionV3:()=>lp,NonMaxSuppressionV4:()=>hp,NonMaxSuppressionV5:()=>up,NotEqual:()=>pp,OneHot:()=>ci,OnesLike:()=>ai,Optimizer:()=>it,PadV2:()=>pi,Pool:()=>Ow,Pow:()=>li,Prelu:()=>hi,Prod:()=>dp,RMSPropOptimizer:()=>rr,Range:()=>mp,Rank:()=>Fp,Real:()=>fp,Reciprocal:()=>ui,Reduction:()=>be,Relu:()=>di,Relu6:()=>bi,Reshape:()=>mi,ResizeBilinear:()=>gi,ResizeBilinearGrad:()=>bp,ResizeNearestNeighbor:()=>fi,ResizeNearestNeighborGrad:()=>gp,Reverse:()=>wi,RotateWithOffset:()=>vp,Round:()=>yi,Rsqrt:()=>xi,SGDOptimizer:()=>tn,ScatterNd:()=>wp,SelectV2:()=>Li,Selu:()=>Si,Sigmoid:()=>Ni,Sign:()=>Ai,Sin:()=>Ii,Sinh:()=>Ti,Slice:()=>vi,Softmax:()=>_i,Softplus:()=>Ri,SpaceToBatchND:()=>Oi,SparseToDense:()=>xp,SplitV:()=>ki,Sqrt:()=>Ci,Square:()=>yp,SquaredDifference:()=>Di,Step:()=>Pi,StridedSlice:()=>Lp,Sub:()=>Fi,Sum:()=>Ei,Tan:()=>Mi,Tanh:()=>Ui,Tensor:()=>ne,TensorBuffer:()=>Sr,Tile:()=>Wi,TopK:()=>Sp,Transpose:()=>Bi,Unpack:()=>$i,UnsortedSegmentSum:()=>Gi,Variable:()=>$t,ZerosLike:()=>ji,_FusedMatMul:()=>ra,abs:()=>Ce,acos:()=>jp,acosh:()=>Pp,add:()=>C,addN:()=>qp,addStrict:()=>Fd,all:()=>Yp,any:()=>Vp,argMax:()=>Kp,argMin:()=>Jp,asin:()=>Xp,asinh:()=>Zp,atan:()=>Qp,atan2:()=>el,atanh:()=>tl,avgPool:()=>ht,avgPool3d:()=>il,backend:()=>Yy,backend_util:()=>Hm,basicLSTMCell:()=>gl,batchNorm:()=>Jt,batchNorm2d:()=>bl,batchNorm3d:()=>wl,batchNorm4d:()=>yl,batchToSpaceND:()=>kn,booleanMaskAsync:()=>Rd,broadcastTo:()=>Nr,browser:()=>Ur,buffer:()=>Me,cast:()=>E,ceil:()=>xl,clipByValue:()=>Ll,clone:()=>Rt,complex:()=>Ve,concat:()=>Q,concat1d:()=>Sl,concat2d:()=>vl,concat3d:()=>Il,concat4d:()=>Tl,conv1d:()=>Al,conv2d:()=>ve,conv2dTranspose:()=>Nl,conv3d:()=>Rl,conv3dTranspose:()=>Cl,cos:()=>_n,cosh:()=>ns,cosineWindow:()=>kr,cumsum:()=>rs,customGrad:()=>Je,deprecationWarn:()=>xe,depthToSpace:()=>El,depthwiseConv2d:()=>Dn,device_util:()=>fd,diag:()=>Ol,dilation2d:()=>kl,disableDeprecationWarnings:()=>Dy,dispose:()=>Le,disposeVariables:()=>Fy,div:()=>U,divNoNan:()=>_l,divStrict:()=>Md,dot:()=>Dl,dropout:()=>Qd,elu:()=>is,enableDebugMode:()=>_y,enableProdMode:()=>ky,enclosingPowerOfTwo:()=>xa,engine:()=>My,env:()=>ce,equal:()=>Xt,equalStrict:()=>Cd,erf:()=>Fl,exp:()=>Oe,expandDims:()=>et,expm1:()=>Ml,eye:()=>ss,fft:()=>Fn,fill:()=>Ge,findBackend:()=>qy,findBackendFactory:()=>Hy,floor:()=>Mn,floorDiv:()=>os,fused:()=>Dh,gather:()=>Un,gatherND:()=>Xd,gather_util:()=>jm,getBackend:()=>jy,getGradient:()=>sa,getKernel:()=>Hi,getKernelsForBackend:()=>aa,grad:()=>bL,grads:()=>wL,greater:()=>tt,greaterEqual:()=>ut,greaterEqualStrict:()=>Ed,greaterStrict:()=>Od,ifft:()=>dn,imag:()=>Qt,image:()=>Ra,inTopKAsync:()=>em,io:()=>Mr,irfft:()=>as,isFinite:()=>Wl,isInf:()=>Bl,isNaN:()=>$l,keep:()=>ol,kernel_impls:()=>Km,leakyRelu:()=>Gl,less:()=>Wn,lessEqual:()=>dt,lessEqualStrict:()=>kd,lessStrict:()=>_d,linalg:()=>Em,linspace:()=>jl,localResponseNormalization:()=>Pl,log:()=>wt,log1p:()=>cs,logSigmoid:()=>Hl,logSoftmax:()=>zl,logSumExp:()=>ls,logicalAnd:()=>yt,logicalNot:()=>Bn,logicalOr:()=>hs,logicalXor:()=>Yl,losses:()=>Om,matMul:()=>Y,math:()=>Gm,max:()=>mt,maxPool:()=>Ie,maxPool3d:()=>Vl,maxPoolWithArgmax:()=>Kl,maximum:()=>Ct,maximumStrict:()=>Ud,mean:()=>mn,memory:()=>Uy,min:()=>fn,minimum:()=>$n,minimumStrict:()=>Wd,mod:()=>us,modStrict:()=>Bd,moments:()=>Jl,movingAverage:()=>Hd,mul:()=>S,mulStrict:()=>$d,multiRNNCell:()=>Xl,multinomial:()=>Zl,neg:()=>re,nextFrame:()=>PI,norm:()=>Or,notEqual:()=>Gn,notEqualStrict:()=>Dd,oneHot:()=>Cr,ones:()=>xt,onesLike:()=>ga,op:()=>d,outerProduct:()=>Ql,pad:()=>je,pad1d:()=>eh,pad2d:()=>th,pad3d:()=>nh,pad4d:()=>rh,pool:()=>oh,pow:()=>Xe,powStrict:()=>Gd,prelu:()=>ds,print:()=>ih,prod:()=>sh,profile:()=>Wy,rand:()=>ah,randomGamma:()=>hh,randomNormal:()=>uh,randomUniform:()=>fs,range:()=>Er,ready:()=>Gy,real:()=>Gt,reciprocal:()=>dh,registerBackend:()=>zy,registerGradient:()=>Tp,registerKernel:()=>kw,relu:()=>se,relu6:()=>gs,removeBackend:()=>Py,reshape:()=>x,reverse:()=>Ke,reverse1d:()=>mh,reverse2d:()=>fh,reverse3d:()=>gh,reverse4d:()=>bh,rfft:()=>Pn,round:()=>yh,rsqrt:()=>bs,scalar:()=>k,scatterND:()=>Vd,scatter_util:()=>zd,selu:()=>xh,separableConv2d:()=>qn,serialization:()=>qm,setBackend:()=>$y,setPlatform:()=>Vy,setdiff1dAsync:()=>Lh,sigmoid:()=>Nt,sign:()=>Sh,signal:()=>Cm,sin:()=>ws,sinh:()=>ys,slice:()=>V,slice1d:()=>vh,slice2d:()=>Ih,slice3d:()=>xs,slice4d:()=>Th,slice_util:()=>yd,softmax:()=>en,softplus:()=>ps,spaceToBatchND:()=>jn,sparseToDense:()=>Jd,spectral:()=>Rm,split:()=>jt,sqrt:()=>de,square:()=>H,squaredDifference:()=>Hn,squaredDifferenceStrict:()=>jd,squeeze:()=>zn,stack:()=>Ue,step:()=>Et,stridedSlice:()=>Ah,sub:()=>_,subStrict:()=>Pd,sum:()=>W,sumOutType:()=>ey,tan:()=>Nh,tanh:()=>Ar,tensor:()=>Ye,tensor1d:()=>ge,tensor2d:()=>ft,tensor3d:()=>Ls,tensor4d:()=>Pt,tensor5d:()=>Rh,tensor6d:()=>Ch,tensor_util:()=>ud,test_util:()=>Id,tidy:()=>F,tile:()=>Zt,time:()=>By,topk:()=>Eh,train:()=>GI,transpose:()=>Z,truncatedNormal:()=>Oh,unregisterGradient:()=>Dw,unregisterKernel:()=>_w,unsortedSegmentSum:()=>Ss,unstack:()=>We,upcastType:()=>Ir,util:()=>Xu,valueAndGrad:()=>yL,valueAndGrads:()=>xL,variable:()=>kh,variableGrads:()=>ql,version_core:()=>$I,where:()=>Ee,whereAsync:()=>vs,zeros:()=>Re,zerosLike:()=>B});function nn(e,t,n=!1){if(e.beginPath(),t.slice(1).forEach(({x:r,y:o},i)=>{const a=t[i];e.moveTo(a.x,a.y),e.lineTo(r,o)}),n){const r=t[t.length-1],o=t[0];if(!r||!o)return;e.moveTo(r.x,r.y),e.lineTo(o.x,o.y)}e.stroke()}class Qe{constructor(e,t){if(!kt(e)||!kt(t))throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({width:e,height:t})}`);this._width=e,this._height=t}get width(){return this._width}get height(){return this._height}reverse(){return new Qe(1/this.width,1/this.height)}}const qs={};me(qs,{computeReshapedDimensions:()=>eu,getCenterPoint:()=>ar,isDimensions:()=>_a,isEven:()=>ka,isFloat:()=>Qh,isTensor:()=>or,isTensor1D:()=>NT,isTensor2D:()=>Zh,isTensor3D:()=>ir,isTensor4D:()=>gt,isValidNumber:()=>kt,isValidProbablitiy:()=>Br,range:()=>qt,round:()=>sr});function or(e,t){return e instanceof ne&&e.shape.length===t}function NT(e){return or(e,1)}function Zh(e){return or(e,2)}function ir(e){return or(e,3)}function gt(e){return or(e,4)}function Qh(e){return e%1!==0}function ka(e){return e%2===0}function sr(e,t=2){const n=Math.pow(10,t);return Math.floor(e*n)/n}function _a(e){return e&&e.width&&e.height}function eu({width:e,height:t},n){const r=n/Math.max(t,e);return new Qe(Math.round(e*r),Math.round(t*r))}function ar(e){return e.reduce((t,n)=>t.add(n),new J(0,0)).div(new J(e.length,e.length))}function qt(e,t,n){return Array(e).fill(0).map((r,o)=>t+o*n)}function kt(e){return!!e&&e!==Infinity&&e!==-Infinity&&!isNaN(e)||e===0}function Br(e){return kt(e)&&0<=e&&e<=1}class J{constructor(e,t){this._x=e,this._y=t}get x(){return this._x}get y(){return this._y}add(e){return new J(this.x+e.x,this.y+e.y)}sub(e){return new J(this.x-e.x,this.y-e.y)}mul(e){return new J(this.x*e.x,this.y*e.y)}div(e){return new J(this.x/e.x,this.y/e.y)}abs(){return new J(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(Math.pow(this.x,2)+Math.pow(this.y,2))}floor(){return new J(Math.floor(this.x),Math.floor(this.y))}}class he{constructor(e,t=!0){const n=e||{},r=[n.left,n.top,n.right,n.bottom].every(kt),o=[n.x,n.y,n.width,n.height].every(kt);if(!o&&!r)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(n)}`);const[i,a,s,c]=o?[n.x,n.y,n.width,n.height]:[n.left,n.top,n.right-n.left,n.bottom-n.top];he.assertIsValidBox({x:i,y:a,width:s,height:c},"Box.constructor",t),this._x=i,this._y=a,this._width=s,this._height=c}static isRect(e){return!!e&&[e.x,e.y,e.width,e.height].every(kt)}static assertIsValidBox(e,t,n=!1){if(!he.isRect(e))throw new Error(`${t} - invalid box: ${JSON.stringify(e)}, expected object with properties x, y, width, height`);if(!n&&(e.width<0||e.height<0))throw new Error(`${t} - width (${e.width}) and height (${e.height}) must be positive numbers`)}get x(){return this._x}get y(){return this._y}get width(){return this._width}get height(){return this._height}get left(){return this.x}get top(){return this.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get area(){return this.width*this.height}get topLeft(){return new J(this.left,this.top)}get topRight(){return new J(this.right,this.top)}get bottomLeft(){return new J(this.left,this.bottom)}get bottomRight(){return new J(this.right,this.bottom)}round(){const[e,t,n,r]=[this.x,this.y,this.width,this.height].map(o=>Math.round(o));return new he({x:e,y:t,width:n,height:r})}floor(){const[e,t,n,r]=[this.x,this.y,this.width,this.height].map(o=>Math.floor(o));return new he({x:e,y:t,width:n,height:r})}toSquare(){let{x:e,y:t,width:n,height:r}=this;const o=Math.abs(n-r);return nt&&(a=-l+t+n,l=t),h>e&&(s=-h+e+r,h=e),c<1&&(s=2-c,c=1),p<1&&(s=2-p,p=1),{dy:i,edy:s,dx:o,edx:a,y:p,ey:h,x:c,ex:l,w:n,h:r}}calibrate(e){return new he({left:this.left+e.left*this.width,top:this.top+e.top*this.height,right:this.right+e.right*this.width,bottom:this.bottom+e.bottom*this.height}).toSquare().round()}}class gr extends he{constructor(e,t,n,r,o=!1){super({left:e,top:t,right:n,bottom:r},o)}}class Tn{constructor(e,t,n,r,o){this._imageDims=new Qe(o.width,o.height),this._score=e,this._classScore=t,this._className=n,this._box=new he(r).rescale(this._imageDims)}get score(){return this._score}get classScore(){return this._classScore}get className(){return this._className}get box(){return this._box}get imageDims(){return this._imageDims}get imageWidth(){return this.imageDims.width}get imageHeight(){return this.imageDims.height}get relativeBox(){return new he(this._box).rescale(this.imageDims.reverse())}forSize(e,t){return new Tn(this.score,this.classScore,this.className,this.relativeBox,{width:e,height:t})}}class ye extends Tn{constructor(e,t,n){super(e,e,"",t,n)}forSize(e,t){const{score:n,relativeBox:r,imageDims:o}=super.forSize(e,t);return new ye(n,r,o)}}function Vs(e,t,n=!0){const r=Math.max(0,Math.min(e.right,t.right)-Math.max(e.left,t.left)),o=Math.max(0,Math.min(e.bottom,t.bottom)-Math.max(e.top,t.top)),i=r*o;return n?i/(e.area+t.area-i):i/Math.min(e.area,t.area)}function Ys(e){const t=e.map(s=>s.x),n=e.map(s=>s.y),r=t.reduce((s,c)=>ccss({score:a,boxIndex:s})).sort((a,s)=>a.score-s.score).map(a=>a.boxIndex);const i=[];for(;o.length>0;){const a=o.pop();i.push(a);const s=o,c=[];for(let p=0;pc[l]<=n)}return i}function bt(e,t){return F(()=>{const[n,r,o]=t,i=Ge([...e.shape.slice(0,3),1],n),a=Ge([...e.shape.slice(0,3),1],r),s=Ge([...e.shape.slice(0,3),1],o),c=Q([i,a,s],3);return _(e,c)})}function Hs(e,t=!1){return F(()=>{const[n,r]=e.shape.slice(1);if(n===r)return e;const o=Math.abs(n-r),i=Math.round(o*(t?.5:1)),a=n>r?2:1,s=m=>{const b=e.shape.slice();return b[a]=m,Ge(b,0)},c=s(i),p=o-c.shape[a],l=t&&p?s(p):null,h=[l,e,c].filter(m=>!!m).map(m=>m.toFloat());return Q(h,a)})}function $u(e){const t=e.slice();for(let n=t.length-1;n>0;n--){const r=Math.floor(Math.random()*(n+1)),o=t[n];t[n]=t[r],t[r]=o}return t}function ur(e){return 1/(1+Math.exp(-e))}function Gu(e){return Math.log(e/(1-e))}class ea extends he{constructor(e,t,n,r,o=!1){super({x:e,y:t,width:n,height:r},o)}}const RT=.5,CT=.43,ET=.45;class ct{constructor(e,t,n=new J(0,0)){const{width:r,height:o}=t;this._imgDims=new Qe(r,o),this._shift=n,this._positions=e.map(i=>i.mul(new J(r,o)).add(n))}get shift(){return new J(this._shift.x,this._shift.y)}get imageWidth(){return this._imgDims.width}get imageHeight(){return this._imgDims.height}get positions(){return this._positions}get relativePositions(){return this._positions.map(e=>e.sub(this._shift).div(new J(this.imageWidth,this.imageHeight)))}forSize(e,t){return new this.constructor(this.relativePositions,{width:e,height:t})}shiftBy(e,t){return new this.constructor(this.relativePositions,this._imgDims,new J(e,t))}shiftByPoint(e){return this.shiftBy(e.x,e.y)}align(e,t={}){if(e){const o=e instanceof ye?e.box.floor():new he(e);return this.shiftBy(o.x,o.y).align(null,t)}const{useDlibAlignment:n,minBoxPadding:r}=Object.assign({},{useDlibAlignment:!1,minBoxPadding:.2},t);return n?this.alignDlib():this.alignMinBbox(r)}alignDlib(){const e=this.getRefPointsForAlignment(),[t,n,r]=e,o=l=>r.sub(l).magnitude(),i=(o(t)+o(n))/2,a=Math.floor(i/ET),s=ar(e),c=Math.floor(Math.max(0,s.x-RT*a)),p=Math.floor(Math.max(0,s.y-CT*a));return new ea(c,p,Math.min(a,this.imageWidth+c),Math.min(a,this.imageHeight+p))}alignMinBbox(e){const t=Ys(this.positions);return t.pad(t.width*e,t.height*e)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}}class Yu extends ct{getRefPointsForAlignment(){const e=this.positions;return[e[0],e[1],ar([e[3],e[4]])]}}class fr extends ct{getJawOutline(){return this.positions.slice(0,17)}getLeftEyeBrow(){return this.positions.slice(17,22)}getRightEyeBrow(){return this.positions.slice(22,27)}getNose(){return this.positions.slice(27,36)}getLeftEye(){return this.positions.slice(36,42)}getRightEye(){return this.positions.slice(42,48)}getMouth(){return this.positions.slice(48,68)}getRefPointsForAlignment(){return[this.getLeftEye(),this.getRightEye(),this.getMouth()].map(ar)}}class io{constructor(e,t){this._label=e,this._distance=t}get label(){return this._label}get distance(){return this._distance}toString(e=!0){return`${this.label}${e?` (${sr(this.distance)})`:""}`}}class oo extends he{constructor(e,t){super(e);this._label=t}static assertIsValidLabeledBox(e,t){if(he.assertIsValidBox(e,t),!kt(e.label))throw new Error(`${t} - expected property label (${e.label}) to be a number`)}get label(){return this._label}}class ln{constructor(e,t){if(!(typeof e=="string"))throw new Error("LabeledFaceDescriptors - constructor expected label to be a string");if(!Array.isArray(t)||t.some(n=>!(n instanceof Float32Array)))throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array");this._label=e,this._descriptors=t}get label(){return this._label}get descriptors(){return this._descriptors}toJSON(){return{label:this.label,descriptors:this.descriptors.map(e=>Array.from(e))}}static fromJSON(e){const t=e.descriptors.map(n=>new Float32Array(n));return new ln(e.label,t)}}class zu extends oo{constructor(e,t,n,r){super(e,t);this._score=n,this._classScore=r}static assertIsValidPredictedBox(e,t){if(oo.assertIsValidLabeledBox(e,t),!Br(e.score)||!Br(e.classScore))throw new Error(`${t} - expected properties score (${e.score}) and (${e.classScore}) to be a number between [0, 1]`)}get score(){return this._score}get classScore(){return this._classScore}}function It(e){return e.detection instanceof ye}function cn(e,t){const n={detection:t};return Object.assign({},e,n)}function tc(){const e=window.fetch||function(){throw new Error("fetch - missing fetch implementation for browser environment")},t=function(){throw new Error("readFile - filesystem not available for browser environment")};return{Canvas:HTMLCanvasElement,CanvasRenderingContext2D,Image:HTMLImageElement,ImageData,Video:HTMLVideoElement,createCanvasElement:()=>document.createElement("canvas"),createImageElement:()=>document.createElement("img"),fetch:e,readFile:t}}function Us(e){let t="";if(!e)try{e=require("fs")}catch(r){t=r.toString()}const n=e?function(r){return new Promise((o,i)=>{e.readFile(r,function(a,s){return a?i(a):o(s)})})}:function(){throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)};return{readFile:n}}function nc(){const e=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,n=function(){if(e)return new e();throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},r=function(){if(t)return new t();throw new Error("createImageElement - missing Image implementation for nodejs environment")},o=global.fetch||function(){throw new Error("fetch - missing fetch implementation for nodejs environment")},i=Us();return{Canvas:e||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:n,createImageElement:r,fetch:o,...i}}function rc(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}const Gg=ee(qe());function wn(e){return!Gg.env.isNodejs()&&typeof e=="string"?document.getElementById(e):e}const jg=ee(qe());function Ze(e){const{Canvas:t,CanvasRenderingContext2D:n}=jg.env.getEnv();if(e instanceof n)return e;const r=wn(e);if(!(r instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");const o=r.getContext("2d");if(!o)throw new Error("resolveContext2d - canvas 2d context is null");return o}var Ht;(function(e){e.TOP_LEFT="TOP_LEFT",e.TOP_RIGHT="TOP_RIGHT",e.BOTTOM_LEFT="BOTTOM_LEFT",e.BOTTOM_RIGHT="BOTTOM_RIGHT"})(Ht||(Ht={}));class Da{constructor(e={}){const{anchorPosition:t,backgroundColor:n,fontColor:r,fontSize:o,fontStyle:i,padding:a}=e;this.anchorPosition=t||Ht.TOP_LEFT,this.backgroundColor=n||"rgba(0, 0, 0, 0.5)",this.fontColor=r||"rgba(255, 255, 255, 1)",this.fontSize=o||14,this.fontStyle=i||"Georgia",this.padding=a||4}}class $r{constructor(e,t,n={}){this.text=typeof e=="string"?[e]:e instanceof $r?e.text:e,this.anchor=t,this.options=new Da(n)}measureWidth(e){const{padding:t}=this.options;return this.text.map(n=>e.measureText(n).width).reduce((n,r)=>n{const b=s+l.x,y=s+l.y+(m+1)*i;n.fillText(h,b,y)})}}class Pg{constructor(e={}){const{boxColor:t,lineWidth:n,label:r,drawLabelOptions:o}=e;this.boxColor=t||"rgba(0, 0, 255, 1)",this.lineWidth=n||2,this.label=r;const i={anchorPosition:Ht.BOTTOM_LEFT,backgroundColor:this.boxColor};this.drawLabelOptions=new Da(Object.assign({},i,o))}}class tu{constructor(e,t={}){this.box=new he(e),this.options=new Pg(t)}draw(e){const t=Ze(e),{boxColor:n,lineWidth:r}=this.options,{x:o,y:i,width:a,height:s}=this.box;t.strokeStyle=n,t.lineWidth=r,t.strokeRect(o,i,a,s);const{label:c}=this.options;c&&new $r([c],{x:o-r/2,y:i},this.options.drawLabelOptions).draw(e)}}function OT(e,t){const n=Array.isArray(t)?t:[t];n.forEach(r=>{const o=r instanceof ye?r.score:It(r)?r.detection.score:void 0,i=r instanceof ye?r.box:It(r)?r.detection.box:new he(r),a=o?`${sr(o)}`:void 0;new tu(i,{label:a}).draw(e)})}const qg=ee(qe());function Zr(e){const{Image:t,Video:n}=qg.env.getEnv();return e instanceof t&&e.complete||e instanceof n&&e.readyState>=3}const Hg=ee(qe());function uc(e){return new Promise((t,n)=>{if(e instanceof Hg.env.getEnv().Canvas||Zr(e))return t();function r(i){if(!i.currentTarget)return;i.currentTarget.removeEventListener("load",r),i.currentTarget.removeEventListener("error",o),t(i)}function o(i){if(!i.currentTarget)return;i.currentTarget.removeEventListener("load",r),i.currentTarget.removeEventListener("error",o),n(i)}e.addEventListener("load",r),e.addEventListener("error",o)})}const zg=ee(qe());function hc(e){return new Promise((t,n)=>{if(!(e instanceof Blob))return n("bufferToImage - expected buf to be of type: Blob");const r=new FileReader();r.onload=()=>{if(typeof r.result!="string")return n("bufferToImage - expected reader.result to be a string, in onload");const o=zg.env.getEnv().createImageElement();o.onload=()=>t(o),o.onerror=n,o.src=r.result},r.onerror=n,r.readAsDataURL(e)})}const Yg=ee(qe());function yn(e){const{Image:t,Video:n}=Yg.env.getEnv();return e instanceof t?new Qe(e.naturalWidth,e.naturalHeight):e instanceof n?new Qe(e.videoWidth,e.videoHeight):new Qe(e.width,e.height)}const nu=ee(qe());function hr({width:e,height:t}){const{createCanvasElement:n}=nu.env.getEnv(),r=n();return r.width=e,r.height=t,r}function Qr(e,t){const{ImageData:n}=nu.env.getEnv();if(!(e instanceof n)&&!Zr(e))throw new Error("createCanvasFromMedia - media has not finished loading yet");const{width:r,height:o}=t||yn(e),i=hr({width:r,height:o});return e instanceof n?Ze(i).putImageData(e,0,0):Ze(i).drawImage(e,0,0,r,o),i}const Vg=ee(qe());async function pc(e,t){const n=t||Vg.env.getEnv().createCanvasElement(),[r,o,i]=e.shape.slice(gt(e)?1:0),a=F(()=>e.as3D(r,o,i).toInt());return await Ur.toPixels(a,n),a.dispose(),n}const Kg=ee(qe());function Ws(e){const{Image:t,Canvas:n,Video:r}=Kg.env.getEnv();return e instanceof t||e instanceof n||e instanceof r}const Jg=ee(qe());function cc(e,t,n=!1){const{Image:r,Canvas:o}=Jg.env.getEnv();if(!(e instanceof r||e instanceof o))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");const i=yn(e),a=t/Math.max(i.height,i.width),s=a*i.width,c=a*i.height,p=hr({width:t,height:t}),l=e instanceof o?e:Qr(e),h=Math.abs(s-c)/2,m=n&&s{if(ir(n)){this._imageTensors[r]=n,this._inputDimensions[r]=n.shape;return}if(gt(n)){const i=n.shape[0];if(i!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${i} passed, but not supported in input array`);this._imageTensors[r]=n,this._inputDimensions[r]=n.shape.slice(1);return}const o=n instanceof ru.env.getEnv().Canvas?n:Qr(n);this._canvases[r]=o,this._inputDimensions[r]=[o.height,o.width,3]})}get imageTensors(){return this._imageTensors}get canvases(){return this._canvases}get isBatchInput(){return this.batchSize>1||this._treatAsBatchInput}get batchSize(){return this._batchSize}get inputDimensions(){return this._inputDimensions}get inputSize(){return this._inputSize}get reshapedInputDimensions(){return qt(this.batchSize,0,1).map((e,t)=>this.getReshapedInputDimensions(t))}getInput(e){return this.canvases[e]||this.imageTensors[e]}getInputDimensions(e){return this._inputDimensions[e]}getInputHeight(e){return this._inputDimensions[e][0]}getInputWidth(e){return this._inputDimensions[e][1]}getReshapedInputDimensions(e){if(typeof this.inputSize!="number")throw new Error("getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet");const t=this.getInputWidth(e),n=this.getInputHeight(e);return eu({width:t,height:n},this.inputSize)}toBatchTensor(e,t=!0){return this._inputSize=e,F(()=>{const n=qt(this.batchSize,0,1).map(o=>{const i=this.getInput(o);if(i instanceof ne){let a=gt(i)?i:i.expandDims();return a=Hs(a,t),(a.shape[1]!==e||a.shape[2]!==e)&&(a=Ra.resizeBilinear(a,[e,e])),a.as3D(e,e,3)}if(i instanceof ru.env.getEnv().Canvas)return Ur.fromPixels(cc(i,e,t));throw new Error(`toBatchTensor - at batchIdx ${o}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${i}`)}),r=Ue(n.map(o=>o.toFloat())).as4D(this.batchSize,e,e,3);return r})}}async function ac(e){if(e instanceof Bs)return e;let t=Array.isArray(e)?e:[e];if(!t.length)throw new Error("toNetInput - empty array passed as input");const n=o=>Array.isArray(e)?` at input index ${o}:`:"",r=t.map(wn);return r.forEach((o,i)=>{if(!Ws(o)&&!ir(o)&&!gt(o))throw typeof t[i]=="string"?new Error(`toNetInput -${n(i)} string passed, but could not resolve HTMLElement for element id ${t[i]}`):new Error(`toNetInput -${n(i)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(gt(o)){const a=o.shape[0];if(a!==1)throw new Error(`toNetInput -${n(i)} tf.Tensor4D with batchSize ${a} passed, but not supported in input array`)}}),await Promise.all(r.map(o=>Ws(o)&&uc(o))),new Bs(r,Array.isArray(e))}const Xg=ee(qe());async function ow(e,t){const{Canvas:n}=Xg.env.getEnv();let r=e;if(!(e instanceof n)){const a=await ac(e);if(a.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");const s=a.getInput(0);r=s instanceof n?s:await pc(s)}const o=Ze(r),i=t.map(a=>a instanceof ye?a.forSize(r.width,r.height).box.floor():a).map(a=>a.clipAtImageBorders(r.width,r.height));return i.map(({x:a,y:s,width:c,height:p})=>{const l=hr({width:c,height:p});return Ze(l).putImageData(o.getImageData(a,s,c,p),0,0),l})}async function iw(e,t){if(!ir(e)&&!gt(e))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(gt(e)&&e.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return F(()=>{const[n,r,o]=e.shape.slice(gt(e)?1:0),i=t.map(s=>s instanceof ye?s.forSize(r,n).box:s).map(s=>s.clipAtImageBorders(r,n)),a=i.map(({x:s,y:c,width:p,height:l})=>xs(e.as3D(n,r,o),[c,s,0],[l,p,o]));return a})}const Zg=ee(qe());async function xn(e,t){const n=Zg.env.getEnv().fetch,r=await n(e,t);if(!(r.status<400))throw new Error(`failed to fetch: (${r.status}) ${r.statusText}, from url: ${r.url}`);return r}async function rw(e){const t=await xn(e),n=await t.blob();if(!n.type.startsWith("image/"))throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${n.type}, for url: ${t.url}`);return hc(n)}async function lc(e){return(await xn(e)).json()}async function nw(e){return new Float32Array(await(await xn(e)).arrayBuffer())}function Fa(e,t){const n=`${t}-weights_manifest.json`;if(!e)return{modelBaseUri:"",manifestUri:n};if(e==="/")return{modelBaseUri:"/",manifestUri:`/${n}`};const r=e.startsWith("http://")?"http://":e.startsWith("https://")?"https://":"";e=e.replace(r,"");const o=e.split("/").filter(s=>s),i=e.endsWith(".json")?o[o.length-1]:n;let a=r+(e.endsWith(".json")?o.slice(0,o.length-1):o).join("/");return a=e.startsWith("/")?`/${a}`:a,{modelBaseUri:a,manifestUri:a==="/"?`/${i}`:`${a}/${i}`}}async function tw(e,t){const{manifestUri:n,modelBaseUri:r}=Fa(e,t),o=await lc(n);return Mr.loadWeights(o,r)}function ew(e,t,n=!1){const{width:r,height:o}=n?yn(t):t;return e.width=r,e.height=o,{width:r,height:o}}const Qg=ee(ot()),eb=ee(qe());class He{constructor(e){this._name=e,this._params=void 0,this._paramMappings=[]}get params(){return this._params}get paramMappings(){return this._paramMappings}get isLoaded(){return!!this.params}getParamFromPath(e){const{obj:t,objProp:n}=this.traversePropertyPath(e);return t[n]}reassignParamFromPath(e,t){const{obj:n,objProp:r}=this.traversePropertyPath(e);n[r].dispose(),n[r]=t}getParamList(){return this._paramMappings.map(({paramPath:e})=>({path:e,tensor:this.getParamFromPath(e)}))}getTrainableParams(){return this.getParamList().filter(e=>e.tensor instanceof $t)}getFrozenParams(){return this.getParamList().filter(e=>!(e.tensor instanceof $t))}variable(){this.getFrozenParams().forEach(({path:e,tensor:t})=>{this.reassignParamFromPath(e,t.variable())})}freeze(){this.getTrainableParams().forEach(({path:e,tensor:t})=>{const n=Ye(t.dataSync());t.dispose(),this.reassignParamFromPath(e,n)})}dispose(e=!0){this.getParamList().forEach(t=>{if(e&&t.tensor.isDisposed)throw new Error(`param tensor has already been disposed for path ${t.path}`);t.tensor.dispose()}),this._params=void 0}serializeParams(){return new Float32Array(this.getParamList().map(({tensor:e})=>Array.from(e.dataSync())).reduce((e,t)=>e.concat(t)))}async load(e){if(e instanceof Float32Array){this.extractWeights(e);return}await this.loadFromUri(e)}async loadFromUri(e){if(e&&typeof e!="string")throw new Error(`${this._name}.loadFromUri - expected model uri`);const t=await Qg.loadWeightMap(e,this.getDefaultModelName());this.loadFromWeightMap(t)}async loadFromDisk(e){if(e&&typeof e!="string")throw new Error(`${this._name}.loadFromDisk - expected model file path`);const{readFile:t}=eb.env.getEnv(),{manifestUri:n,modelBaseUri:r}=Fa(e,this.getDefaultModelName()),o=c=>Promise.all(c.map(p=>t(p).then(l=>l.buffer))),i=Mr.weightsLoaderFactory(o),a=JSON.parse((await t(n)).toString()),s=await i(a,r);this.loadFromWeightMap(s)}loadFromWeightMap(e){const{paramMappings:t,params:n}=this.extractParamsFromWeigthMap(e);this._paramMappings=t,this._params=n}extractWeights(e){const{paramMappings:t,params:n}=this.extractParams(e);this._paramMappings=t,this._params=n}traversePropertyPath(e){if(!this.params)throw new Error("traversePropertyPath - model has no loaded params");const t=e.split("/").reduce((o,i)=>{if(!o.nextObj.hasOwnProperty(i))throw new Error(`traversePropertyPath - object does not have property ${i}, for path ${e}`);return{obj:o.nextObj,objProp:i,nextObj:o.nextObj[i]}},{nextObj:this.params}),{obj:n,objProp:r}=t;if(!n||!r||!(n[r]instanceof ne))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${e}`);return{obj:n,objProp:r}}}function rt(e,t,n){return F(()=>{let r=qn(e,t.depthwise_filter,t.pointwise_filter,n,"same");return r=C(r,t.bias),r})}function Ma(e,t,n=!1){return F(()=>{const r=se(n?C(ve(e,t.conv0.filters,[2,2],"same"),t.conv0.bias):rt(e,t.conv0,[2,2])),o=rt(r,t.conv1,[1,1]),i=se(C(r,o)),a=rt(i,t.conv2,[1,1]);return se(C(r,C(o,a)))})}function Ns(e,t,n=!1,r=!0){return F(()=>{const o=se(n?C(ve(e,t.conv0.filters,r?[2,2]:[1,1],"same"),t.conv0.bias):rt(e,t.conv0,r?[2,2]:[1,1])),i=rt(o,t.conv1,[1,1]),a=se(C(o,i)),s=rt(a,t.conv2,[1,1]),c=se(C(o,C(i,s))),p=rt(c,t.conv3,[1,1]);return se(C(o,C(i,C(s,p))))})}function Ua(e,t,n="same",r=!1){return F(()=>{const o=C(ve(e,t.filters,[1,1],n),t.bias);return r?se(o):o})}function st(e,t){Object.keys(e).forEach(n=>{t.some(r=>r.originalPath===n)||e[n].dispose()})}function Gr(e,t){return function(n,r,o,i){const a=Pt(e(n*r*o*o),[o,o,n,r]),s=ge(e(r));return t.push({paramPath:`${i}/filters`},{paramPath:`${i}/bias`}),{filters:a,bias:s}}}function Wa(e,t){return function(n,r,o){const i=ft(e(n*r),[n,r]),a=ge(e(r));return t.push({paramPath:`${o}/weights`},{paramPath:`${o}/bias`}),{weights:i,bias:a}}}class ou{constructor(e,t,n){this.depthwise_filter=e,this.pointwise_filter=t,this.bias=n}}function jr(e,t){return function(n,r,o){const i=Pt(e(3*3*n),[3,3,n,1]),a=Pt(e(n*r),[1,1,n,r]),s=ge(e(r));return t.push({paramPath:`${o}/depthwise_filter`},{paramPath:`${o}/pointwise_filter`},{paramPath:`${o}/bias`}),new ou(i,a,s)}}function Pr(e){return function(t){const n=e(`${t}/depthwise_filter`,4),r=e(`${t}/pointwise_filter`,4),o=e(`${t}/bias`,1);return new ou(n,r,o)}}function St(e,t){return function(n,r,o){const i=e[n];if(!or(i,r))throw new Error(`expected weightMap[${n}] to be a Tensor${r}D, instead have ${i}`);return t.push({originalPath:n,paramPath:o||n}),i}}function at(e){let t=e;function n(o){const i=t.slice(0,o);return t=t.slice(o),i}function r(){return t}return{extractWeights:n,getRemainingWeights:r}}function Ba(e,t){const n=Gr(e,t),r=jr(e,t);function o(a,s,c,p=!1){const l=p?n(a,s,3,`${c}/conv0`):r(a,s,`${c}/conv0`),h=r(s,s,`${c}/conv1`),m=r(s,s,`${c}/conv2`);return{conv0:l,conv1:h,conv2:m}}function i(a,s,c,p=!1){const{conv0:l,conv1:h,conv2:m}=o(a,s,c,p),b=r(s,s,`${c}/conv3`);return{conv0:l,conv1:h,conv2:m,conv3:b}}return{extractDenseBlock3Params:o,extractDenseBlock4Params:i}}function tb(e){const t=[],{extractWeights:n,getRemainingWeights:r}=at(e),{extractDenseBlock4Params:o}=Ba(n,t),i=o(3,32,"dense0",!0),a=o(32,64,"dense1"),s=o(64,128,"dense2"),c=o(128,256,"dense3");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:i,dense1:a,dense2:s,dense3:c}}}function $a(e){return function(t){const n=e(`${t}/filters`,4),r=e(`${t}/bias`,1);return{filters:n,bias:r}}}function Ga(e,t){const n=St(e,t),r=$a(n),o=Pr(n);function i(s,c=!1){const p=c?r(`${s}/conv0`):o(`${s}/conv0`),l=o(`${s}/conv1`),h=o(`${s}/conv2`);return{conv0:p,conv1:l,conv2:h}}function a(s,c=!1){const p=c?r(`${s}/conv0`):o(`${s}/conv0`),l=o(`${s}/conv1`),h=o(`${s}/conv2`),m=o(`${s}/conv3`);return{conv0:p,conv1:l,conv2:h,conv3:m}}return{extractDenseBlock3Params:i,extractDenseBlock4Params:a}}function nb(e){const t=[],{extractDenseBlock4Params:n}=Ga(e,t),r={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2"),dense3:n("dense3")};return st(e,t),{params:r,paramMappings:t}}const rb=ee(ot());class ja extends He{constructor(){super("FaceFeatureExtractor")}forwardInput(e){const{params:t}=this;if(!t)throw new Error("FaceFeatureExtractor - load model before inference");return F(()=>{const n=e.toBatchTensor(112,!0),r=[122.782,117.001,104.298],o=bt(n,r).div(k(255));let i=Ns(o,t.dense0,!0);return i=Ns(i,t.dense1),i=Ns(i,t.dense2),i=Ns(i,t.dense3),i=ht(i,[7,7],[2,2],"valid"),i})}async forward(e){return this.forwardInput(await rb.toNetInput(e))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeigthMap(e){return nb(e)}extractParams(e){return tb(e)}}function Rs(e,t){return F(()=>C(Y(e,t.weights),t.bias))}function ob(e,t,n){const r=[],{extractWeights:o,getRemainingWeights:i}=at(e),a=Wa(o,r),s=a(t,n,"fc");if(i().length!==0)throw new Error(`weights remaing after extract: ${i().length}`);return{paramMappings:r,params:{fc:s}}}function ib(e){const t=[],n=St(e,t);function r(i){const a=n(`${i}/weights`,2),s=n(`${i}/bias`,1);return{weights:a,bias:s}}const o={fc:r("fc")};return st(e,t),{params:o,paramMappings:t}}function Pa(e){const t={},n={};return Object.keys(e).forEach(r=>{const o=r.startsWith("fc")?n:t;o[r]=e[r]}),{featureExtractorMap:t,classifierMap:n}}const sb=ee(ot());class qa extends He{constructor(e,t){super(e);this._faceFeatureExtractor=t}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(e){const{params:t}=this;if(!t)throw new Error(`${this._name} - load model before inference`);return F(()=>{const n=e instanceof sb.NetInput?this.faceFeatureExtractor.forwardInput(e):e;return Rs(n.as2D(n.shape[0],-1),t.fc)})}dispose(e=!0){this.faceFeatureExtractor.dispose(e),super.dispose(e)}loadClassifierParams(e){const{params:t,paramMappings:n}=this.extractClassifierParams(e);this._params=t,this._paramMappings=n}extractClassifierParams(e){return ob(e,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeigthMap(e){const{featureExtractorMap:t,classifierMap:n}=Pa(e);return this.faceFeatureExtractor.loadFromWeightMap(t),ib(n)}extractParams(e){const t=this.getClassifierChannelsIn(),n=this.getClassifierChannelsOut(),r=n*t+n,o=e.slice(0,e.length-r),i=e.slice(e.length-r);return this.faceFeatureExtractor.extractWeights(o),this.extractClassifierParams(i)}}const Xs=["neutral","happy","sad","angry","fearful","disgusted","surprised"];class pn{constructor(e){if(e.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${e.length}`);Xs.forEach((t,n)=>{this[t]=e[n]})}asSortedArray(){return Xs.map(e=>({expression:e,probability:this[e]})).sort((e,t)=>t.probability-e.probability)}}const iu=ee(ot());class Zs extends qa{constructor(e=new ja()){super("FaceExpressionNet",e)}forwardInput(e){return F(()=>en(this.runNet(e)))}async forward(e){return this.forwardInput(await iu.toNetInput(e))}async predictExpressions(e){const t=await iu.toNetInput(e),n=await this.forwardInput(t),r=await Promise.all(We(n).map(async i=>{const a=await i.data();return i.dispose(),a}));n.dispose();const o=r.map(i=>new pn(i));return t.isBatchInput?o:o[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}}function Ks(e){return e.expressions instanceof pn}function to(e,t){const n={expressions:t};return Object.assign({},e,n)}function kT(e,t,n=.1,r){const o=Array.isArray(t)?t:[t];o.forEach(i=>{const a=i instanceof pn?i:Ks(i)?i.expressions:void 0;if(!a)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");const s=a.asSortedArray(),c=s.filter(h=>h.probability>n),p=It(i)?i.detection.box.bottomLeft:r||new J(0,0),l=new $r(c.map(h=>`${h.expression} (${sr(h.probability)})`),p);l.draw(e)})}function an(e){return It(e)&&e.landmarks instanceof ct&&e.unshiftedLandmarks instanceof ct&&e.alignedRect instanceof ye}function In(e,t){const{box:n}=e.detection,r=t.shiftBy(n.x,n.y),o=r.align(),{imageDims:i}=e.detection,a=new ye(e.detection.score,o.rescale(i.reverse()),i),s={landmarks:r,unshiftedLandmarks:t,alignedRect:a};return Object.assign({},e,s)}class ab{constructor(e={}){const{drawLines:t=!0,drawPoints:n=!0,lineWidth:r,lineColor:o,pointSize:i,pointColor:a}=e;this.drawLines=t,this.drawPoints=n,this.lineWidth=r||1,this.pointSize=i||2,this.lineColor=o||"rgba(0, 255, 255, 1)",this.pointColor=a||"rgba(255, 0, 255, 1)"}}class cb{constructor(e,t={}){this.faceLandmarks=e,this.options=new ab(t)}draw(e){const t=Ze(e),{drawLines:n,drawPoints:r,lineWidth:o,lineColor:i,pointSize:a,pointColor:s}=this.options;if(n&&this.faceLandmarks instanceof fr&&(t.strokeStyle=i,t.lineWidth=o,nn(t,this.faceLandmarks.getJawOutline()),nn(t,this.faceLandmarks.getLeftEyeBrow()),nn(t,this.faceLandmarks.getRightEyeBrow()),nn(t,this.faceLandmarks.getNose()),nn(t,this.faceLandmarks.getLeftEye(),!0),nn(t,this.faceLandmarks.getRightEye(),!0),nn(t,this.faceLandmarks.getMouth(),!0)),r){t.strokeStyle=s,t.fillStyle=s;const c=p=>{t.beginPath(),t.arc(p.x,p.y,a,0,2*Math.PI),t.fill()};this.faceLandmarks.positions.forEach(c)}}}function _T(e,t){const n=Array.isArray(t)?t:[t];n.forEach(r=>{const o=r instanceof ct?r:an(r)?r.landmarks:void 0;if(!o)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new cb(o).draw(e)})}const Ps={};me(Ps,{AnchorPosition:()=>Ht,DrawBox:()=>tu,DrawBoxOptions:()=>Pg,DrawFaceLandmarks:()=>cb,DrawFaceLandmarksOptions:()=>ab,DrawTextField:()=>$r,DrawTextFieldOptions:()=>Da,drawContour:()=>nn,drawDetections:()=>OT,drawFaceExpressions:()=>kT,drawFaceLandmarks:()=>_T});function DT(e,t){const n=Gr(e,t),r=jr(e,t);function o(a,s,c){const p=r(a,s,`${c}/separable_conv0`),l=r(s,s,`${c}/separable_conv1`),h=n(a,s,1,`${c}/expansion_conv`);return{separable_conv0:p,separable_conv1:l,expansion_conv:h}}function i(a,s){const c=r(a,a,`${s}/separable_conv0`),p=r(a,a,`${s}/separable_conv1`),l=r(a,a,`${s}/separable_conv2`);return{separable_conv0:c,separable_conv1:p,separable_conv2:l}}return{extractConvParams:n,extractSeparableConvParams:r,extractReductionBlockParams:o,extractMainBlockParams:i}}function pb(e,t){const n=[],{extractWeights:r,getRemainingWeights:o}=at(e),{extractConvParams:i,extractSeparableConvParams:a,extractReductionBlockParams:s,extractMainBlockParams:c}=DT(r,n),p=i(3,32,3,"entry_flow/conv_in"),l=s(32,64,"entry_flow/reduction_block_0"),h=s(64,128,"entry_flow/reduction_block_1"),m={conv_in:p,reduction_block_0:l,reduction_block_1:h},b={};qt(t,0,1).forEach(v=>{b[`main_block_${v}`]=c(128,`middle_flow/main_block_${v}`)});const y=s(128,256,"exit_flow/reduction_block"),w=a(256,512,"exit_flow/separable_conv"),L={reduction_block:y,separable_conv:w};if(o().length!==0)throw new Error(`weights remaing after extract: ${o().length}`);return{paramMappings:n,params:{entry_flow:m,middle_flow:b,exit_flow:L}}}function FT(e,t){const n=St(e,t),r=$a(n),o=Pr(n);function i(s){const c=o(`${s}/separable_conv0`),p=o(`${s}/separable_conv1`),l=r(`${s}/expansion_conv`);return{separable_conv0:c,separable_conv1:p,expansion_conv:l}}function a(s){const c=o(`${s}/separable_conv0`),p=o(`${s}/separable_conv1`),l=o(`${s}/separable_conv2`);return{separable_conv0:c,separable_conv1:p,separable_conv2:l}}return{extractConvParams:r,extractSeparableConvParams:o,extractReductionBlockParams:i,extractMainBlockParams:a}}function lb(e,t){const n=[],{extractConvParams:r,extractSeparableConvParams:o,extractReductionBlockParams:i,extractMainBlockParams:a}=FT(e,n),s=r("entry_flow/conv_in"),c=i("entry_flow/reduction_block_0"),p=i("entry_flow/reduction_block_1"),l={conv_in:s,reduction_block_0:c,reduction_block_1:p},h={};qt(t,0,1).forEach(w=>{h[`main_block_${w}`]=a(`middle_flow/main_block_${w}`)});const m=i("exit_flow/reduction_block"),b=o("exit_flow/separable_conv"),y={reduction_block:m,separable_conv:b};return st(e,n),{params:{entry_flow:l,middle_flow:h,exit_flow:y},paramMappings:n}}const hb=ee(ot());function ub(e,t,n){return C(ve(e,t.filters,n,"same"),t.bias)}function su(e,t,n=!0){let r=n?se(e):e;return r=rt(r,t.separable_conv0,[1,1]),r=rt(se(r),t.separable_conv1,[1,1]),r=Ie(r,[3,3],[2,2],"same"),r=C(r,ub(e,t.expansion_conv,[2,2])),r}function MT(e,t){let n=rt(se(e),t.separable_conv0,[1,1]);return n=rt(se(n),t.separable_conv1,[1,1]),n=rt(se(n),t.separable_conv2,[1,1]),n=C(n,e),n}class db extends He{constructor(e){super("TinyXception");this._numMainBlocks=e}forwardInput(e){const{params:t}=this;if(!t)throw new Error("TinyXception - load model before inference");return F(()=>{const n=e.toBatchTensor(112,!0),r=[122.782,117.001,104.298],o=bt(n,r).div(k(256));let i=se(ub(o,t.entry_flow.conv_in,[2,2]));return i=su(i,t.entry_flow.reduction_block_0,!1),i=su(i,t.entry_flow.reduction_block_1),qt(this._numMainBlocks,0,1).forEach(a=>{i=MT(i,t.middle_flow[`main_block_${a}`])}),i=su(i,t.exit_flow.reduction_block),i=se(rt(i,t.exit_flow.separable_conv,[1,1])),i})}async forward(e){return this.forwardInput(await hb.toNetInput(e))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeigthMap(e){return lb(e,this._numMainBlocks)}extractParams(e){return pb(e,this._numMainBlocks)}}function mb(e){const t=[],{extractWeights:n,getRemainingWeights:r}=at(e),o=Wa(n,t),i=o(512,1,"fc/age"),a=o(512,2,"fc/gender");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{fc:{age:i,gender:a}}}}function fb(e){const t=[],n=St(e,t);function r(i){const a=n(`${i}/weights`,2),s=n(`${i}/bias`,1);return{weights:a,bias:s}}const o={fc:{age:r("fc/age"),gender:r("fc/gender")}};return st(e,t),{params:o,paramMappings:t}}var Dt;(function(e){e.FEMALE="female",e.MALE="male"})(Dt||(Dt={}));const Cs=ee(ot());class ta extends He{constructor(e=new db(2)){super("AgeGenderNet");this._faceFeatureExtractor=e}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(e){const{params:t}=this;if(!t)throw new Error(`${this._name} - load model before inference`);return F(()=>{const n=e instanceof Cs.NetInput?this.faceFeatureExtractor.forwardInput(e):e,r=ht(n,[7,7],[2,2],"valid").as2D(n.shape[0],-1),o=Rs(r,t.fc.age).as1D(),i=Rs(r,t.fc.gender);return{age:o,gender:i}})}forwardInput(e){return F(()=>{const{age:t,gender:n}=this.runNet(e);return{age:t,gender:en(n)}})}async forward(e){return this.forwardInput(await Cs.toNetInput(e))}async predictAgeAndGender(e){const t=await Cs.toNetInput(e),n=await this.forwardInput(t),r=We(n.age),o=We(n.gender),i=r.map((s,c)=>({ageTensor:s,genderTensor:o[c]})),a=await Promise.all(i.map(async({ageTensor:s,genderTensor:c})=>{const p=(await s.data())[0],l=(await c.data())[0],h=l>.5,m=h?Dt.MALE:Dt.FEMALE,b=h?l:1-l;return s.dispose(),c.dispose(),{age:p,gender:m,genderProbability:b}}));return n.age.dispose(),n.gender.dispose(),t.isBatchInput?a:a[0]}getDefaultModelName(){return"age_gender_model"}dispose(e=!0){this.faceFeatureExtractor.dispose(e),super.dispose(e)}loadClassifierParams(e){const{params:t,paramMappings:n}=this.extractClassifierParams(e);this._params=t,this._paramMappings=n}extractClassifierParams(e){return mb(e)}extractParamsFromWeigthMap(e){const{featureExtractorMap:t,classifierMap:n}=Pa(e);return this.faceFeatureExtractor.loadFromWeightMap(t),fb(n)}extractParams(e){const t=512*1+1+(512*2+2),n=e.slice(0,e.length-t),r=e.slice(e.length-t);return this.faceFeatureExtractor.extractWeights(n),this.extractClassifierParams(r)}}const au=ee(ot());class Ha extends qa{postProcess(e,t,n){const r=n.map(({width:i,height:a})=>{const s=t/Math.max(a,i);return{width:i*s,height:a*s}}),o=r.length;return F(()=>{const i=(l,h)=>Ue([Ge([68],l),Ge([68],h)],1).as2D(1,136).as1D(),a=(l,h)=>{const{width:m,height:b}=r[l];return h(m,b)?Math.abs(m-b)/2:0},s=l=>a(l,(h,m)=>ha(l,(h,m)=>mi(s(h),c(h))))).div(Ue(Array.from(Array(o),(l,h)=>i(r[h].width,r[h].height))));return p})}forwardInput(e){return F(()=>{const t=this.runNet(e);return this.postProcess(t,e.inputSize,e.inputDimensions.map(([n,r])=>({height:n,width:r})))})}async forward(e){return this.forwardInput(await au.toNetInput(e))}async detectLandmarks(e){const t=await au.toNetInput(e),n=F(()=>We(this.forwardInput(t))),r=await Promise.all(n.map(async(o,i)=>{const a=Array.from(await o.data()),s=a.filter((p,l)=>ka(l)),c=a.filter((p,l)=>!ka(l));return new fr(Array(68).fill(0).map((p,l)=>new J(s[l],c[l])),{height:t.getInputHeight(i),width:t.getInputWidth(i)})}));return n.forEach(o=>o.dispose()),t.isBatchInput?r:r[0]}getClassifierChannelsOut(){return 136}}class mr extends Ha{constructor(e=new ja()){super("FaceLandmark68Net",e)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}}function gb(e){const t=[],{extractDenseBlock3Params:n}=Ga(e,t),r={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2")};return st(e,t),{params:r,paramMappings:t}}function bb(e){const t=[],{extractWeights:n,getRemainingWeights:r}=at(e),{extractDenseBlock3Params:o}=Ba(n,t),i=o(3,32,"dense0",!0),a=o(32,64,"dense1"),s=o(64,128,"dense2");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:i,dense1:a,dense2:s}}}const wb=ee(ot());class yb extends He{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(e){const{params:t}=this;if(!t)throw new Error("TinyFaceFeatureExtractor - load model before inference");return F(()=>{const n=e.toBatchTensor(112,!0),r=[122.782,117.001,104.298],o=bt(n,r).div(k(255));let i=Ma(o,t.dense0,!0);return i=Ma(i,t.dense1),i=Ma(i,t.dense2),i=ht(i,[14,14],[2,2],"valid"),i})}async forward(e){return this.forwardInput(await wb.toNetInput(e))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeigthMap(e){return gb(e)}extractParams(e){return bb(e)}}class Js extends Ha{constructor(e=new yb()){super("FaceLandmark68TinyNet",e)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}}class Hu extends mr{}function xb(e,t){return C(S(e,t.weights),t.biases)}function cu(e,t,n,r,o="same"){const{filters:i,bias:a}=t.conv;let s=ve(e,i,n,o);return s=C(s,a),s=xb(s,t.scale),r?se(s):s}function Lb(e,t){return cu(e,t,[1,1],!0)}function pu(e,t){return cu(e,t,[1,1],!1)}function za(e,t){return cu(e,t,[2,2],!0,"valid")}function UT(e,t){function n(s,c,p){const l=e(s),h=l.length/(c*p*p);if(Qh(h))throw new Error(`depth has to be an integer: ${h}, weights.length: ${l.length}, numFilters: ${c}, filterSize: ${p}`);return F(()=>Z(Pt(l,[c,h,p,p]),[2,3,1,0]))}function r(s,c,p,l){const h=n(s,c,p),m=ge(e(c));return t.push({paramPath:`${l}/filters`},{paramPath:`${l}/bias`}),{filters:h,bias:m}}function o(s,c){const p=ge(e(s)),l=ge(e(s));return t.push({paramPath:`${c}/weights`},{paramPath:`${c}/biases`}),{weights:p,biases:l}}function i(s,c,p,l){const h=r(s,c,p,`${l}/conv`),m=o(c,`${l}/scale`);return{conv:h,scale:m}}function a(s,c,p,l,h=!1){const m=i((h?.5:1)*s,c,p,`${l}/conv1`),b=i(s,c,p,`${l}/conv2`);return{conv1:m,conv2:b}}return{extractConvLayerParams:i,extractResidualLayerParams:a}}function Sb(e){const{extractWeights:t,getRemainingWeights:n}=at(e),r=[],{extractConvLayerParams:o,extractResidualLayerParams:i}=UT(t,r),a=o(4704,32,7,"conv32_down"),s=i(9216,32,3,"conv32_1"),c=i(9216,32,3,"conv32_2"),p=i(9216,32,3,"conv32_3"),l=i(36864,64,3,"conv64_down",!0),h=i(36864,64,3,"conv64_1"),m=i(36864,64,3,"conv64_2"),b=i(36864,64,3,"conv64_3"),y=i(147456,128,3,"conv128_down",!0),w=i(147456,128,3,"conv128_1"),L=i(147456,128,3,"conv128_2"),v=i(589824,256,3,"conv256_down",!0),A=i(589824,256,3,"conv256_1"),R=i(589824,256,3,"conv256_2"),N=i(589824,256,3,"conv256_down_out"),O=F(()=>Z(ft(t(256*128),[128,256]),[1,0]));if(r.push({paramPath:"fc"}),n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);const M={conv32_down:a,conv32_1:s,conv32_2:c,conv32_3:p,conv64_down:l,conv64_1:h,conv64_2:m,conv64_3:b,conv128_down:y,conv128_1:w,conv128_2:L,conv256_down:v,conv256_1:A,conv256_2:R,conv256_down_out:N,fc:O};return{params:M,paramMappings:r}}function WT(e,t){const n=St(e,t);function r(a){const s=n(`${a}/scale/weights`,1),c=n(`${a}/scale/biases`,1);return{weights:s,biases:c}}function o(a){const s=n(`${a}/conv/filters`,4),c=n(`${a}/conv/bias`,1),p=r(a);return{conv:{filters:s,bias:c},scale:p}}function i(a){return{conv1:o(`${a}/conv1`),conv2:o(`${a}/conv2`)}}return{extractConvLayerParams:o,extractResidualLayerParams:i}}function vb(e){const t=[],{extractConvLayerParams:n,extractResidualLayerParams:r}=WT(e,t),o=n("conv32_down"),i=r("conv32_1"),a=r("conv32_2"),s=r("conv32_3"),c=r("conv64_down"),p=r("conv64_1"),l=r("conv64_2"),h=r("conv64_3"),m=r("conv128_down"),b=r("conv128_1"),y=r("conv128_2"),w=r("conv256_down"),L=r("conv256_1"),v=r("conv256_2"),A=r("conv256_down_out"),R=e.fc;if(t.push({originalPath:"fc",paramPath:"fc"}),!Zh(R))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${R}`);const N={conv32_down:o,conv32_1:i,conv32_2:a,conv32_3:s,conv64_down:c,conv64_1:p,conv64_2:l,conv64_3:h,conv128_down:m,conv128_1:b,conv128_2:y,conv256_down:w,conv256_1:L,conv256_2:v,conv256_down_out:A,fc:R};return st(e,t),{params:N,paramMappings:t}}function _t(e,t){let n=Lb(e,t.conv1);return n=pu(n,t.conv2),n=C(n,e),n=se(n),n}function Es(e,t){let n=za(e,t.conv1);n=pu(n,t.conv2);let r=ht(e,2,2,"valid");const o=Re(r.shape),i=r.shape[3]!==n.shape[3],a=r.shape[1]!==n.shape[1]||r.shape[2]!==n.shape[2];if(a){const s=[...n.shape];s[1]=1;const c=Re(s);n=Q([n,c],1);const p=[...n.shape];p[2]=1;const l=Re(p);n=Q([n,l],2)}return r=i?Q([r,o],3):r,n=C(r,n),n=se(n),n}const lu=ee(ot());class dr extends He{constructor(){super("FaceRecognitionNet")}forwardInput(e){const{params:t}=this;if(!t)throw new Error("FaceRecognitionNet - load model before inference");return F(()=>{const n=e.toBatchTensor(150,!0).toFloat(),r=[122.782,117.001,104.298],o=bt(n,r).div(k(256));let i=za(o,t.conv32_down);i=Ie(i,3,2,"valid"),i=_t(i,t.conv32_1),i=_t(i,t.conv32_2),i=_t(i,t.conv32_3),i=Es(i,t.conv64_down),i=_t(i,t.conv64_1),i=_t(i,t.conv64_2),i=_t(i,t.conv64_3),i=Es(i,t.conv128_down),i=_t(i,t.conv128_1),i=_t(i,t.conv128_2),i=Es(i,t.conv256_down),i=_t(i,t.conv256_1),i=_t(i,t.conv256_2),i=Es(i,t.conv256_down_out);const a=i.mean([1,2]),s=Y(a,t.fc);return s})}async forward(e){return this.forwardInput(await lu.toNetInput(e))}async computeFaceDescriptor(e){const t=await lu.toNetInput(e),n=F(()=>We(this.forwardInput(t))),r=await Promise.all(n.map(o=>o.data()));return n.forEach(o=>o.dispose()),t.isBatchInput?r:r[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeigthMap(e){return vb(e)}extractParams(e){return Sb(e)}}function qu(e){const t=new dr();return t.extractWeights(e),t}function no(e,t){const n={descriptor:t};return Object.assign({},e,n)}function Pu(e){return typeof e.age=="number"}function ro(e,t){const n={age:t};return Object.assign({},e,n)}function ju(e){return(e.gender===Dt.MALE||e.gender===Dt.FEMALE)&&Br(e.genderProbability)}function eo(e,t,n){const r={gender:t,genderProbability:n};return Object.assign({},e,r)}class vt{async then(e){return e(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}}const Ya=ee(ot());async function cr(e,t,n,r,o=({alignedRect:i})=>i){const i=e.map(c=>an(c)?o(c):c.detection),a=r||(t instanceof ne?await Ya.extractFaceTensors(t,i):await Ya.extractFaces(t,i)),s=await n(a);return a.forEach(c=>c instanceof ne&&c.dispose()),s}async function qr(e,t,n,r,o){return cr([e],t,async i=>n(i[0]),r,o)}const Va=e=>typeof e=="number";function mc(e){if(!e)throw new Error(`invalid config: ${e}`);if(typeof e.withSeparableConvs!="boolean")throw new Error(`config.withSeparableConvs has to be a boolean, have: ${e.withSeparableConvs}`);if(!Va(e.iouThreshold)||e.iouThreshold<0||e.iouThreshold>1)throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${e.iouThreshold}`);if(!Array.isArray(e.classes)||!e.classes.length||!e.classes.every(t=>typeof t=="string"))throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(e.classes)}`);if(!Array.isArray(e.anchors)||!e.anchors.length||!e.anchors.map(t=>t||{}).every(t=>Va(t.x)&&Va(t.y)))throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(e.anchors)}`);if(e.meanRgb&&(!Array.isArray(e.meanRgb)||e.meanRgb.length!==3||!e.meanRgb.every(Va)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(e.meanRgb)}`)}function Hr(e){return F(()=>{const t=S(e,k(.10000000149011612));return C(se(_(e,t)),t)})}function rn(e,t){return F(()=>{let n=je(e,[[0,0],[1,1],[1,1],[0,0]]);return n=ve(n,t.conv.filters,[1,1],"valid"),n=_(n,t.bn.sub),n=S(n,t.bn.truediv),n=C(n,t.conv.bias),Hr(n)})}function on(e,t){return F(()=>{let n=je(e,[[0,0],[1,1],[1,1],[0,0]]);return n=qn(n,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),n=C(n,t.bias),Hr(n)})}function BT(e,t){const n=Gr(e,t);function r(a,s){const c=ge(e(a)),p=ge(e(a));return t.push({paramPath:`${s}/sub`},{paramPath:`${s}/truediv`}),{sub:c,truediv:p}}function o(a,s,c){const p=n(a,s,3,`${c}/conv`),l=r(s,`${c}/bn`);return{conv:p,bn:l}}const i=jr(e,t);return{extractConvParams:n,extractConvWithBatchNormParams:o,extractSeparableConvParams:i}}function Ib(e,t,n,r){const{extractWeights:o,getRemainingWeights:i}=at(e),a=[],{extractConvParams:s,extractConvWithBatchNormParams:c,extractSeparableConvParams:p}=BT(o,a);let l;if(t.withSeparableConvs){const[h,m,b,y,w,L,v,A,R]=r,N=t.isFirstLayerConv2d?s(h,m,3,"conv0"):p(h,m,"conv0"),O=p(m,b,"conv1"),M=p(b,y,"conv2"),D=p(y,w,"conv3"),G=p(w,L,"conv4"),$=p(L,v,"conv5"),j=A?p(v,A,"conv6"):void 0,oe=R?p(A,R,"conv7"):void 0,ie=s(R||A||v,5*n,1,"conv8");l={conv0:N,conv1:O,conv2:M,conv3:D,conv4:G,conv5:$,conv6:j,conv7:oe,conv8:ie}}else{const[h,m,b,y,w,L,v,A,R]=r,N=c(h,m,"conv0"),O=c(m,b,"conv1"),M=c(b,y,"conv2"),D=c(y,w,"conv3"),G=c(w,L,"conv4"),$=c(L,v,"conv5"),j=c(v,A,"conv6"),oe=c(A,R,"conv7"),ie=s(R,5*n,1,"conv8");l={conv0:N,conv1:O,conv2:M,conv3:D,conv4:G,conv5:$,conv6:j,conv7:oe,conv8:ie}}if(i().length!==0)throw new Error(`weights remaing after extract: ${i().length}`);return{params:l,paramMappings:a}}function $T(e,t){const n=St(e,t);function r(s){const c=n(`${s}/sub`,1),p=n(`${s}/truediv`,1);return{sub:c,truediv:p}}function o(s){const c=n(`${s}/filters`,4),p=n(`${s}/bias`,1);return{filters:c,bias:p}}function i(s){const c=o(`${s}/conv`),p=r(`${s}/bn`);return{conv:c,bn:p}}const a=Pr(n);return{extractConvParams:o,extractConvWithBatchNormParams:i,extractSeparableConvParams:a}}function Tb(e,t){const n=[],{extractConvParams:r,extractConvWithBatchNormParams:o,extractSeparableConvParams:i}=$T(e,n);let a;if(t.withSeparableConvs){const s=t.filterSizes&&t.filterSizes.length||9;a={conv0:t.isFirstLayerConv2d?r("conv0"):i("conv0"),conv1:i("conv1"),conv2:i("conv2"),conv3:i("conv3"),conv4:i("conv4"),conv5:i("conv5"),conv6:s>7?i("conv6"):void 0,conv7:s>8?i("conv7"):void 0,conv8:r("conv8")}}else a={conv0:o("conv0"),conv1:o("conv1"),conv2:o("conv2"),conv3:o("conv3"),conv4:o("conv4"),conv5:o("conv5"),conv6:o("conv6"),conv7:o("conv7"),conv8:r("conv8")};return st(e,n),{params:a,paramMappings:n}}var fc;(function(e){e[e.XS=224]="XS",e[e.SM=320]="SM",e[e.MD=416]="MD",e[e.LG=608]="LG"})(fc||(fc={}));class gc{constructor({inputSize:e,scoreThreshold:t}={}){if(this._name="TinyYolov2Options",this._inputSize=e||416,this._scoreThreshold=t||.5,typeof this._inputSize!="number"||this._inputSize%32!==0)throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);if(typeof this._scoreThreshold!="number"||this._scoreThreshold<=0||this._scoreThreshold>=1)throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`)}get inputSize(){return this._inputSize}get scoreThreshold(){return this._scoreThreshold}}const hu=ee(ot());class zr extends He{constructor(e){super("TinyYolov2");mc(e),this._config=e}get config(){return this._config}get withClassScores(){return this.config.withClassScores||this.config.classes.length>1}get boxEncodingSize(){return 5+(this.withClassScores?this.config.classes.length:0)}runTinyYolov2(e,t){let n=rn(e,t.conv0);return n=Ie(n,[2,2],[2,2],"same"),n=rn(n,t.conv1),n=Ie(n,[2,2],[2,2],"same"),n=rn(n,t.conv2),n=Ie(n,[2,2],[2,2],"same"),n=rn(n,t.conv3),n=Ie(n,[2,2],[2,2],"same"),n=rn(n,t.conv4),n=Ie(n,[2,2],[2,2],"same"),n=rn(n,t.conv5),n=Ie(n,[2,2],[1,1],"same"),n=rn(n,t.conv6),n=rn(n,t.conv7),Ua(n,t.conv8,"valid",!1)}runMobilenet(e,t){let n=this.config.isFirstLayerConv2d?Hr(Ua(e,t.conv0,"valid",!1)):on(e,t.conv0);return n=Ie(n,[2,2],[2,2],"same"),n=on(n,t.conv1),n=Ie(n,[2,2],[2,2],"same"),n=on(n,t.conv2),n=Ie(n,[2,2],[2,2],"same"),n=on(n,t.conv3),n=Ie(n,[2,2],[2,2],"same"),n=on(n,t.conv4),n=Ie(n,[2,2],[2,2],"same"),n=on(n,t.conv5),n=Ie(n,[2,2],[1,1],"same"),n=t.conv6?on(n,t.conv6):n,n=t.conv7?on(n,t.conv7):n,Ua(n,t.conv8,"valid",!1)}forwardInput(e,t){const{params:n}=this;if(!n)throw new Error("TinyYolov2 - load model before inference");return F(()=>{let r=e.toBatchTensor(t,!1).toFloat();return r=this.config.meanRgb?bt(r,this.config.meanRgb):r,r=r.div(k(256)),this.config.withSeparableConvs?this.runMobilenet(r,n):this.runTinyYolov2(r,n)})}async forward(e,t){return await this.forwardInput(await hu.toNetInput(e),t)}async detect(e,t={}){const{inputSize:n,scoreThreshold:r}=new gc(t),o=await hu.toNetInput(e),i=await this.forwardInput(o,n),a=F(()=>We(i)[0].expandDims()),s={width:o.getInputWidth(0),height:o.getInputHeight(0)},c=await this.extractBoxes(a,o.getReshapedInputDimensions(0),r);i.dispose(),a.dispose();const p=c.map(w=>w.box),l=c.map(w=>w.score),h=c.map(w=>w.classScore),m=c.map(w=>this.config.classes[w.label]),b=zs(p.map(w=>w.rescale(n)),l,this.config.iouThreshold,!0),y=b.map(w=>new Tn(l[w],h[w],m[w],p[w],s));return y}getDefaultModelName(){return""}extractParamsFromWeigthMap(e){return Tb(e,this.config)}extractParams(e){const t=this.config.filterSizes||zr.DEFAULT_FILTER_SIZES,n=t?t.length:void 0;if(n!==7&&n!==8&&n!==9)throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${n} filterSizes in config`);return Ib(e,this.config,this.boxEncodingSize,t)}async extractBoxes(e,t,n){const{width:r,height:o}=t,i=Math.max(r,o),a=i/r,s=i/o,c=e.shape[1],p=this.config.anchors.length,[l,h,m]=F(()=>{const L=e.reshape([c,c,p,this.boxEncodingSize]),v=L.slice([0,0,0,0],[c,c,p,4]),A=L.slice([0,0,0,4],[c,c,p,1]),R=this.withClassScores?en(L.slice([0,0,0,5],[c,c,p,this.config.classes.length]),3):k(0);return[v,A,R]}),b=[],y=await h.array(),w=await l.array();for(let L=0;Ln){const N=(v+ur(w[L][v][A][0]))/c*a,O=(L+ur(w[L][v][A][1]))/c*s,M=Math.exp(w[L][v][A][2])*this.config.anchors[A].x/c*a,D=Math.exp(w[L][v][A][3])*this.config.anchors[A].y/c*s,G=N-M/2,$=O-D/2,j={row:L,col:v,anchor:A},{classScore:oe,label:ie}=this.withClassScores?await this.extractPredictedClass(m,j):{classScore:1,label:0};b.push({box:new gr(G,$,G+M,$+D),score:R,classScore:R*oe,label:ie,...j})}}return l.dispose(),h.dispose(),m.dispose(),b}async extractPredictedClass(e,t){const{row:n,col:r,anchor:o}=t,i=await e.array();return Array(this.config.classes.length).fill(0).map((a,s)=>i[n][r][o][s]).map((a,s)=>({classScore:a,label:s})).reduce((a,s)=>a.classScore>s.classScore?a:s)}}zr.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];const Ab=.4,Nb=[new J(1.603231,2.094468),new J(6.041143,7.080126),new J(2.882459,3.518061),new J(4.266906,5.178857),new J(9.041765,10.66308)],Rb=[117.001,114.697,97.404];class vn extends zr{constructor(){const e={withSeparableConvs:!0,iouThreshold:Ab,classes:["face"],anchors:Nb,meanRgb:Rb,isFirstLayerConv2d:!0,filterSizes:[3,16,32,64,128,256,512]};super(e)}get anchors(){return this.config.anchors}async locateFaces(e,t){const n=await this.detect(e,t);return n.map(r=>new ye(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeigthMap(e){return super.extractParamsFromWeigthMap(e)}}const Cb=.4,Eb=[new J(.738768,.874946),new J(2.42204,2.65704),new J(4.30971,7.04493),new J(10.246,4.59428),new J(12.6868,11.8741)],Ob=[new J(1.603231,2.094468),new J(6.041143,7.080126),new J(2.882459,3.518061),new J(4.266906,5.178857),new J(9.041765,10.66308)],kb=[117.001,114.697,97.404],_b="tiny_yolov2_model",Db="tiny_yolov2_separable_conv_model";class dc extends zr{constructor(e=!0){const t=Object.assign({},{withSeparableConvs:e,iouThreshold:Cb,classes:["face"]},e?{anchors:Ob,meanRgb:kb}:{anchors:Eb,withClassScores:!0});super(t)}get withSeparableConvs(){return this.config.withSeparableConvs}get anchors(){return this.config.anchors}async locateFaces(e,t){const n=await this.detect(e,t);return n.map(r=>new ye(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?Db:_b}extractParamsFromWeigthMap(e){return super.extractParamsFromWeigthMap(e)}}const Fb=ee($s()),le={tinyFaceDetector:new vn(),tinyYolov2:new Fb.TinyYolov2(),faceLandmark68Net:new mr(),faceLandmark68TinyNet:new Js(),faceRecognitionNet:new dr(),faceExpressionNet:new Zs(),ageGenderNet:new ta()},pw=(e,t)=>le.tinyFaceDetector.locateFaces(e,t),Fu=e=>le.faceLandmark68Net.detectLandmarks(e),lw=e=>le.faceLandmark68TinyNet.detectLandmarks(e),hw=e=>le.faceRecognitionNet.computeFaceDescriptor(e),uw=e=>le.faceExpressionNet.predictExpressions(e),dw=e=>le.ageGenderNet.predictAgeAndGender(e),Mu=e=>le.tinyFaceDetector.load(e),mw=e=>le.tinyYolov2.load(e),fw=e=>le.faceLandmark68Net.load(e),gw=e=>le.faceLandmark68TinyNet.load(e),bw=e=>le.faceRecognitionNet.load(e),ww=e=>le.faceExpressionNet.load(e),yw=e=>le.ageGenderNet.load(e),xw=Mu,Lw=vn,Sw=Fu;class Mb extends vt{constructor(e,t,n){super();this.parentTask=e,this.input=t,this.extractedFaces=n}}class _s extends Mb{async run(){const e=await this.parentTask,t=await cr(e,this.input,async n=>await Promise.all(n.map(r=>le.faceExpressionNet.predictExpressions(r))),this.extractedFaces);return e.map((n,r)=>to(n,t[r]))}withAgeAndGender(){return new Os(this,this.input)}}class Ds extends Mb{async run(){const e=await this.parentTask;if(!e)return;const t=await qr(e,this.input,n=>le.faceExpressionNet.predictExpressions(n),this.extractedFaces);return to(e,t)}withAgeAndGender(){return new ks(this,this.input)}}class Kr extends _s{withAgeAndGender(){return new Yr(this,this.input)}withFaceDescriptors(){return new Ln(this,this.input)}}class Jr extends Ds{withAgeAndGender(){return new Vr(this,this.input)}withFaceDescriptor(){return new Sn(this,this.input)}}class Ub extends vt{constructor(e,t,n){super();this.parentTask=e,this.input=t,this.extractedFaces=n}}class Os extends Ub{async run(){const e=await this.parentTask,t=await cr(e,this.input,async n=>await Promise.all(n.map(r=>le.ageGenderNet.predictAgeAndGender(r))),this.extractedFaces);return e.map((n,r)=>{const{age:o,gender:i,genderProbability:a}=t[r];return ro(eo(n,i,a),o)})}withFaceExpressions(){return new _s(this,this.input)}}class ks extends Ub{async run(){const e=await this.parentTask;if(!e)return;const{age:t,gender:n,genderProbability:r}=await qr(e,this.input,o=>le.ageGenderNet.predictAgeAndGender(o),this.extractedFaces);return ro(eo(e,n,r),t)}withFaceExpressions(){return new Ds(this,this.input)}}class Yr extends Os{withFaceExpressions(){return new Kr(this,this.input)}withFaceDescriptors(){return new Ln(this,this.input)}}class Vr extends ks{withFaceExpressions(){return new Jr(this,this.input)}withFaceDescriptor(){return new Sn(this,this.input)}}class Sc extends vt{constructor(e,t){super();this.parentTask=e,this.input=t}}class Ln extends Sc{async run(){const e=await this.parentTask,t=await cr(e,this.input,n=>Promise.all(n.map(r=>le.faceRecognitionNet.computeFaceDescriptor(r))),null,n=>n.landmarks.align(null,{useDlibAlignment:!0}));return t.map((n,r)=>no(e[r],n))}withFaceExpressions(){return new Kr(this,this.input)}withAgeAndGender(){return new Yr(this,this.input)}}class Sn extends Sc{async run(){const e=await this.parentTask;if(!e)return;const t=await qr(e,this.input,n=>le.faceRecognitionNet.computeFaceDescriptor(n),null,n=>n.landmarks.align(null,{useDlibAlignment:!0}));return no(e,t)}withFaceExpressions(){return new Jr(this,this.input)}withAgeAndGender(){return new Vr(this,this.input)}}const Wb=ee($s());class sn extends Wb.TinyYolov2Options{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}}const Xr=ee(ot());class yc extends vt{constructor(e,t,n){super();this.parentTask=e,this.input=t,this.useTinyLandmarkNet=n}get landmarkNet(){return this.useTinyLandmarkNet?le.faceLandmark68TinyNet:le.faceLandmark68Net}}class xc extends yc{async run(){const e=await this.parentTask,t=e.map(o=>o.detection),n=this.input instanceof ne?await Xr.extractFaceTensors(this.input,t):await Xr.extractFaces(this.input,t),r=await Promise.all(n.map(o=>this.landmarkNet.detectLandmarks(o)));return n.forEach(o=>o instanceof ne&&o.dispose()),e.map((o,i)=>In(o,r[i]))}withFaceExpressions(){return new Kr(this,this.input)}withAgeAndGender(){return new Yr(this,this.input)}withFaceDescriptors(){return new Ln(this,this.input)}}class Lc extends yc{async run(){const e=await this.parentTask;if(!e)return;const{detection:t}=e,n=this.input instanceof ne?await Xr.extractFaceTensors(this.input,[t]):await Xr.extractFaces(this.input,[t]),r=await this.landmarkNet.detectLandmarks(n[0]);return n.forEach(o=>o instanceof ne&&o.dispose()),In(e,r)}withFaceExpressions(){return new Jr(this,this.input)}withAgeAndGender(){return new Vr(this,this.input)}withFaceDescriptor(){return new Sn(this,this.input)}}class bc extends vt{constructor(e,t=new sn()){super();this.input=e,this.options=t}}class Gs extends bc{async run(){const{input:e,options:t}=this,n=t instanceof sn?r=>le.tinyFaceDetector.locateFaces(r,t):null;if(!n)throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | MtcnnOptions | TinyYolov2Options");return n(e)}runAndExtendWithFaceDetections(){return new Promise(async e=>{const t=await this.run();return e(t.map(n=>cn({},n)))})}withFaceLandmarks(e=!1){return new xc(this.runAndExtendWithFaceDetections(),this.input,e)}withFaceExpressions(){return new _s(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new Os(this.runAndExtendWithFaceDetections(),this.input)}}class wc extends bc{async run(){const e=await new Gs(this.input,this.options);let t=e[0];return e.forEach(n=>{n.score>t.score&&(t=n)}),t}runAndExtendWithFaceDetection(){return new Promise(async e=>{const t=await this.run();return e(t?cn({},t):void 0)})}withFaceLandmarks(e=!1){return new Lc(this.runAndExtendWithFaceDetection(),this.input,e)}withFaceExpressions(){return new Ds(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new ks(this.runAndExtendWithFaceDetection(),this.input)}}function vw(e,t=new sn()){return new wc(e,t)}function Iw(e,t=new sn()){return new Gs(e,t)}function Qs(e,t){if(e.length!==t.length)throw new Error("euclideanDistance: arr1.length !== arr2.length");const n=Array.from(e),r=Array.from(t);return Math.sqrt(n.map((o,i)=>o-r[i]).reduce((o,i)=>o+Math.pow(i,2),0))}class Uu{constructor(e,t=.6){this._distanceThreshold=t;const n=Array.isArray(e)?e:[e];if(!n.length)throw new Error("FaceRecognizer.constructor - expected atleast one input");let r=1;const o=()=>`person ${r++}`;this._labeledDescriptors=n.map(i=>{if(i instanceof ln)return i;if(i instanceof Float32Array)return new ln(o(),[i]);if(i.descriptor&&i.descriptor instanceof Float32Array)return new ln(o(),[i.descriptor]);throw new Error("FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>")})}get labeledDescriptors(){return this._labeledDescriptors}get distanceThreshold(){return this._distanceThreshold}computeMeanDistance(e,t){return t.map(n=>Qs(n,e)).reduce((n,r)=>n+r,0)/(t.length||1)}matchDescriptor(e){return this.labeledDescriptors.map(({descriptors:t,label:n})=>new io(n,this.computeMeanDistance(e,t))).reduce((t,n)=>t.distancee.toJSON())}}static fromJSON(e){const t=e.labeledDescriptors.map(n=>ln.fromJSON(n));return new Uu(t,e.distanceThreshold)}}function Bu(e){const t=new vn();return t.extractWeights(e),t}function vc(e,t){const{width:n,height:r}=new Qe(t.width,t.height);if(n<=0||r<=0)throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({width:n,height:r})}`);if(Array.isArray(e))return e.map(o=>vc(o,{width:n,height:r}));if(an(e)){const o=e.detection.forSize(n,r),i=e.unshiftedLandmarks.forSize(o.box.width,o.box.height);return In(cn(e,o),i)}return It(e)?cn(e,e.detection.forSize(n,r)):e instanceof ct||e instanceof ye?e.forSize(n,r):e}return Vu();})(); +var faceapi=(()=>{var Yu=Object.defineProperty,WO=Object.prototype.hasOwnProperty,$s=(e,t)=>()=>(t||(t={exports:{}},e(t.exports,t)),t.exports),Jx=e=>Yu(e,"__esModule",{value:!0}),Re=(e,t)=>{Jx(e);for(var s in t)Yu(e,s,{get:t[s],enumerable:!0})},zO=(e,t)=>{if(Jx(e),typeof t=="object"||typeof t=="function")for(let s in t)!WO.call(e,s)&&s!=="default"&&Yu(e,s,{get:()=>t[s],enumerable:!0});return e},nl=e=>e&&e.__esModule?e:zO(Yu({},"default",{value:e,enumerable:!0}),e);var Qx=$s((Zx,Qf)=>{(function(e,t,s){function n(a){var l=this,c=o();l.next=function(){var p=2091639*l.s0+l.c*23283064365386963e-26;return l.s0=l.s1,l.s1=l.s2,l.s2=p-(l.c=p|0)},l.c=1,l.s0=c(" "),l.s1=c(" "),l.s2=c(" "),l.s0-=c(a),l.s0<0&&(l.s0+=1),l.s1-=c(a),l.s1<0&&(l.s1+=1),l.s2-=c(a),l.s2<0&&(l.s2+=1),c=null}function i(a,l){return l.c=a.c,l.s0=a.s0,l.s1=a.s1,l.s2=a.s2,l}function r(a,l){var c=new n(a),p=l&&l.state,u=c.next;return u.int32=function(){return c.next()*4294967296|0},u.double=function(){return u()+(u()*2097152|0)*11102230246251565e-32},u.quick=u,p&&(typeof p=="object"&&i(p,c),u.state=function(){return i(c,{})}),u}function o(){var a=4022871197,l=function(c){c=c.toString();for(var p=0;p>>0,u-=a,u*=a,a=u>>>0,u-=a,a+=u*4294967296}return(a>>>0)*23283064365386963e-26};return l}t&&t.exports?t.exports=r:s&&s.amd?s(function(){return r}):this.alea=r})(Zx,typeof Qf=="object"&&Qf,typeof define=="function"&&define)});var tL=$s((eL,eg)=>{(function(e,t,s){function n(o){var a=this,l="";a.x=0,a.y=0,a.z=0,a.w=0,a.next=function(){var p=a.x^a.x<<11;return a.x=a.y,a.y=a.z,a.z=a.w,a.w^=a.w>>>19^p^p>>>8},o===(o|0)?a.x=o:l+=o;for(var c=0;c>>0)/4294967296};return p.double=function(){do var u=l.next()>>>11,h=(l.next()>>>0)/4294967296,d=(u+h)/(1<<21);while(d===0);return d},p.int32=l.next,p.quick=p,c&&(typeof c=="object"&&i(c,l),p.state=function(){return i(l,{})}),p}t&&t.exports?t.exports=r:s&&s.amd?s(function(){return r}):this.xor128=r})(eL,typeof eg=="object"&&eg,typeof define=="function"&&define)});var nL=$s((sL,tg)=>{(function(e,t,s){function n(o){var a=this,l="";a.next=function(){var p=a.x^a.x>>>2;return a.x=a.y,a.y=a.z,a.z=a.w,a.w=a.v,(a.d=a.d+362437|0)+(a.v=a.v^a.v<<4^(p^p<<1))|0},a.x=0,a.y=0,a.z=0,a.w=0,a.v=0,o===(o|0)?a.x=o:l+=o;for(var c=0;c>>4),a.next()}function i(o,a){return a.x=o.x,a.y=o.y,a.z=o.z,a.w=o.w,a.v=o.v,a.d=o.d,a}function r(o,a){var l=new n(o),c=a&&a.state,p=function(){return(l.next()>>>0)/4294967296};return p.double=function(){do var u=l.next()>>>11,h=(l.next()>>>0)/4294967296,d=(u+h)/(1<<21);while(d===0);return d},p.int32=l.next,p.quick=p,c&&(typeof c=="object"&&i(c,l),p.state=function(){return i(l,{})}),p}t&&t.exports?t.exports=r:s&&s.amd?s(function(){return r}):this.xorwow=r})(sL,typeof tg=="object"&&tg,typeof define=="function"&&define)});var rL=$s((iL,sg)=>{(function(e,t,s){function n(o){var a=this;a.next=function(){var c=a.x,p=a.i,u,h,d;return u=c[p],u^=u>>>7,h=u^u<<24,u=c[p+1&7],h^=u^u>>>10,u=c[p+3&7],h^=u^u>>>3,u=c[p+4&7],h^=u^u<<7,u=c[p+7&7],u=u^u<<13,h^=u^u<<9,c[p]=h,a.i=p+1&7,h};function l(c,p){var u,h,d=[];if(p===(p|0))h=d[0]=p;else for(p=""+p,u=0;u0;--u)c.next()}l(a,o)}function i(o,a){return a.x=o.x.slice(),a.i=o.i,a}function r(o,a){o==null&&(o=+new Date());var l=new n(o),c=a&&a.state,p=function(){return(l.next()>>>0)/4294967296};return p.double=function(){do var u=l.next()>>>11,h=(l.next()>>>0)/4294967296,d=(u+h)/(1<<21);while(d===0);return d},p.int32=l.next,p.quick=p,c&&(c.x&&i(c,l),p.state=function(){return i(l,{})}),p}t&&t.exports?t.exports=r:s&&s.amd?s(function(){return r}):this.xorshift7=r})(iL,typeof sg=="object"&&sg,typeof define=="function"&&define)});var aL=$s((oL,ng)=>{(function(e,t,s){function n(o){var a=this;a.next=function(){var c=a.w,p=a.X,u=a.i,h,d;return a.w=c=c+1640531527|0,d=p[u+34&127],h=p[u=u+1&127],d^=d<<13,h^=h<<17,d^=d>>>15,h^=h>>>12,d=p[u]=d^h,a.i=u,d+(c^c>>>16)|0};function l(c,p){var u,h,d,m,f,y=[],b=128;for(p===(p|0)?(h=p,p=null):(p=p+"\0",h=0,b=Math.max(b,p.length)),d=0,m=-32;m>>15,h^=h<<4,h^=h>>>13,m>=0&&(f=f+1640531527|0,u=y[m&127]^=h+f,d=u==0?d+1:0);for(d>=128&&(y[(p&&p.length||0)&127]=-1),d=127,m=4*128;m>0;--m)h=y[d+34&127],u=y[d=d+1&127],h^=h<<13,u^=u<<17,h^=h>>>15,u^=u>>>12,y[d]=h^u;c.w=f,c.X=y,c.i=d}l(a,o)}function i(o,a){return a.i=o.i,a.w=o.w,a.X=o.X.slice(),a}function r(o,a){o==null&&(o=+new Date());var l=new n(o),c=a&&a.state,p=function(){return(l.next()>>>0)/4294967296};return p.double=function(){do var u=l.next()>>>11,h=(l.next()>>>0)/4294967296,d=(u+h)/(1<<21);while(d===0);return d},p.int32=l.next,p.quick=p,c&&(c.X&&i(c,l),p.state=function(){return i(l,{})}),p}t&&t.exports?t.exports=r:s&&s.amd?s(function(){return r}):this.xor4096=r})(oL,typeof ng=="object"&&ng,typeof define=="function"&&define)});var cL=$s((lL,ig)=>{(function(e,t,s){function n(o){var a=this,l="";a.next=function(){var p=a.b,u=a.c,h=a.d,d=a.a;return p=p<<25^p>>>7^u,u=u-h|0,h=h<<24^h>>>8^d,d=d-p|0,a.b=p=p<<20^p>>>12^u,a.c=u=u-h|0,a.d=h<<16^u>>>16^d,a.a=d-p|0},a.a=0,a.b=0,a.c=2654435769|0,a.d=1367130551,o===Math.floor(o)?(a.a=o/4294967296|0,a.b=o|0):l+=o;for(var c=0;c>>0)/4294967296};return p.double=function(){do var u=l.next()>>>11,h=(l.next()>>>0)/4294967296,d=(u+h)/(1<<21);while(d===0);return d},p.int32=l.next,p.quick=p,c&&(typeof c=="object"&&i(c,l),p.state=function(){return i(l,{})}),p}t&&t.exports?t.exports=r:s&&s.amd?s(function(){return r}):this.tychei=r})(lL,typeof ig=="object"&&ig,typeof define=="function"&&define)});var pL=$s(()=>{});var uL=$s((AP,Ku)=>{(function(e,t){var s=this,n=256,i=6,r=52,o="random",a=t.pow(n,i),l=t.pow(2,r),c=l*2,p=n-1,u;function h(x,I,A){var k=[];I=I==!0?{entropy:!0}:I||{};var R=y(f(I.entropy?[x,S(e)]:x==null?b():x,3),k),D=new d(k),F=function(){for(var M=D.g(i),B=a,V=0;M=c;)M/=2,B/=2,V>>>=1;return(M+V)/B};return F.int32=function(){return D.g(4)|0},F.quick=function(){return D.g(4)/4294967296},F.double=F,y(S(D.S),e),(I.pass||A||function(M,B,V,Y){return Y&&(Y.S&&m(Y,D),M.state=function(){return m(D,{})}),V?(t[o]=M,B):M})(F,R,"global"in I?I.global:this==t,I.state)}t["seed"+o]=h;function d(x){var I,A=x.length,k=this,R=0,D=k.i=k.j=0,F=k.S=[];for(A||(x=[A++]);R{var BO=Qx(),PO=tL(),jO=nL(),VO=rL(),GO=aL(),HO=cL(),Tr=uL();Tr.alea=BO;Tr.xor128=PO;Tr.xorwow=jO;Tr.xorshift7=VO;Tr.xor4096=GO;Tr.tychei=HO;hL.exports=Tr});var dL=$s(()=>{});var mL=$s(()=>{});var gL=$s((qO,fL)=>{Re(qO,{isNodejs:()=>YO});function YO(){return typeof global=="object"&&!0&&typeof fL!="undefined"&&typeof process!="undefined"&&!!process.version}});var HL=$s(KO=>{Re(KO,{AgeGenderNet:()=>vh,BoundingBox:()=>Zo,Box:()=>tt,ComposableTask:()=>nn,ComputeAllFaceDescriptorsTask:()=>qi,ComputeFaceDescriptorsTaskBase:()=>ph,ComputeSingleFaceDescriptorTask:()=>Yi,DetectAllFaceLandmarksTask:()=>lh,DetectAllFacesTask:()=>rl,DetectFaceLandmarksTaskBase:()=>ah,DetectFacesTaskBase:()=>rh,DetectSingleFaceLandmarksTask:()=>ch,DetectSingleFaceTask:()=>oh,Dimensions:()=>Ls,FACE_EXPRESSION_LABELS:()=>dh,FaceDetection:()=>bt,FaceExpressionNet:()=>mh,FaceExpressions:()=>Ji,FaceLandmark68Net:()=>Yo,FaceLandmark68TinyNet:()=>hh,FaceLandmarkNet:()=>zL,FaceLandmarks:()=>Ws,FaceLandmarks5:()=>GL,FaceLandmarks68:()=>Jo,FaceMatch:()=>hl,FaceMatcher:()=>lg,FaceRecognitionNet:()=>qo,Gender:()=>Vn,LabeledBox:()=>ul,LabeledFaceDescriptors:()=>tr,NetInput:()=>pi,NeuralNetwork:()=>hs,ObjectDetection:()=>Or,Point:()=>Ee,PredictedBox:()=>VL,Rect:()=>Sh,TinyFaceDetector:()=>Ir,TinyFaceDetectorOptions:()=>Hi,TinyYolov2:()=>Go,TinyYolov2Options:()=>Vo,TinyYolov2SizeType:()=>eh,awaitMediaLoaded:()=>Lh,bufferToImage:()=>xh,computeFaceDescriptor:()=>vL,createCanvas:()=>Rr,createCanvasFromMedia:()=>Xo,createFaceRecognitionNet:()=>WL,createTinyFaceDetector:()=>bL,createTinyYolov2:()=>yL,detectAllFaces:()=>ML,detectFaceLandmarks:()=>og,detectFaceLandmarksTiny:()=>SL,detectLandmarks:()=>DL,detectSingleFace:()=>FL,draw:()=>Ju,env:()=>Ve,euclideanDistance:()=>fh,extendWithAge:()=>cl,extendWithFaceDescriptor:()=>ll,extendWithFaceDetection:()=>Xi,extendWithFaceExpressions:()=>al,extendWithFaceLandmarks:()=>Ar,extendWithGender:()=>ol,extractFaceTensors:()=>Cr,extractFaces:()=>Nr,fetchImage:()=>jL,fetchJson:()=>wh,fetchNetWeights:()=>PL,fetchOrThrow:()=>er,getContext2dOrThrow:()=>us,getMediaDimensions:()=>Qi,imageTensorToCanvas:()=>bh,imageToSquare:()=>yh,inverseSigmoid:()=>xL,iou:()=>ih,isMediaElement:()=>pl,isMediaLoaded:()=>Ko,isWithAge:()=>$L,isWithFaceDetection:()=>Sn,isWithFaceExpressions:()=>uh,isWithFaceLandmarks:()=>Ki,isWithGender:()=>UL,loadAgeGenderModel:()=>EL,loadFaceDetectionModel:()=>kL,loadFaceExpressionModel:()=>OL,loadFaceLandmarkModel:()=>NL,loadFaceLandmarkTinyModel:()=>CL,loadFaceRecognitionModel:()=>RL,loadTinyFaceDetectorModel:()=>ag,loadTinyYolov2Model:()=>AL,loadWeightMap:()=>gh,locateFaces:()=>_L,matchDimensions:()=>BL,minBbox:()=>nh,nets:()=>Qe,nonMaxSuppression:()=>sh,normalize:()=>sn,padToSquare:()=>th,predictAgeAndGender:()=>IL,recognizeFaceExpressions:()=>TL,resizeResults:()=>rg,resolveInput:()=>Zi,shuffleArray:()=>wL,sigmoid:()=>Ho,tf:()=>Xu,tinyFaceDetector:()=>LL,toNetInput:()=>pt,utils:()=>Zu,validateConfig:()=>Qu})});const qL="tfjsflags";class cg{constructor(e){this.global=e,this.flags={},this.flagRegistry={},this.urlFlags={},this.populateURLFlags()}setPlatform(e,t){this.platform!=null&&console.warn(`Platform ${this.platformName} has already been set. Overwriting the platform with ${t}.`),this.platformName=e,this.platform=t}registerFlag(e,t,s){if(this.flagRegistry[e]={evaluationFn:t,setHook:s},this.urlFlags[e]!=null){const n=this.urlFlags[e];console.warn(`Setting feature override from URL ${e}: ${n}.`),this.set(e,n)}}async getAsync(e){return e in this.flags?this.flags[e]:(this.flags[e]=await this.evaluateFlag(e),this.flags[e])}get(e){if(e in this.flags)return this.flags[e];const t=this.evaluateFlag(e);if(t instanceof Promise)throw new Error(`Flag ${e} cannot be synchronously evaluated. Please use getAsync() instead.`);return this.flags[e]=t,this.flags[e]}getNumber(e){return this.get(e)}getBool(e){return this.get(e)}getFlags(){return this.flags}get features(){return this.flags}set(e,t){if(this.flagRegistry[e]==null)throw new Error(`Cannot set flag ${e} as it has not been registered.`);this.flags[e]=t,this.flagRegistry[e].setHook!=null&&this.flagRegistry[e].setHook(t)}evaluateFlag(e){if(this.flagRegistry[e]==null)throw new Error(`Cannot evaluate flag '${e}': no evaluation function found.`);return this.flagRegistry[e].evaluationFn()}setFlags(e){this.flags=Object.assign({},e)}reset(){this.flags={},this.urlFlags={},this.populateURLFlags()}populateURLFlags(){if(typeof this.global=="undefined"||typeof this.global.location=="undefined"||typeof this.global.location.search=="undefined")return;const e=XO(this.global.location.search);if(qL in e){const t=e[qL].split(",");t.forEach(s=>{const[n,i]=s.split(":");this.urlFlags[n]=JO(n,i)})}}}function XO(e){const t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(s,...n)=>(ZO(t,n[0],n[1]),n.join("="))),t}function ZO(e,t,s){e[decodeURIComponent(t)]=decodeURIComponent(s||"")}function JO(e,t){if(t=t.toLowerCase(),t==="true"||t==="false")return t==="true";if(`${+t}`===t)return+t;throw new Error(`Could not parse value flag value ${t} for flag ${e}.`)}function $(){return pg}let pg=null;function YL(e){pg=e}let ug;function hg(){if(ug==null){let e;if(typeof window!="undefined")e=window;else if(typeof global!="undefined")e=global;else if(typeof process!="undefined")e=process;else if(typeof self!="undefined")e=self;else throw new Error("Could not find a global object");ug=e}return ug}function QO(){const e=hg();return e._tfGlobals==null&&(e._tfGlobals=new Map()),e._tfGlobals}function dg(e,t){const s=QO();if(s.has(e))return s.get(e);{const n=t();return s.set(e,n),s.get(e)}}const dl="Abs",ml="Acos",fl="Acosh",Er="Add",gl="AddN",mg="All",fg="Any",yl="ArgMax",bl="ArgMin",wl="Asin",xl="Asinh",Ll="Atan",Sl="Atanh",vl="Atan2",Tl="AvgPool",gg="AvgPoolBackprop",Il="AvgPool3D",yg="AvgPool3DBackprop",Al="BatchMatMul",Nl="BatchToSpaceND",Cl="BroadcastTo",kr="Cast",Rl="Ceil",Ol="ClipByValue",bg="Complex",El="Concat",kl="Conv2D",wg="Conv2DBackpropFilter",_l="Conv2DBackpropInput",Dl="Conv3D",xg="Conv3DBackpropFilterV2",Lg="Conv3DBackpropInputV2",Fl="Cos",Ml="Cosh",Ul="Cumsum",Sg="CropAndResize",vg="DepthToSpace",$l="DepthwiseConv2dNative",Tg="DepthwiseConv2dNativeBackpropFilter",Ig="DepthwiseConv2dNativeBackpropInput",Ag="Diag",_r="Dilation2D",Qo="Dilation2DBackpropInput",ea="Dilation2DBackpropFilter",ui="Div",Wl="Elu",Ng="EluGrad",zl="Erf",Cg="Equal",Bl="Exp",Pl="Expm1",Rg="FFT",Og="Fill",Dr="FlipLeftRight",jl="Floor",Vl="FloorDiv",Gl="FusedBatchNorm",Hl="GatherV2",Eg="GatherNd",kg="Greater",ql="GreaterEqual",Yl="Identity",_g="IFFT",Dg="Imag",Kl="IsFinite",Xl="IsInf",Jl="IsNan",Fg="Less",Mg="LessEqual",Ug="LinSpace",Zl="Log",Ql="Log1p",$g="LogicalAnd",Wg="LogicalNot",zg="LogicalOr",ec="LogSoftmax",tc="LRN",Bg="LRNBackprop",hi="Max",sc="Maximum",nc="MaxPool",Pg="MaxPoolBackprop",ic="MaxPool3D",jg="MaxPool3DBackprop",Fr="MaxPoolWithArgmax",e1="Mean",rc="Min",oc="Minimum",ac="Mod",lc="Multiply",cc="Negate",Vg="NotEqual",pc="NonMaxSuppressionV3",Mr="NonMaxSuppressionV4",Ur="NonMaxSuppressionV5",uc="OnesLike",hc="OneHot",dc="PadV2",t1="Pool",mc="Pow",fc="Prelu",Gg="Prod",Hg="Range",qg="Real",gc="Reciprocal",yc="Relu",bc="Reshape",wc="ResizeNearestNeighbor",Yg="ResizeNearestNeighborGrad",xc="ResizeBilinear",Kg="ResizeBilinearGrad",Lc="Relu6",Sc="Reverse",vc="Round",Tc="Rsqrt",Xg="ScatterNd",Ic="SelectV2",Ac="Selu",Nc="Slice",Cc="Sin",Rc="Sinh",Oc="Sign",Ec="Sigmoid",kc="Softplus",_c="Sqrt",Dc="Sum",Fc="SpaceToBatchND",Mc="SplitV",Uc="Softmax",di="SquaredDifference",$r="Square",$c="Sub",Jg="SparseToDense",Zg="StridedSlice",Wc="Tan",zc="Tanh",Bc="Tile",Qg="TopK",mi="Transpose",Pc="Unpack",jc="UnsortedSegmentSum",Vc="ZerosLike",Gc="Step",ta="FromPixels",Wr="RotateWithOffset",Th="_FusedMatMul",Ih="FusedConv2D",Ah="FusedDepthwiseConv2D";const sa=dg("kernelRegistry",()=>new Map()),Hc=dg("gradRegistry",()=>new Map());function qc(e,t){const s=ey(e,t);return sa.get(s)}function Nh(e){return Hc.get(e)}function Ch(e){const t=sa.entries(),s=[];for(;;){const{done:n,value:i}=t.next();if(n)break;const[r,o]=i,[a]=r.split("_");a===e&&s.push(o)}return s}function Yc(e){const{kernelName:t,backendName:s}=e,n=ey(t,s);sa.has(n)&&console.warn(`The kernel '${t}' for backend '${s}' is already registered`),sa.set(n,e)}function ty(e){const{kernelName:t}=e;Hc.has(t)&&($().getBool("DEBUG")&&console.warn(`Overriding the gradient for '${t}'`)),Hc.set(t,e)}function s1(e,t){const s=ey(e,t);if(!sa.has(s))throw new Error(`The kernel '${e}' for backend '${t}' is not registered`);sa.delete(s)}function n1(e){if(!Hc.has(e))throw new Error(`The gradient '${e}' for backend is not registered`);Hc.delete(e)}function ey(e,t){return`${t}_${e}`}const E={};Re(E,{arraysEqual:()=>It,assert:()=>v,assertNonNegativeIntegerDimensions:()=>Jc,assertNonNull:()=>zs,assertShapesMatch:()=>xe,bytesFromStringArray:()=>ly,bytesPerElement:()=>ay,checkConversionForErrors:()=>XL,clamp:()=>na,computeStrides:()=>qn,createShuffledIndices:()=>u1,decodeString:()=>Oh,distSquared:()=>a1,encodeString:()=>cy,fetch:()=>f1,flatten:()=>Gn,getArrayFromDType:()=>iy,getTypedArrayFromDType:()=>ia,hasEncodingLoss:()=>oy,indexToLoc:()=>y1,inferDtype:()=>ra,inferFromImplicitShape:()=>sy,isBoolean:()=>JL,isFunction:()=>Hn,isInt:()=>De,isNumber:()=>ZL,isScalarShape:()=>l1,isString:()=>vn,isTypedArray:()=>_t,isValidDtype:()=>ry,locToIndex:()=>g1,makeOnesTypedArray:()=>Xc,makeZerosNestedTypedArray:()=>m1,makeZerosTypedArray:()=>Yn,nearestDivisor:()=>oa,nearestLargerEven:()=>i1,now:()=>Rh,parseAxisParam:()=>Te,randUniform:()=>o1,repeatedTry:()=>h1,rightPad:()=>zr,shuffle:()=>KL,sizeFromShape:()=>We,sizeToSquarishShape:()=>p1,squeezeShape:()=>ny,sum:()=>r1,tanh:()=>c1,toNestedArray:()=>Br,toTypedArray:()=>Kc});function KL(e){let t=e.length,s=0,n=0;for(;t>0;)n=Math.random()*t|0,t--,s=e[t],e[t]=e[n],e[n]=s}function na(e,t,s){return Math.max(e,Math.min(t,s))}function i1(e){return e%2===0?e:e+1}function r1(e){let t=0;for(let s=0;ss+` Shapes ${e} and ${t} must match`)}function zs(e){v(e!=null,()=>"The input to the tensor constructor must be a non-null value.")}function Gn(e,t=[],s=!1){if(t==null&&(t=[]),Array.isArray(e)||_t(e)&&!s)for(let n=0;n0,s){return new Promise((n,i)=>{let r=0;const o=()=>{if(e()){n();return}r++;const a=t(r);if(s!=null&&r>=s){i();return}setTimeout(o,a)};o()})}function sy(e,t){let s=1,n=-1;for(let r=0;r=0)s*=e[r];else if(e[r]===-1){if(n!==-1)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${n} and dim ${r}`);n=r}else if(e[r]<0)throw Error(`Shapes can not be < 0. Found ${e[r]} at dim ${r}`);if(n===-1){if(t>0&&t!==s)throw Error(`Size(${t}) must match the product of shape ${e}`);return e}if(s===0)throw Error(`Cannot infer the missing size in [${e}] when there are 0 elements`);if(t%s!==0)throw Error(`The implicit shape can't be a fractional number. Got ${t} / ${s}`);const i=e.slice();return i[n]=t/s,i}function Te(e,t){const s=t.length;return e=e==null?t.map((n,i)=>i):[].concat(e),v(e.every(n=>n>=-s&&n`All values in axis param must be in range [-${s}, ${s}) but got axis ${e}`),v(e.every(n=>De(n)),()=>`All values in axis param must be integers but got axis ${e}`),e.map(n=>n<0?s+n:n)}function ny(e,t){const s=[],n=[],i=t!=null&&Array.isArray(t)&&t.length===0,r=t==null||i?null:Te(t,e).sort();let o=0;for(let a=0;aa)&&e[a]===1&&(s.push(e[a]),n.push(a)),r[o]<=a&&o++}e[a]!==1&&(s.push(e[a]),n.push(a))}return{newShape:s,keptDims:n}}function ia(e,t){let s=null;if(e==null||e==="float32")s=new Float32Array(t);else if(e==="int32")s=new Int32Array(t);else if(e==="bool")s=new Uint8Array(t);else throw new Error(`Unknown data type ${e}`);return s}function iy(e,t){let s=null;if(e==null||e==="float32")s=new Float32Array(t);else if(e==="int32")s=new Int32Array(t);else if(e==="bool")s=new Uint8Array(t);else if(e==="string")s=new Array(t);else throw new Error(`Unknown data type ${e}`);return s}function XL(e,t){for(let s=0;st+=s.length),t}function vn(e){return typeof e=="string"||e instanceof String}function JL(e){return typeof e=="boolean"}function ZL(e){return typeof e=="number"}function ra(e){return Array.isArray(e)?ra(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array?"int32":ZL(e)?"float32":vn(e)?"string":JL(e)?"bool":"float32"}function Hn(e){return!!(e&&e.constructor&&e.call&&e.apply)}function oa(e,t){for(let s=t;s=0;--n)s[n]=s[n+1]*e[n+1];return s}function Kc(e,t){if(t==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=Gn(e)),$().getBool("DEBUG")&&XL(e,t),d1(e,t))return e;if(t==null||t==="float32"||t==="complex64")return new Float32Array(e);if(t==="int32")return new Int32Array(e);if(t==="bool"){const s=new Uint8Array(e.length);for(let n=0;na*l);for(let a=0;an*i);if(s===0)return[];if(s!==t.length)throw new Error(`[${e}] does not match the input size ${t.length}.`);return QL(0,e,t)}function d1(e,t){return e instanceof Float32Array&&t==="float32"||e instanceof Int32Array&&t==="int32"||e instanceof Uint8Array&&t==="bool"}function Xc(e,t){const s=Yn(e,t);for(let n=0;nn*i,1);if(t==null||t==="float32")return Br(e,new Float32Array(s));if(t==="int32")return Br(e,new Int32Array(s));if(t==="bool")return Br(e,new Uint8Array(s));throw new Error(`Unknown data type ${t}`)}function Rh(){return $().platform.now()}function Jc(e){e.forEach(t=>{v(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`)})}function f1(e,t){return $().platform.fetch(e,t)}function cy(e,t="utf-8"){return t=t||"utf-8",$().platform.encode(e,t)}function Oh(e,t="utf-8"){return t=t||"utf-8",$().platform.decode(e,t)}function g1(e,t,s){if(t===0)return 0;if(t===1)return e[0];let n=e[e.length-1];for(let i=0;i{n=s()},r=this.backendTimer.time(i);n.map(a=>{a.data().then(l=>{b1(l,a.dtype,e)})});const o={kernelName:e,outputs:n,inputs:t,timeMs:r.then(a=>a.kernelMs),extraInfo:r.then(a=>a.getExtraProfileInfo!=null?a.getExtraProfileInfo():"")};return o}logKernelProfile(e){const{kernelName:t,outputs:s,timeMs:n,inputs:i,extraInfo:r}=e;s.forEach(o=>{Promise.all([o.data(),n,r]).then(a=>{this.logger.logKernelProfile(t,o,a[0],a[1],i,a[2])})})}}function b1(e,t,s){if(t!=="float32")return!1;for(let n=0;n0?m:""} `}}console.log(`%c${a} %c${o} %c${l}D ${p} %c${c} %c${u} %c${r}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}}function tS(e,t,s){const n={},i={};for(let l=0;ln[f.id]=!0),d=!0,i[c.id]=!0;break}if(d)break}}const r={};r[s.id]=!0;const o={};for(let l=e.length-1;l>=0;l--){const c=e[l],p=c.inputs;for(let u=0;u=0;i--){const r=t[i],o=[];if(r.outputs.forEach(l=>{const c=e[l.id];c!=null?o.push(c):o.push(null)}),r.gradient==null)throw new Error(`Cannot compute gradient: gradient function not found for ${r.kernelName}.`);const a=r.gradient(o);for(const l in r.inputs){if(!(l in a))throw new Error(`Cannot backprop through input ${l}. Available gradients found: ${Object.keys(a)}.`);const c=s(()=>a[l]());if(c.dtype!=="float32")throw new Error(`Error in gradient for op ${r.kernelName}. The gradient of input ${l} must have 'float32' dtype, but has '${c.dtype}'`);const p=r.inputs[l];if(!It(c.shape,p.shape))throw new Error(`Error in gradient for op ${r.kernelName}. The gradient of input '${l}' has shape '${c.shape}', which does not match the shape of the input '${p.shape}'`);if(e[p.id]==null)e[p.id]=c;else{const u=e[p.id];e[p.id]=n(u,c),u.dispose()}}}}const nS=20,Zc=3,py=7;function iS(e,t,s,n){const i=qn(t),r=x1(e,t,s,i),o=t.length,a=Eh(e,t,s,i,r),l=["Tensor"];return n&&(l.push(` dtype: ${s}`),l.push(` rank: ${o}`),l.push(` shape: [${t}]`),l.push(" values:")),l.push(a.map(c=>" "+c).join(` +`)),l.join(` +`)}function x1(e,t,s,n){const i=We(t),r=n[n.length-1],o=new Array(r).fill(0),a=t.length,l=s==="complex64"?ep(e):e;if(a>1)for(let c=0;cnS){const y=Zc*o;let b=Array.from(e.slice(0,y)),S=Array.from(e.slice((a-Zc)*o,a*o));return s==="complex64"&&(b=ep(b),S=ep(S)),["["+b.map((x,I)=>Qc(x,i[I],s)).join(", ")+", ..., "+S.map((x,I)=>Qc(x,i[a-Zc+I],s)).join(", ")+"]"]}const f=s==="complex64"?ep(e):Array.from(e);return["["+f.map((y,b)=>Qc(y,i[b],s)).join(", ")+"]"]}const c=t.slice(1),p=n.slice(1),u=n[0]*o,h=[];if(a>nS){for(let f=0;f`Length of values '${n}' does not match the size inferred by the shape '${this.size}'.`)}if(t==="complex64")throw new Error("complex64 dtype TensorBuffers are not supported. Please create a TensorBuffer for the real and imaginary parts separately and call tf.complex(real, imag).");this.values=s||iy(t,this.size),this.strides=qn(e)}set(e,...t){t.length===0&&(t=[0]),v(t.length===this.rank,()=>`The number of provided coordinates (${t.length}) must match the rank (${this.rank})`);const s=this.locToIndex(t);this.values[s]=e}get(...e){e.length===0&&(e=[0]);let t=0;for(const n of e){if(n<0||n>=this.shape[t]){const i=`Requested out of range element at ${e}. Buffer shape=${this.shape}`;throw new Error(i)}t++}let s=e[e.length-1];for(let n=0;nOh(s))}catch(s){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}}return e}dataSync(){this.throwIfDisposed();const e=Kn().readSync(this.dataId);if(this.dtype==="string")try{return e.map(t=>Oh(t))}catch(t){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}return e}async bytes(){this.throwIfDisposed();const e=await Kn().read(this.dataId);return this.dtype==="string"?e:new Uint8Array(e.buffer)}dispose(){if(this.isDisposed)return;Kn().disposeTensor(this),this.isDisposedInternal=!0}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(e=!1){return aa.print(this,e)}clone(){return this.throwIfDisposed(),aa.clone(this)}toString(e=!1){const t=this.dataSync();return iS(t,this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),aa.cast(this,e)}variable(e=!0,t,s){return this.throwIfDisposed(),Kn().makeVariable(this,e,t,s)}}Object.defineProperty(ue,Symbol.hasInstance,{value:e=>!!e&&e.dataId!=null&&e.shape!=null&&e.dtype!=null});class Xn extends ue{constructor(e,t,s,n){super(e.shape,e.dtype,e.dataId,n);this.trainable=t,this.name=s}assign(e){if(e.dtype!==this.dtype)throw new Error(`dtype of the new value (${e.dtype}) and previous value (${this.dtype}) must match`);if(!It(e.shape,this.shape))throw new Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);Kn().disposeTensor(this),this.dataId=e.dataId,Kn().incRef(this,null)}dispose(){Kn().disposeVariable(this),this.isDisposedInternal=!0}}Object.defineProperty(Xn,Symbol.hasInstance,{value:e=>e instanceof ue&&e.assign!=null&&e.assign instanceof Function});var uy;(function(e){e.R0="R0",e.R1="R1",e.R2="R2",e.R3="R3",e.R4="R4",e.R5="R5",e.R6="R6"})(uy||(uy={}));var hy;(function(e){e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64"})(hy||(hy={}));var dy;(function(e){e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64"})(dy||(dy={}));var my;(function(e){e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64"})(my||(my={}));var fy;(function(e){e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64"})(fy||(fy={}));const S1={float32:my,int32:hy,bool:dy,complex64:fy};function wt(e,t){if(e==="string"||t==="string"){if(e==="string"&&t==="string")return"string";throw new Error(`Can not upcast ${e} with ${t}`)}return S1[e][t]}function tp(e){return wt(e,"int32")}const rn={};Re(rn,{assertTypesMatch:()=>gy,getTensorsInContainer:()=>sp,isTensorInList:()=>v1,makeTypesMatch:()=>Ne});function Ne(e,t){if(e.dtype===t.dtype)return[e,t];const s=wt(e.dtype,t.dtype);return[e.cast(s),t.cast(s)]}function gy(e,t){v(e.dtype===t.dtype,()=>`The dtypes of the first(${e.dtype}) and second(${t.dtype}) input must match`)}function v1(e,t){return t.some(s=>s.id===e.id)}function sp(e){const t=[],s=new Set();return cS(e,t,s),t}function cS(e,t,s){if(e==null)return;if(e instanceof ue){t.push(e);return}if(!T1(e))return;const n=e;for(const i in n){const r=n[i];s.has(r)||(s.add(r),cS(r,t,s))}}function T1(e){return Array.isArray(e)||typeof e=="object"}class pS{constructor(){this.registeredVariables={},this.nextTapeNodeId=0,this.numBytes=0,this.numTensors=0,this.numStringTensors=0,this.numDataBuffers=0,this.gradientDepth=0,this.kernelDepth=0,this.scopeStack=[],this.numDataMovesStack=[],this.nextScopeId=0,this.tensorInfo=new WeakMap(),this.profiling=!1,this.activeProfile={newBytes:0,newTensors:0,peakBytes:0,kernels:[],result:null}}dispose(){for(const e in this.registeredVariables)this.registeredVariables[e].dispose()}}class np{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new pS()}async ready(){if(this.pendingBackendInit!=null)return this.pendingBackendInit.then(()=>{});if(this.backendInstance!=null)return;const e=this.getSortedBackends();for(let t=0;t{t.setupFunc!=null&&t.setupFunc(this.backendInstance)})}disposeRegisteredKernels(e){const t=Ch(e);t.forEach(s=>{s.disposeFunc!=null&&s.disposeFunc(this.registry[e])})}initializeBackend(e){const t=this.registryFactory[e];if(t==null)throw new Error(`Cannot initialize backend ${e}, no registration found.`);try{const s=t.factory();if(Promise.resolve(s)===s){const n=++this.pendingBackendInitId,i=s.then(r=>n(nthis.registryFactory[t].priority-this.registryFactory[e].priority)}initializeBackendsAndReturnBest(){const e=this.getSortedBackends();for(let t=0;tthis.startScope(s),()=>this.endScope(n),()=>(n=t(),n instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),n))}scopedRun(e,t,s){e();try{const n=s();return t(),n}catch(n){throw t(),n}}nextTensorId(){return np.nextTensorId++}nextVariableId(){return np.nextVariableId++}clone(e){const t=this.makeTensorFromDataId(e.dataId,e.shape,e.dtype),s={x:e},n=r=>({x:()=>{const o="float32",a={x:r},l={dtype:o};return T.runKernelFunc(c=>c.cast(r,o),a,null,kr,l)}}),i=[];return this.addTapeNode(this.state.activeScope.name,s,[t],n,i,{}),t}runKernel(e,t,s,n,i){const r=null,o=null;return this.runKernelFunc(r,t,o,e,s,n,i)}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(e,t,s){const n=this.backend.numDataIds();let i=0;s.forEach(a=>{i+=a.dtype==="complex64"?3:1});const r=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],o=n-t-i-r;if(o>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${o} data ids) after running '${e}'`)}runKernelFunc(e,t,s,n,i,r,o){let a,l=[];const c=this.isTapeOn();n==null&&(n=this.state.activeScope!=null?this.state.activeScope.name:"");const p=this.state.numBytes,u=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);let h;const d=qc(n,this.backendName);let m;if(d!=null)h=()=>{const y=this.backend.numDataIds();m=d.kernelFunc({inputs:t,attrs:i,backend:this.backend});const b=Array.isArray(m)?m:[m];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(n,y,b);const S=b.map(({dataId:x,shape:I,dtype:A})=>this.makeTensorFromDataId(x,I,A));if(c){let x=this.getTensorsForGradient(n,t,S);if(x==null){o==null&&(o=[]);const I=S.filter((A,k)=>o[k]);x=(r||[]).slice().concat(I)}l=this.saveTensorsForBackwardMode(x)}return S};else{const y=b=>{if(!c)return;l=b.map(S=>this.keep(this.clone(S)))};h=()=>{const b=this.backend.numDataIds();m=this.tidy(()=>e(this.backend,y));const S=Array.isArray(m)?m:[m];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(n,b,S),S}}let f;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{!this.ENV.getBool("DEBUG")&&!this.state.profiling?a=h():(f=this.profiler.profileKernel(n,t,()=>h()),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(f),a=f.outputs)}),c&&this.addTapeNode(n,t,a,s,l,i),this.state.profiling&&this.state.activeProfile.kernels.push({name:n,bytesAdded:this.state.numBytes-p,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-u,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(t).map(y=>t[y]!=null?t[y].shape:null),outputShapes:a.map(y=>y.shape),kernelTimeMs:f.timeMs,extraInfo:f.extraInfo}),Array.isArray(m)?a:a[0]}saveTensorsForBackwardMode(e){const t=e.map(s=>this.keep(this.clone(s)));return t}getTensorsForGradient(e,t,s){const n=Nh(e);if(n!=null){const i=n.inputsToSave||[],r=n.outputsToSave||[];let o;n.saveAllInputs?(v(Array.isArray(t),()=>"saveAllInputs is true, expected inputs to be an array."),o=Object.keys(t).map(l=>t[l])):o=i.map(l=>t[l]);const a=s.filter((l,c)=>r[c]);return o.concat(a)}return null}makeTensor(e,t,s,n){if(e==null)throw new Error("Values passed to engine.makeTensor() are null");s=s||"float32",n=n||this.backend;let i=e;s==="string"&&vn(e[0])&&(i=e.map(a=>cy(a)));const r=n.write(i,t,s),o=new ue(t,s,r,this.nextTensorId());if(this.incRef(o,n),s==="string"){const a=this.state.tensorInfo.get(r),l=ly(i);this.state.numBytes+=l-a.bytes,a.bytes=l}return o}makeTensorFromDataId(e,t,s,n){s=s||"float32";const i=new ue(t,s,e,this.nextTensorId());return this.incRef(i,n),i}makeVariable(e,t=!0,s,n){s=s||this.nextVariableId().toString(),n!=null&&n!==e.dtype&&(e=e.cast(n));const i=new Xn(e,t,s,this.nextTensorId());if(this.state.registeredVariables[i.name]!=null)throw new Error(`Variable with name ${i.name} was already registered`);return this.state.registeredVariables[i.name]=i,this.incRef(i,this.backend),i}incRef(e,t){const s=this.state.tensorInfo.has(e.dataId)?this.state.tensorInfo.get(e.dataId).refCount:0;if(this.state.numTensors++,e.dtype==="string"&&this.state.numStringTensors++,s===0){this.state.numDataBuffers++;let n=0;e.dtype!=="complex64"&&e.dtype!=="string"&&(n=e.size*ay(e.dtype)),this.state.tensorInfo.set(e.dataId,{backend:t||this.backend,dtype:e.dtype,shape:e.shape,bytes:n,refCount:0}),this.state.numBytes+=n}this.state.tensorInfo.get(e.dataId).refCount++,e instanceof Xn||this.track(e)}disposeTensor(e){if(!this.state.tensorInfo.has(e.dataId))return;this.state.numTensors--,e.dtype==="string"&&this.state.numStringTensors--;const t=this.state.tensorInfo.get(e.dataId),s=t.refCount;s<=1?(e.dtype!=="complex64"&&(this.state.numBytes-=t.bytes),this.state.numDataBuffers--,t.backend.disposeData(e.dataId),this.state.tensorInfo.delete(e.dataId)):this.state.tensorInfo.get(e.dataId).refCount--}disposeVariables(){for(const e in this.state.registeredVariables){const t=this.state.registeredVariables[e];this.disposeVariable(t)}}disposeVariable(e){this.disposeTensor(e),this.state.registeredVariables[e.name]!=null&&delete this.state.registeredVariables[e.name]}memory(){const e=this.backend.memory();return e.numTensors=this.state.numTensors,e.numDataBuffers=this.state.numDataBuffers,e.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(e.unreliable=!0,e.reasons==null&&(e.reasons=[]),e.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),e}async profile(e){this.state.profiling=!0;const t=this.state.numBytes,s=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await e(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map(n=>n.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-t,this.state.activeProfile.newTensors=this.state.numTensors-s;for(const n of this.state.activeProfile.kernels)n.kernelTimeMs=await n.kernelTimeMs,n.extraInfo=await n.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&this.state.kernelDepth===0}addTapeNode(e,t,s,n,i,r){const o={id:this.state.nextTapeNodeId++,kernelName:e,inputs:t,outputs:s,saved:i},a=Nh(e);a!=null&&(n=a.gradFunc),n!=null&&(o.gradient=l=>(l=l.map((c,p)=>{if(c==null){const u=s[p],h=Yn(u.size,u.dtype);return this.makeTensor(h,u.shape,u.dtype)}return c}),n(l.length>1?l:l[0],i,r))),this.state.activeTape.push(o)}keep(e){return e.kept=!0,e}startTape(){this.state.gradientDepth===0&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(e){const t={track:[],name:"unnamed scope",id:this.state.nextScopeId++};e&&(t.name=e),this.state.scopeStack.push(t),this.state.activeScope=t}endScope(e){const t=sp(e),s=new Set(t.map(i=>i.id));for(let i=0;i{!i.kept&&i.scopeId===n.id&&this.track(i)})}gradients(e,t,s,n=!1){if(v(t.length>0,()=>"gradients() received an empty list of xs."),s!=null&&s.dtype!=="float32")throw new Error(`dy must have 'float32' dtype, but has '${s.dtype}'`);const i=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy("forward",e));v(i instanceof ue,()=>"The result y returned by f() must be a tensor.");const r=tS(this.state.activeTape,t,i);if(!n&&r.length===0&&t.length>0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that the f you passed encloses all operations that lead from x to y.");return this.tidy("backward",()=>{const o={};o[i.id]=s==null?I1(i.shape):s,sS(o,r,l=>this.tidy(l),A1);const a=t.map(l=>o[l.id]);return this.state.gradientDepth===0&&(this.state.activeTape.forEach(l=>{for(const c of l.saved)c.dispose()}),this.state.activeTape=null),{value:i,grads:a}})}customGrad(e){return v(Hn(e),()=>"The f passed in customGrad(f) must be a function."),(...t)=>{v(t.every(i=>i instanceof ue),()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors");let s;const n={};return t.forEach((i,r)=>{n[r]=i}),this.runKernelFunc((i,r)=>(s=e(...t,r),v(s.value instanceof ue,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),v(Hn(s.gradFunc),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."),s.value),n,(i,r)=>{const o=s.gradFunc(i,r),a=Array.isArray(o)?o:[o];v(a.length===t.length,()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns the same number of tensors as inputs passed to f(...)."),v(a.every(c=>c instanceof ue),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors.");const l={};return a.forEach((c,p)=>{l[p]=()=>c}),l})}}readSync(e){const t=this.state.tensorInfo.get(e);return t.backend.readSync(e)}read(e){const t=this.state.tensorInfo.get(e);return t.backend.read(e)}async time(e){const t=Rh(),s=await this.backend.time(e);return s.wallMs=Rh()-t,s}track(e){return this.state.activeScope!=null&&(e.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(e)),e}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new pS();for(const e in this.registry)this.disposeRegisteredKernels(e),this.registry[e].dispose(),delete this.registry[e];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}}np.nextTensorId=0;np.nextVariableId=0;function I1(e){const t=Xc(We(e),"float32");return T.makeTensor(t,e,"float32")}function N1(){const e=hg();if(e._tfengine==null){const t=new cg(e);e._tfengine=new np(t)}return YL(e._tfengine.ENV),oS(()=>e._tfengine),e._tfengine}const T=N1();function A1(e,t){const s={a:e,b:t};return T.runKernelFunc((n,i)=>{const r=n.add(e,t);return i([e,t]),r},s,null,Er)}const la={};Re(la,{isBrowser:()=>yy,isMobile:()=>R1});function C1(){return typeof navigator!="undefined"&&navigator!=null}function R1(){if(C1()){const e=navigator.userAgent||navigator.vendor||window.opera;return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(e)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(e.substr(0,4))}return!1}function yy(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}const gi=$();gi.registerFlag("DEBUG",()=>!1,e=>{e&&console.warn("Debugging mode is ON. The output of every math call will be downloaded to CPU and checked for NaNs. This significantly impacts performance.")});gi.registerFlag("IS_BROWSER",()=>yy());gi.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");gi.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));gi.registerFlag("PROD",()=>!1);gi.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>gi.getBool("DEBUG"));gi.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);gi.registerFlag("IS_TEST",()=>!1);function Zt(e,t){let s=e;if(_t(e))return t==="string"?[]:[e.length];if(!Array.isArray(e))return[];const n=[];for(;Array.isArray(s)||_t(s)&&t!=="string";)n.push(s.length),s=s[0];return Array.isArray(e)&&$().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&uS(e,n,[]),n}function uS(e,t,s){if(s=s||[],!Array.isArray(e)&&!_t(e)){v(t.length===0,()=>`Element arr[${s.join("][")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`);return}v(t.length>0,()=>`Element arr[${s.join("][")}] should be a primitive, but is an array of ${e.length} elements`),v(e.length===t[0],()=>`Element arr[${s.join("][")}] should have ${t[0]} elements, but has ${e.length} elements`);const n=t.slice(1);for(let i=0;i=0&&(i=n),hS(n,i,t,s),e==null||!_t(e)&&!Array.isArray(e)&&typeof e!="number"&&typeof e!="boolean"&&typeof e!="string"){const l=e==null?"null":e.constructor.name;throw new Error(`Argument '${t}' passed to '${s}' must be a Tensor or TensorLike, but got '${l}'`)}const r=Zt(e,i);!_t(e)&&!Array.isArray(e)&&(e=[e]);const o=!0,a=i!=="string"?Kc(e,i):Gn(e,[],o);return T.makeTensor(a,r,i)}function yi(e,t,s,n="numeric"){if(!Array.isArray(e))throw new Error(`Argument ${t} passed to ${s} must be a \`Tensor[]\` or \`TensorLike[]\``);const i=e;return i.map((r,o)=>g(r,`${t}[${o}]`,s),n)}function L(e){const t=Object.keys(e);if(t.length!==1)throw new Error(`Please provide an object with a single key (operation name) mapping to a function. Got an object with ${t.length} keys.`);let s=t[0];const n=e[s];s.endsWith("_")&&(s=s.substring(0,s.length-1));const i=(...r)=>{T.startScope(s);try{const o=n(...r);return o instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),T.endScope(o),o}catch(o){throw T.endScope(null),o}};return Object.defineProperty(i,"name",{value:s,configurable:!0}),i}function O1(e){const t=g(e,"x","abs"),s={x:t};return T.runKernelFunc((n,i)=>(i([t]),t.dtype==="complex64"?n.complexAbs(t):n.abs(t)),s,null,dl)}const Je=L({abs_:O1});function E1(e){const t=g(e,"x","acos"),s={x:t};return T.runKernelFunc((n,i)=>{const r=n.acos(t);return i([t]),r},s,null,ml)}const ip=L({acos_:E1});function k1(e){const t=g(e,"x","acosh"),s={x:t};return T.runKernelFunc((n,i)=>{const r=n.acosh(t);return i([t]),r},s,null,fl)}const rp=L({acosh_:k1});function _1(e,t){let s=g(e,"a","add"),n=g(t,"b","add");[s,n]=Ne(s,n);const i=(o,a)=>{const l=o.add(s,n);return a([s,n]),l},r={a:s,b:n};return T.runKernelFunc(i,r,null,Er)}const W=L({add_:_1});function D1(e){v(Array.isArray(e),()=>"The argument passed to tf.addN() must be a list of tensors"),v(e.length>=1,()=>`Must pass at least one tensor to tf.addN(), but got ${e.length}`);const t=e.map((r,o)=>g(r,`tensors${o}`,"addN")),s=t[0];t.forEach(r=>{if(r.dtype!==s.dtype)throw new Error("All tensors passed to tf.addN() must have the same dtype")}),t.forEach(r=>{if(!It(r.shape,s.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")});const n=(r,o)=>{const a=r.addN(t);return o(t),a},i=t;return T.runKernelFunc(n,i,null,gl)}const op=L({addN_:D1});function by(e,t){for(let s=0;se[r]);return[s,i]}function ft(e,t){const s=t.map(n=>1);return dS(e,s,t)}function F1(e,t,s){v(by(t,s),()=>`${e} supports only inner-most axes for now. Got axes ${t} and rank-${s} input.`)}function ut(e,t){if(by(e,t))return null;const s=[];for(let n=0;ns.push(n)),s}function Pr(e){return e.map((t,s)=>[s,t]).sort((t,s)=>t[1]-s[1]).map(t=>t[0])}function Gt(e,t){const s=[];for(let n=t-e;n"new shape and old shape must have the same number of elements.");const n={x:s},i={shape:t},r=(o,a)=>(a([s]),o.reshape(s,t));return T.runKernelFunc(r,n,null,bc,i)}const O=L({reshape_:M1});function U1(e,t){const s=g(e,"x","transpose");if(t==null&&(t=s.shape.map((r,o)=>o).reverse()),v(s.rank===t.length,()=>`Error in transpose: rank of input ${s.rank} must match length of perm ${t}.`),t.forEach(r=>{v(r>=0&&r`All entries in 'perm' must be between 0 and ${s.rank-1} but got ${t}`)}),s.rank<=1)return s.clone();const n={x:s},i={perm:t};return T.runKernelFunc(r=>r.transpose(s,t),n,null,mi,i)}const se=L({transpose_:U1});function $1(e,t=null,s=!1){let n=g(e,"x","all","bool");const i=a=>{const l=Te(t,n.shape);let c=l;const p=ut(c,n.rank);p!=null&&(n=se(n,p),c=Gt(c.length,n.rank));const u=a.all(n,c);if(s){const h=ft(u.shape,l);return O(u,h)}return u},r={x:n},o={axis:t,keepDims:s};return T.runKernelFunc(i,r,null,mg,o)}const jr=L({all_:$1});function W1(e,t=null,s=!1){let n=g(e,"x","any","bool");const i=a=>{const l=Te(t,n.shape);let c=l;const p=ut(c,n.rank);p!=null&&(n=se(n,p),c=Gt(c.length,n.rank));const u=a.any(n,c);if(s){const h=ft(u.shape,l);return O(u,h)}return u},r={x:n},o={axis:t,keepDims:s};return T.runKernelFunc(i,r,null,fg,o)}const sr=L({any_:W1});function z1(e,t=0){let s=g(e,"x","argMax");const n=(o,a)=>{a([s]);let l=Te(t,s.shape);const c=ut(l,s.rank);return c!=null&&(s=se(s,c),l=Gt(l.length,s.rank)),o.argMax(s,l[0])},i={x:s},r={axis:t};return T.runKernelFunc(n,i,null,yl,r)}const nr=L({argMax_:z1});function B1(e,t=0){let s=g(e,"x","argMin");const n=(o,a)=>{a([s]),t==null&&(t=0);let l=Te(t,s.shape);const c=ut(l,s.rank);return c!=null&&(s=se(s,c),l=Gt(l.length,s.rank)),o.argMin(s,l[0])},i={x:s},r={axis:t};return T.runKernelFunc(n,i,null,bl,r)}const ap=L({argMin_:B1});function P1(e){const t=g(e,"x","asin"),s={x:t};return T.runKernelFunc((n,i)=>{const r=n.asin(t);return i([t]),r},s,null,wl)}const lp=L({asin_:P1});function j1(e){const t=g(e,"x","asinh"),s={x:t};return T.runKernelFunc((n,i)=>{const r=n.asinh(t);return i([t]),r},s,null,xl)}const cp=L({asinh_:j1});function V1(e){const t=g(e,"x","atan"),s={x:t};return T.runKernelFunc((n,i)=>{const r=n.atan(t);return i([t]),r},s,null,Ll)}const pp=L({atan_:V1});function G1(e,t){let s=g(e,"a","atan2"),n=g(t,"b","atan2");[s,n]=Ne(s,n);const i=(o,a)=>{const l=o.atan2(s,n);return a([s,n]),l},r={a:s,b:n};return T.runKernelFunc(i,r,null,vl)}const up=L({atan2_:G1});function H1(e){const t=g(e,"x","atanh"),s={x:t};return T.runKernelFunc((n,i)=>{const r=n.atanh(t);return i([t]),r},s,null,Sl)}const hp=L({atanh_:H1});function q1(e,t){const s=g(e,"x","cast");if(!ry(t))throw new Error(`Failed to cast to unknown dtype ${t}`);if(t==="string"&&s.dtype!=="string"||t!=="string"&&s.dtype==="string")throw new Error("Only strings can be casted to strings");const n={x:s},i={dtype:t};return T.runKernelFunc(r=>r.cast(s,t),n,null,kr,i)}const K=L({cast_:q1});function Y1(e,t,s,n,i="NHWC",r){const o=e[3],a=[...t,o],l=ir(i);return is(e,a,s,r,n,null,null,l)}function Tn(e,t,s,n,i,r,o="channelsLast"){const[a,l]=kh(t);let c;if(o==="channelsLast")c=[a,l,e[3],e[3]];else if(o==="channelsFirst")c=[a,l,e[1],e[1]];else throw new Error(`Unknown dataFormat ${o}`);return is(e,c,s,n,i,r,!1,o)}function bi(e,t,s,n,i,r,o="NDHWC"){const[a,l,c]=xy(t);let p,u;if(o==="NDHWC")u="channelsLast",p=[a,l,c,e[4],e[4]];else if(o==="NCDHW")u="channelsFirst",p=[a,l,c,e[1],e[1]];else throw new Error(`Unknown dataFormat ${o}`);return rr(e,p,s,n,i,!1,u,r)}function is(e,t,s,n,i,r,o=!1,a="channelsLast"){let[l,c,p,u]=[-1,-1,-1,-1];if(a==="channelsLast")[l,c,p,u]=e;else if(a==="channelsFirst")[l,u,c,p]=e;else throw new Error(`Unknown dataFormat ${a}`);const[h,d,,m]=t,[f,y]=kh(s),[b,S]=kh(n),x=ca(h,b),I=ca(d,S),{padInfo:A,outHeight:k,outWidth:R}=K1(i,c,p,f,y,x,I,r,a),D=o?m*u:m;let F;return a==="channelsFirst"?F=[l,D,k,R]:a==="channelsLast"&&(F=[l,k,R,D]),{batchSize:l,dataFormat:a,inHeight:c,inWidth:p,inChannels:u,outHeight:k,outWidth:R,outChannels:D,padInfo:A,strideHeight:f,strideWidth:y,filterHeight:h,filterWidth:d,effectiveFilterHeight:x,effectiveFilterWidth:I,dilationHeight:b,dilationWidth:S,inShape:e,outShape:F,filterShape:t}}function rr(e,t,s,n,i,r=!1,o="channelsLast",a){let[l,c,p,u,h]=[-1,-1,-1,-1,-1];if(o==="channelsLast")[l,c,p,u,h]=e;else if(o==="channelsFirst")[l,h,c,p,u]=e;else throw new Error(`Unknown dataFormat ${o}`);const[d,m,f,,y]=t,[b,S,x]=xy(s),[I,A,k]=xy(n),R=ca(d,I),D=ca(m,A),F=ca(f,k),{padInfo:M,outDepth:B,outHeight:V,outWidth:Y}=X1(i,c,p,u,b,S,x,R,D,F,a),G=r?y*h:y;let Z;return o==="channelsFirst"?Z=[l,G,B,V,Y]:o==="channelsLast"&&(Z=[l,B,V,Y,G]),{batchSize:l,dataFormat:o,inDepth:c,inHeight:p,inWidth:u,inChannels:h,outDepth:B,outHeight:V,outWidth:Y,outChannels:G,padInfo:M,strideDepth:b,strideHeight:S,strideWidth:x,filterDepth:d,filterHeight:m,filterWidth:f,effectiveFilterDepth:R,effectiveFilterHeight:D,effectiveFilterWidth:F,dilationDepth:I,dilationHeight:A,dilationWidth:k,inShape:e,outShape:Z,filterShape:t}}function J1(e,t,s,n,i){n==null&&(n=Ly(e,t,s));const r=e[0],o=e[1],a=Vr((r-t+2*n)/s+1,i);v(De(a),()=>`The output # of rows (${a}) must be an integer. Change the stride and/or zero pad parameters`);const l=Vr((o-t+2*n)/s+1,i);return v(De(l),()=>`The output # of columns (${l}) must be an integer. Change the stride and/or zero pad parameters`),[a,l]}function Z1(e,t,s,n,i,r){i==null&&(i=Ly(e,t,n));const o=e[0],a=e[1],l=e[2],c=Vr((o-t+2*i)/n+1,r);v(De(c),()=>`The output # of depths (${c}) must be an integer. Change the stride and/or zero pad parameters`);const p=Vr((a-t+2*i)/n+1,r);v(De(p),()=>`The output # of rows (${p}) must be an integer. Change the stride and/or zero pad parameters`);const u=Vr((l-t+2*i)/n+1,r);return v(De(u),()=>`The output # of columns (${u}) must be an integer. Change the stride and/or zero pad parameters`),[c,p,u,s]}function Ly(e,t,s,n=1){const i=ca(t,n);return Math.floor((e[0]*(s-1)-s+i)/2)}function kh(e){return typeof e=="number"?[e,e,e]:e.length===2?[e[0],e[1],1]:e}function xy(e){return typeof e=="number"?[e,e,e]:e}function ca(e,t){return t<=1?e:e+(e-1)*(t-1)}function K1(e,t,s,n,i,r,o,a,l){let c,p,u;if(typeof e=="number"){const h=e===0?"VALID":"NUMBER";c={top:e,bottom:e,left:e,right:e,type:h};const d=J1([t,s],r,n,e,a);p=d[0],u=d[1]}else if(e==="same"){p=Math.ceil(t/n),u=Math.ceil(s/i);const h=Math.max(0,(p-1)*n+r-t),d=Math.max(0,(u-1)*i+o-s),m=Math.floor(h/2),f=h-m,y=Math.floor(d/2),b=d-y;c={top:m,bottom:f,left:y,right:b,type:"SAME"}}else if(e==="valid")c={top:0,bottom:0,left:0,right:0,type:"VALID"},p=Math.ceil((t-r+1)/n),u=Math.ceil((s-o+1)/i);else if(typeof e=="object"){const h=l==="channelsLast"?e[1][0]:e[2][0],d=l==="channelsLast"?e[1][1]:e[2][1],m=l==="channelsLast"?e[2][0]:e[3][0],f=l==="channelsLast"?e[2][1]:e[3][1],y=h===0&&d===0&&m===0&&f===0?"VALID":"EXPLICIT";c={top:h,bottom:d,left:m,right:f,type:y},p=Vr((t-r+h+d)/n+1,a),u=Vr((s-o+m+f)/i+1,a)}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:c,outHeight:p,outWidth:u}}function X1(e,t,s,n,i,r,o,a,l,c,p){let u,h,d,m;if(typeof e=="number"){const f=e===0?"VALID":"NUMBER";u={top:e,bottom:e,left:e,right:e,front:e,back:e,type:f};const y=Z1([t,s,n,1],a,1,i,e,p);h=y[0],d=y[1],m=y[2]}else if(e==="same"){h=Math.ceil(t/i),d=Math.ceil(s/r),m=Math.ceil(n/o);const f=(h-1)*i+a-t,y=(d-1)*r+l-s,b=(m-1)*o+c-n,S=Math.floor(f/2),x=f-S,I=Math.floor(y/2),A=y-I,k=Math.floor(b/2),R=b-k;u={top:I,bottom:A,left:k,right:R,front:S,back:x,type:"SAME"}}else if(e==="valid")u={top:0,bottom:0,left:0,right:0,front:0,back:0,type:"VALID"},h=Math.ceil((t-a+1)/i),d=Math.ceil((s-l+1)/r),m=Math.ceil((n-c+1)/o);else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:u,outDepth:h,outHeight:d,outWidth:m}}function Vr(e,t){if(!t)return e;switch(t){case"round":return Math.round(e);case"ceil":return Math.ceil(e);case"floor":return Math.floor(e);default:throw new Error(`Unknown roundingMode ${t}`)}}function Bs(e){const[t,s,n]=kh(e);return t===1&&s===1&&n===1}function et(e,t){return Bs(e)||Bs(t)}function ir(e){if(e==="NHWC")return"channelsLast";if(e==="NCHW")return"channelsFirst";throw new Error(`Unknown dataFormat ${e}`)}function Q1(e,t,s,n,i){const r=g(e,"x","avgPool","float32"),o=1;v(et(s,o),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${o}'`);let a=r,l=!1;r.rank===3&&(l=!0,a=O(r,[1,r.shape[0],r.shape[1],r.shape[2]])),v(a.rank===4,()=>`Error in avgPool: x must be rank 4 but got rank ${a.rank}.`),i!=null&&v(De(n),()=>`Error in avgPool: pad must be an integer when using, dimRoundingMode ${i} but got pad ${n}.`);const c=(d,m)=>{const f=Tn(a.shape,t,s,1,n,i);return m([a]),f.filterWidth===1&&f.filterHeight===1&&It(f.inShape,f.outShape)?a.clone():d.avgPool(a,f)},p={x:a},u={filterSize:t,strides:s,pad:n,dimRoundingMode:i};let h=T.runKernelFunc(c,p,null,Tl,u);return h=K(h,r.dtype),l?O(h,[h.shape[1],h.shape[2],h.shape[3]]):h}const rs=L({avgPool_:Q1});function eE(){$().set("PROD",!0)}function tE(){$().set("DEBUG",!0)}function sE(){$().set("DEPRECATION_WARNINGS_ENABLED",!1),console.warn("TensorFlow.js deprecation warnings have been disabled.")}function xt(e){$().getBool("DEPRECATION_WARNINGS_ENABLED")&&console.warn(e+" You can disable deprecation warnings with tf.disableDeprecationWarnings().")}lS(xt);function nE(){T.disposeVariables()}function os(){return T}function pa(){return T.memory()}function iE(e){return T.profile(e)}function N(e,t){return T.tidy(e,t)}function ce(e){const t=sp(e);t.forEach(s=>s.dispose())}function gt(e){return T.keep(e)}function rE(e){return T.time(e)}function mS(e){return T.setBackend(e)}function oE(){return T.ready()}function aE(){return T.backendName}function lE(e){T.removeBackend(e)}function cE(e){return T.findBackend(e)}function pE(e){return T.findBackendFactory(e)}function dp(e,t,s=1){return T.registerBackend(e,t,s)}function Sy(){return T.backend}function uE(e,t){$().setPlatform(e,t)}function hE(e,t,s,n,i,r="NDHWC",o){o==null?o=[1,1,1]:xt("dilations is deprecated, this field will be gone in v3.0.0.");const a=g(e,"x","avgPool3d","float32");let l=a,c=!1;a.rank===4&&(c=!0,l=O(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]])),v(l.rank===5,()=>`Error in avgPool3d: x must be rank 5 but got rank ${l.rank}.`),v(r==="NDHWC",()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${r}`),v(et(s,o),()=>`Error in avgPool3d: Either strides or dilations must be 1. Got strides ${s} and dilations '${o}'`),i!=null&&v(De(n),()=>`Error in avgPool3d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${n}.`);const p=(m,f)=>{o==null&&(o=[1,1,1]);const y=bi(l.shape,t,s,o,n,i,r);return f([l]),m.avgPool3d(l,y)},u={x:l},h={filterSize:t,strides:s,pad:n,dimRoundingMode:i,dataFormat:r,dilations:o};let d=T.runKernelFunc(p,u,null,Il,h);return d=K(d,l.dtype),c?O(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}const Gr=L({avgPool3d_:hE});function vy(e,t){const s=e[0].length;e.forEach((i,r)=>{v(i.length===s,()=>`Error in concat${s}D: rank of tensors[${r}] must be the same as the rank of the rest (${s})`)}),v(t>=0&&t`Error in concat${s}D: axis must be between 0 and ${s-1}.`);const n=e[0];e.forEach((i,r)=>{for(let o=0;o`Error in concat${s}D: Shape of tensors[${r}] (${i}) does not match the shape of the rest (${n}) along the non-concatenated axis ${r}.`)})}function Ty(e,t){const s=e[0].slice();for(let n=1;n`Based on the provided shape, [${t}], the tensor should have ${i} values but has ${r}`);for(let o=0;o`Error creating a new Tensor. Inferred shape (${s}) does not match the provided shape (${t}). `)}}return!_t(e)&&!Array.isArray(e)&&(e=[e]),t=t||s,e=n!=="string"?Kc(e,n):Gn(e,[],!0),T.makeTensor(e,t,n)}function ze(e,t,s){const n=Zt(e,s);return ds(e,t,n,s)}function dE(e,t=0){v(e.length>=1,()=>"Pass at least one tensor to concat");let s=yi(e,"tensors","concat");s[0].dtype==="complex64"&&s.forEach(c=>{if(c.dtype!=="complex64")throw new Error(`Cannot concatenate complex64 tensors with a tensor + with dtype ${c.dtype}. `)});const n=Te(t,s[0].shape)[0],i=Ty(s.map(c=>c.shape),n);if(We(i)===0)return ze([],i);if(s=s.filter(c=>c.size>0),s.length===1)return s[0];const r=s.map(c=>c.shape);vy(r,n);const o=(c,p)=>{const u=c.concat(s,n);return p(s),u},a=s,l={axis:t};return T.runKernelFunc(o,a,null,El,l)}const ge=L({concat_:dE});function mE(e,t,s=!1,n=!1){let i=g(e,"a","matMul"),r=g(t,"b","matMul");[i,r]=Ne(i,r),v(i.rank>=2&&r.rank>=2&&i.rank===r.rank,()=>`Error in matMul: inputs must have the same rank of at least 2, got ranks ${i.rank} and ${r.rank}.`);const o=s?i.shape[i.rank-2]:i.shape[i.rank-1],a=n?r.shape[r.rank-1]:r.shape[r.rank-2],l=s?i.shape[i.rank-1]:i.shape[i.rank-2],c=n?r.shape[r.rank-2]:r.shape[r.rank-1],p=i.shape.slice(0,-2),u=r.shape.slice(0,-2),h=We(p),d=We(u);v(It(p,u),()=>`Error in matMul: outer dimensions (${p}) and (${u}) of Tensors with shapes ${i.shape} and ${r.shape} must match.`),v(o===a,()=>`Error in matMul: inner shapes (${o}) and (${a}) of Tensors with shapes ${i.shape} and ${r.shape} and transposeA=${s} and transposeB=${n} must match.`);const m=i.shape.slice(0,-2).concat([l,c]),f=s?O(i,[h,o,l]):O(i,[h,l,o]),y=n?O(r,[d,c,a]):O(r,[d,a,c]),b=(A,k)=>(k([f,y]),A.batchMatMul(f,y,s,n)),S={a:f,b:y},x={transposeA:s,transposeB:n},I=T.runKernelFunc(b,S,null,Al,x);return O(I,m)}const Le=L({matMul_:mE});function fE(e,t){let s=g(e,"a","mul"),n=g(t,"b","mul");[s,n]=Ne(s,n);const i=(o,a)=>{const l=o.multiply(s,n);return a([s,n]),l},r={a:s,b:n};return T.runKernelFunc(i,r,null,lc)}const C=L({mul_:fE});function gE(e){const t=g(e,"x","sigmoid"),s={x:t};return T.runKernelFunc((n,i)=>{const r=n.sigmoid(t);return i([r]),r},s,null,Ec)}const Ss=L({sigmoid_:gE});const Jn={};Re(Jn,{assertParamsValid:()=>Iy,computeFlatOffset:()=>bE,computeOutShape:()=>Ay,isSliceContinous:()=>yE,maskToAxes:()=>mp,parseSliceParams:()=>fp,startForAxis:()=>Ey,startIndicesWithElidedDims:()=>Cy,stopForAxis:()=>ky,stopIndicesWithElidedDims:()=>Ry,stridesForAxis:()=>Oy,stridesWithElidedDims:()=>Ny});function Iy(e,t,s){v(e.rank===t.length,()=>`Error in slice${e.rank}D: Length of begin ${t} must match the rank of the array (${e.rank}).`),v(e.rank===s.length,()=>`Error in slice${e.rank}D: Length of size ${s} must match the rank of the array (${e.rank}).`);for(let n=0;n`Error in slice${e.rank}D: begin[${n}] + size[${n}] (${t[n]+s[n]}) would overflow input.shape[${n}] (${e.shape[n]})`)}function mp(e){const t=[];let s=0;for(;e>0;)e&1&&t.push(s),e/=2,s++;return t}function Ay(e,t,s){const n=[];for(let i=0;i-1)r[a]=0;else{const l=fS(t,s,a);let c=n[l];e&1<-1)r[a]=Number.MAX_SAFE_INTEGER;else{const l=fS(t,s,a);let c=n[l];e&1<0?o=Number.MIN_SAFE_INTEGER:o=Number.MAX_SAFE_INTEGER);const l=n[i];return o<0&&(o+=l),o=na(0,o,l-1),o}function ky(e,t,s,n,i,r){let o=t[i];const a=s[i]||1;(e&1<0?o=Number.MAX_SAFE_INTEGER:o=Number.MIN_SAFE_INTEGER);const l=n[i];return o<0&&(o+=l),a>0?o=na(0,o,l):o=na(-1,o,l-1),o}function yE(e,t,s){let n=s.length;for(let i=0;i1){n=i;break}for(let i=n+1;i0||s[i]!==e[i])return!1;return!0}function bE(e,t){let s=e.length>0?e[e.length-1]:1;for(let n=0;n{v(r!==-1,()=>"slice() does not support negative begin indexing.")});let i;return s==null?i=new Array(e.rank).fill(-1):typeof s=="number"?i=[s,...new Array(e.rank-1).fill(-1)]:s.lengthr>=0?r:(v(r===-1,()=>`Negative size values should be exactly -1 but got ${r} for the slice() size at index ${o}.`),e.shape[o]-n[o])),[n,i]}function wE(e,t,s){const n=g(e,"x","slice");if(n.rank===0)throw new Error("Slicing scalar is not possible");const[i,r]=fp(n,t,s);Iy(n,i,r);const o=(c,p)=>(p([n]),c.slice(n,i,r)),a={x:n},l={begin:t,size:s};return T.runKernelFunc(o,a,null,Nc,l)}const he=L({slice_:wE});function xE(e){const t=g(e,"x","tanh"),s={x:t};return T.runKernelFunc((n,i)=>{const r=n.tanh(t);return i([r]),r},s,null,zc)}const Zn=L({tanh_:xE});function LE(e,t,s,n,i,r){const o=g(e,"forgetBias","basicLSTMCell"),a=g(t,"lstmKernel","basicLSTMCell"),l=g(s,"lstmBias","basicLSTMCell"),c=g(n,"data","basicLSTMCell"),p=g(i,"c","basicLSTMCell"),u=g(r,"h","basicLSTMCell"),h=ge([c,u],1),d=Le(h,a),m=W(d,l),f=m.shape[0],y=m.shape[1]/4,b=[f,y],S=he(m,[0,0],b),x=he(m,[0,y],b),I=he(m,[0,y*2],b),A=he(m,[0,y*3],b),k=W(C(Ss(S),Zn(x)),C(p,Ss(W(o,I)))),R=C(Zn(k),Ss(A));return[k,R]}const _y=L({basicLSTMCell_:LE});function SE(e,t,s){const n=g(e,"x","batchToSpaceND"),i=t.reduce((l,c)=>l*c);v(n.rank>=1+t.length,()=>`input rank is ${n.rank} but should be > than blockShape.length ${t.length}`),v(s.length===t.length,()=>`crops.length is ${s.length} but should be equal to blockShape.length ${t.length}`),v(n.shape[0]%i===0,()=>`input tensor batch is ${n.shape[0]} but is not divisible by the product of the elements of blockShape ${t.join(" * ")} === ${i}`);const r=l=>l.batchToSpaceND(n,t,s),o={x:n},a={blockShape:t,crops:s};return T.runKernelFunc(r,o,null,Nl,a)}const wi=L({batchToSpaceND_:SE});function yS(e){let t;return e.rank===0||e.rank===1?t=O(e,[1,1,1,e.size]):e.rank===2?t=O(e,[1,1,e.shape[0],e.shape[1]]):e.rank===3?t=O(e,[1,e.shape[0],e.shape[1],e.shape[2]]):t=e,t}function vE(e,t,s,n,i,r){r==null&&(r=.001);const o=g(e,"x","batchNorm"),a=g(t,"mean","batchNorm"),l=g(s,"variance","batchNorm");let c;i!=null&&(c=g(i,"scale","batchNorm"));let p;n!=null&&(p=g(n,"offset","batchNorm")),v(a.rank===l.rank,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),v(p==null||a.rank===p.rank,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),v(c==null||a.rank===c.rank,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");const u=yS(o),h=(y,b)=>(b([u,a,l,c]),y.batchNorm(u,_h(a),_h(l),_h(p),_h(c),r)),d={x:u,scale:c,offset:p,mean:a,variance:l},m={varianceEpsilon:r},f=T.runKernelFunc(h,d,null,Gl,m);return O(f,o.shape)}function _h(e){return e==null?null:e.rank===0?O(e,[e.size]):e.rank===1?e:e.rank===2?O(e,[1,1,e.shape[0],e.shape[1]]):e.rank===3?O(e,[1,e.shape[0],e.shape[1],e.shape[2]]):e}const on=L({batchNorm_:vE});function TE(e,t,s,n,i,r){const o=g(e,"x","batchNorm"),a=g(t,"mean","batchNorm"),l=g(s,"variance","batchNorm");let c;i!=null&&(c=g(i,"scale","batchNorm"));let p;return n!=null&&(p=g(n,"offset","batchNorm")),v(o.rank===2,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${o.rank}.`),v(a.rank===2||a.rank===1,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${a.rank}.`),v(l.rank===2||l.rank===1,()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${l.rank}.`),c!=null&&v(c.rank===2||c.rank===1,()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${c.rank}.`),p!=null&&v(p.rank===2||p.rank===1,()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${p.rank}.`),on(o,a,l,p,c,r)}const gp=L({batchNorm2d_:TE});function IE(e,t,s,n,i,r){const o=g(e,"x","batchNorm"),a=g(t,"mean","batchNorm"),l=g(s,"variance","batchNorm");let c;i!=null&&(c=g(i,"scale","batchNorm"));let p;return n!=null&&(p=g(n,"offset","batchNorm")),v(o.rank===3,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${o.rank}.`),v(a.rank===3||a.rank===1,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${a.rank}.`),v(l.rank===3||l.rank===1,()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${l.rank}.`),c!=null&&v(c.rank===3||c.rank===1,()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${c.rank}.`),p!=null&&v(p.rank===3||p.rank===1,()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${p.rank}.`),on(o,a,l,p,c,r)}const yp=L({batchNorm3d_:IE});function AE(e,t,s,n,i,r){const o=g(e,"x","batchNorm"),a=g(t,"mean","batchNorm"),l=g(s,"variance","batchNorm");let c;i!=null&&(c=g(i,"scale","batchNorm"));let p;return n!=null&&(p=g(n,"offset","batchNorm")),v(o.rank===4,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${o.rank}.`),v(a.rank===4||a.rank===1,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${a.rank}.`),v(l.rank===4||l.rank===1,()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${l.rank}.`),c!=null&&v(c.rank===4||c.rank===1,()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${c.rank}.`),p!=null&&v(p.rank===4||p.rank===1,()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${p.rank}.`),on(o,a,l,p,c,r)}const bp=L({batchNorm4d_:AE});function NE(e){const t=g(e,"x","clone",null),s=()=>T.makeTensorFromDataId(t.dataId,t.shape,t.dtype),n={x:t};return T.runKernelFunc(s,n,null,Yl)}const Ps=L({clone_:NE});function CE(e,t){let s=g(e,"broadcastTo","x");const n=s.shape;if(t.some(p=>!(p>0)||p%1!==0))throw new Error(`broadcastTo(): Invalid broadcast shape [${t}].`);if(t.lengths.rank){const p=s.shape.slice();for(;p.length=0;p--)if(i[p]===t[p])r[p]=1;else if(s.shape[p]!==1)throw new Error(`broadcastTo(): [${n}] cannot be broadcast to [${t}].`);const o=r.map((p,u)=>p>1?u:-1).filter(p=>p>=0);if(o.length===0)return Ps(s);const a=p=>p.tile(s,r),l={x:s},c={shape:t,inputShape:i};return T.runKernelFunc(a,l,null,Cl,c)}const or=L({broadcastTo_:CE});function le(e,t="float32",s){return t=t||"float32",Jc(e),new fi(e,t,s)}function RE(e){const t=g(e,"x","ceil"),s={x:t};return T.runKernelFunc(n=>n.ceil(t),s,null,Rl)}const wp=L({ceil_:RE});function OE(e,t,s){const n=g(e,"x","clipByValue");v(t<=s,()=>`Error in clip: min (${t}) must be less than or equal to max (${s}).`);const i={x:n},r={clipValueMin:t,clipValueMax:s};return T.runKernelFunc((o,a)=>{const l=o.clip(n,t,s);return a([n]),l},i,null,Ol,r)}const Dt=L({clipByValue_:OE});function EE(e,t){const s=g(e,"real","complex"),n=g(t,"imag","complex");xe(s.shape,n.shape,`real and imag shapes, ${s.shape} and ${n.shape}, must match in call to tf.complex().`);const i=o=>o.complex(s,n),r={real:s,imag:n};return T.runKernelFunc(i,r,null,bg)}const Ze=L({complex_:EE});function kE(e){return ge(e,0)}const xp=L({concat1d_:kE});function _E(e,t){return ge(e,t)}const Lp=L({concat2d_:_E});function DE(e,t){return ge(e,t)}const Sp=L({concat3d_:DE});function FE(e,t){return ge(e,t)}const vp=L({concat4d_:FE});function ME(e,t,s,n,i="NHWC",r=[1,1],o){const a=g(e,"x","conv2d"),l=g(t,"filter","conv2d");let c=a,p=!1;a.rank===3&&(p=!0,c=O(a,[1,a.shape[0],a.shape[1],a.shape[2]])),v(c.rank===4,()=>`Error in conv2d: input must be rank 4, but got rank ${c.rank}.`),v(l.rank===4,()=>`Error in conv2d: filter must be rank 4, but got rank ${l.rank}.`),o!=null&&v(De(n),()=>`Error in conv2d: pad must be an integer when using, dimRoundingMode ${o} but got pad ${n}.`);const u=i==="NHWC"?c.shape[3]:c.shape[1];v(u===l.shape[2],()=>`Error in conv2d: depth of input (${u}) must match input depth for filter ${l.shape[2]}.`),v(et(s,r),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`);const h=(y,b)=>{const S=ir(i),x=is(c.shape,l.shape,s,r,n,o,!1,S),I=y.conv2d(c,l,x);return b([c,l]),I},d={x:c,filter:l},m={strides:s,pad:n,dataFormat:i,dilations:r,dimRoundingMode:o},f=T.runKernelFunc(h,d,null,kl,m);return p?O(f,[f.shape[1],f.shape[2],f.shape[3]]):f}const yt=L({conv2d_:ME});function UE(e,t,s,n,i="NWC",r=1,o){const a=g(e,"x","conv1d"),l=g(t,"filter","conv1d");let c=a,p=!1;a.rank===2&&(p=!0,c=O(a,[1,a.shape[0],a.shape[1]])),v(c.rank===3,()=>`Error in conv1d: input must be rank 3, but got rank ${c.rank}.`),v(l.rank===3,()=>`Error in conv1d: filter must be rank 3, but got rank ${l.rank}.`),o!=null&&v(De(n),()=>`Error in conv1d: pad must be an integer when using, dimRoundingMode ${o} but got pad ${n}.`),v(c.shape[2]===l.shape[1],()=>`Error in conv1d: depth of input (${c.shape[2]}) must match input depth for filter ${l.shape[1]}.`),v(et(s,r),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${s} and dilation '${r}'`),v(i==="NWC",()=>`Error in conv1d: got dataFormat of ${i} but only NWC is currently supported.`);const u=O(l,[1,l.shape[0],l.shape[1],l.shape[2]]),h=O(c,[c.shape[0],1,c.shape[1],c.shape[2]]),d=[1,s],m=[1,r],f="NHWC",y=yt(h,u,d,n,f,m,o);return p?O(y,[y.shape[2],y.shape[3]]):O(y,[y.shape[0],y.shape[2],y.shape[3]])}const Hr=L({conv1d_:UE});function $E(e,t,s,n,i,r="NHWC",o){v(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let a=e,l=t,c=!1;t.rank===3&&(c=!0,l=O(t,[1,t.shape[0],t.shape[1],t.shape[2]]),a=[1,e[0],e[1],e[2]]),v(a.length===4,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${a.length}.`),v(l.rank===4,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${l.rank}`),v(s.rank===4,()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${s.rank}`);const p=r==="NHWC"?a[3]:a[1],u=r==="NHWC"?l.shape[3]:l.shape[1];v(p===s.shape[2],()=>`Error in conv2dDerInput: depth of input (${p}) must match input depth for filter ${s.shape[2]}.`),v(u===s.shape[3],()=>`Error in conv2dDerInput: depth of output (${u}) must match output depth for filter ${s.shape[3]}.`),o!=null&&v(De(i),()=>`Error in conv2dDerInput: pad must be an integer when using, dimRoundingMode ${o} but got pad ${i}.`);const h=(y,b)=>{const S=1,x=ir(r),I=is(a,s.shape,n,S,i,o,!1,x),A=y.conv2dDerInput(l,s,I);return b([l,s]),A},d={dy:l,filter:s},m={strides:n,pad:i,dataFormat:r,dimRoundingMode:o,inputShape:a},f=T.runKernelFunc(h,d,null,_l,m);return c?O(f,[f.shape[1],f.shape[2],f.shape[3]]):f}const ua=L({conv2DBackpropInput_:$E});function WE(e,t,s,n,i,r){const o=g(e,"x","conv2dTranspose"),a=g(t,"filter","conv2dTranspose");return ua(s,o,a,n,i,"NHWC",r)}const qr=L({conv2dTranspose_:WE});function zE(e,t,s,n,i="NDHWC",r=[1,1,1]){const o=g(e,"x","conv3d"),a=g(t,"filter","conv3d");let l=o,c=!1;o.rank===4&&(c=!0,l=O(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]])),v(l.rank===5,()=>`Error in conv3d: input must be rank 5, but got rank ${l.rank}.`),v(a.rank===5,()=>`Error in conv3d: filter must be rank 5, but got rank ${a.rank}.`),v(l.shape[4]===a.shape[3],()=>`Error in conv3d: depth of input (${l.shape[4]}) must match input depth for filter ${a.shape[3]}.`),v(et(s,r),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`),v(i==="NDHWC",()=>`Error in conv3d: got dataFormat of ${i} but only NDHWC is currently supported.`);const p=(m,f)=>{const y=rr(l.shape,a.shape,s,r,n),b=m.conv3d(l,a,y);return f([l,a]),b},u={x:l,filter:a},h={strides:s,pad:n,dataFormat:i,dilations:r},d=T.runKernelFunc(p,u,null,Dl,h);return c?O(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}const Yr=L({conv3d_:zE});function BE(e,t,s,n,i){v(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let r=e,o=t,a=!1;t.rank===4&&(a=!0,o=O(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]]),r=[1,e[0],e[1],e[2],e[3]]);const l=r[4],c=o.shape[4];v(r.length===5,()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${r.length}.`),v(o.rank===5,()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${o.rank}`),v(s.rank===5,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${s.rank}`),v(l===s.shape[3],()=>`Error in conv3dDerInput: depth of input (${l}) must match input depth for filter ${s.shape[3]}.`),v(c===s.shape[4],()=>`Error in conv3dDerInput: depth of output (${c}) must match output depth for filter ${s.shape[4]}.`);const p=m=>{const f=1,y=rr(r,s.shape,n,f,i);return m.conv3dDerInput(o,s,y)},u={dy:o},h={pad:i},d=T.runKernelFunc(p,u,null,Lg,h);return a?O(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}const Dh=L({conv3DBackpropInput_:BE});function PE(e,t,s,n,i){const r=g(e,"x","conv3dTranspose"),o=g(t,"filter","conv3dTranspose");return Dh(s,r,o,n,i)}const Dy=L({conv3dTranspose_:PE});function jE(e){const t=g(e,"x","cos"),s={x:t};return T.runKernelFunc((n,i)=>{const r=n.cos(t);return i([t]),r},s,null,Fl)}const xi=L({cos_:jE});function VE(e){const t=g(e,"x","cosh"),s={x:t};return T.runKernelFunc((n,i)=>{const r=n.cosh(t);return i([t]),r},s,null,Ml)}const Kr=L({cosh_:VE});function GE(e,t=0,s=!1,n=!1){const i=g(e,"x","cumsum"),r=(l,c)=>{const p=ut([t],i.rank);let u=i;p!=null&&(u=se(i,p));const h=Gt(1,i.rank)[0];let d=l.cumsum(u,h,s,n);if(c([i]),p!=null){const m=Pr(p);d=se(d,m)}return d},o={x:i},a={axis:t,exclusive:s,reverse:n};return T.runKernelFunc(r,o,null,Ul,a)}const Xr=L({cumsum_:GE});function HE(e,t,s="NHWC"){const n=g(e,"x","depthToSpace"),i=s==="NHWC"?n.shape[1]:n.shape[2],r=s==="NHWC"?n.shape[2]:n.shape[3],o=s==="NHWC"?n.shape[3]:n.shape[1];v(i*t>=0,()=>`Negative dimension size caused by overflow when multiplying + ${i} and ${t} for depthToSpace with input shape + ${n.shape}`),v(r*t>=0,()=>`Negative dimension size caused by overflow when multiplying + ${r} and ${t} for depthToSpace with input shape + ${n.shape}`),v(o%(t*t)===0,()=>`Dimension size must be evenly divisible by ${t*t} but is ${o} for depthToSpace with input shape ${n.shape}`);const a=p=>p.depthToSpace(n,t,s),l={x:n},c={blockSize:t,dataFormat:s};return T.runKernelFunc(a,l,null,vg,c)}const Tp=L({depthToSpace_:HE});function qE(e,t,s,n,i="NHWC",r=[1,1],o){const a=g(e,"x","depthwiseConv2d"),l=g(t,"filter","depthwiseConv2d");let c=a,p=!1;a.rank===3&&(p=!0,c=O(a,[1,a.shape[0],a.shape[1],a.shape[2]])),v(c.rank===4,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${c.rank}.`),v(l.rank===4,()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${l.rank}.`),v(c.shape[3]===l.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${c.shape[3]}) must match the inChannels dimension in filter ${l.shape[2]}.`),o!=null&&v(De(n),()=>`Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode ${o} but got pad ${n}.`);const u=(f,y)=>{r==null&&(r=[1,1]),v(et(s,r),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`);const b=is(c.shape,l.shape,s,r,n,o,!0),S=f.depthwiseConv2D(c,l,b);return y([c,l]),S},h={x:c,filter:l},d={strides:s,pad:n,dataFormat:i,dilations:r,dimRoundingMode:o},m=T.runKernelFunc(u,h,null,$l,d);return p?O(m,[m.shape[1],m.shape[2],m.shape[3]]):m}const In=L({depthwiseConv2d_:qE});function YE(e){const t=g(e,"x","diag"),s=i=>{const r=O(t,[t.size]),o=i.diag(r),a=[...e.shape,...e.shape];return O(o,a)},n={x:t};return T.runKernelFunc(s,n,null,Ag)}const Fy=L({diag_:YE});function KE(e,t,s,n,i=[1,1],r="NHWC"){const o=g(e,"x","dilation2d"),a=g(t,"filter","dilation2d");v(o.rank===3||o.rank===4,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${o.rank}.`),v(a.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${a.rank}.`),v(r==="NHWC",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${r}`);let l=o,c=!1;o.rank===3&&(l=O(o,[1,o.shape[0],o.shape[1],o.shape[2]]),c=!0);const p={x:l,filter:a},u={strides:s,pad:n,dilations:i},h=T.runKernel(_r,p,u);return c?O(h,[h.shape[1],h.shape[2],h.shape[3]]):h}const Ip=L({dilation2d_:KE});function XE(e,t){let s=g(e,"a","floorDiv"),n=g(t,"b","floorDiv");[s,n]=Ne(s,n);const i=(o,a)=>{const l=o.floorDiv(s,n);return a([s,n]),l},r={a:s,b:n};return T.runKernelFunc(i,r,null,Vl)}const Jr=L({floorDiv_:XE});function JE(e,t){let s=g(e,"a","div"),n=g(t,"b","div");if([s,n]=Ne(s,n),s.dtype==="int32"&&n.dtype==="int32")return Jr(s,n);const i=(a,l)=>{const c=a.realDivide(s,n);return l([s,n]),c},r={a:s,b:n},o={};return T.runKernelFunc(i,r,null,ui,o)}const J=L({div_:JE});function ZE(e,t){const s=e.length,n=[];for(let i=0;i1&&o===1&&n.unshift(r)}return n}function Ke(e,t){const s=[];for(let n=0;n1)&&s.unshift(r)}return s}function Se(e,t){const s=[],n=Math.max(e.length,t.length);for(let i=0;io.equal(s,n),r={a:s,b:n};return T.runKernelFunc(i,r,null,Cg)}const Qt=L({equal_:QE});function ek(e,t,s){const n=g(t,"a","where"),i=g(s,"b","where"),r=g(e,"condition","where","bool"),o=Se(n.shape,i.shape),a=or(n,o),l=or(i,o);r.rank===1&&v(r.shape[0]===n.shape[0],()=>"The first dimension of `a` must match the size of `condition`."),r.rank!==1&&xe(r.shape,l.shape,"Error in where: ");const c=(u,h)=>{const d=u.select(r,a,l);return h([r]),d},p={condition:r,t:a,e:l};return T.runKernelFunc(c,p,null,Ic)}const at=L({where_:ek});function tk(e){const t=g(e,"x","zerosLike"),s={x:t};return T.runKernelFunc(n=>n.zerosLike(t),s,null,Vc)}const ne=L({zerosLike_:tk});function sk(e,t){let s=g(e,"a","div"),n=g(t,"b","div");[s,n]=Ne(s,n);const i=J(s,n),r=ne(i),o=Qt(n,r);return at(o,r,i)}const Ap=L({divNoNan_:sk});function nk(e,t){const s=g(e,"t1","dot"),n=g(t,"t2","dot");v((s.rank===1||s.rank===2)&&(n.rank===1||n.rank===2),()=>`Error in dot: inputs must all be rank 1 or 2, but got ranks ${s.rank} and ${n.rank}.`);const i=s.rank===1?s.size:s.shape[1],r=n.rank===1?n.size:n.shape[0];if(v(i===r,()=>`Error in dot: inner dimensions of inputs must match, but got ${i} and ${r}.`),s.rank===1&&n.rank===1){const o=O(s,[1,-1]),a=O(n,[-1,1]),l=Le(o,a);return O(l,[])}else if(s.rank===1&&n.rank===2){const o=O(s,[1,-1]),a=O(n,[n.shape[0],n.shape[1]]),l=Le(o,a);return O(l,[l.size])}else if(s.rank===2&&n.rank===1){const o=O(n,[-1,1]),a=Le(s,o);return O(a,[a.size])}else{const o=O(n,[n.shape[0],n.shape[1]]),a=Le(s,o);return a}}const My=L({dot_:nk});function ik(e){const t=g(e,"x","elu"),s=(i,r)=>{const o=i.elu(t);return r([o]),o},n={x:t};return T.runKernelFunc(s,n,null,Wl)}const An=L({elu_:ik});function rk(e){let t=g(e,"x","erf");v(t.dtype==="int32"||t.dtype==="float32",()=>"Input dtype must be `int32` or `float32`."),t.dtype==="int32"&&(t=K(t,"float32"));const s={x:t};return T.runKernelFunc((n,i)=>{const r=n.erf(t);return i([t]),r},s,null,zl)}const Np=L({erf_:rk});function ok(e){const t=g(e,"x","exp"),s={x:t};return T.runKernelFunc((n,i)=>{const r=n.exp(t);return i([r]),r},s,null,Bl)}const At=L({exp_:ok});function ak(e,t=0){const s=null,n=g(e,"x","expandDims",s);v(t<=n.rank,()=>"Axis must be <= rank of the tensor");const i=n.shape.slice();return t<0&&(v(-(n.rank+1)<=t,()=>`Axis must be in the interval [${-(n.rank+1)}, ${n.rank}]`),t=n.rank+t+1),i.splice(t,0,1),O(n,i)}const Nt=L({expandDims_:ak});function lk(e){const t=g(e,"x","expm1"),s={x:t};return T.runKernelFunc((n,i)=>{const r=n.expm1(t);return i([t]),r},s,null,Pl)}const Cp=L({expm1_:lk});function ck(e,t){const s=null,n=g(e,"x","tile",s);v(n.rank===t.length,()=>`Error in transpose: rank of input ${n.rank} must match length of reps ${t}.`);const i=(l,c)=>{const p=l.tile(n,t);return c([n]),p},r=[n],o={x:n},a={reps:t};return T.runKernelFunc(i,o,null,Bc,a,r)}const js=L({tile_:ck});function pk(e,t,s,n="float32"){t==null&&(t=e);const i=le([e,t],n),r=e<=t?e:t;for(let a=0;a`The dtype for tf.spectral.fft() must be complex64 but got ${e.dtype}.`);const t={input:e};return T.runKernelFunc(s=>{const n=e.shape[e.shape.length-1],i=e.size/n,r=e.as2D(i,n),o=s.fft(r);return o.reshape(e.shape)},t,null,Rg)}const Li=L({fft_:uk});function Ft(e,t,s){const n={shape:e,value:t,dtype:s};return T.runKernelFunc(i=>i.fill(e,t,s),{},null,Og,n)}function hk(e){const t=g(e,"x","floor"),s={x:t};return T.runKernelFunc(n=>n.floor(t),s,null,jl)}const Nn=L({floor_:hk});const Fh=30;function dk(e){return e<=Fh?e:oa(e,Math.floor(Math.sqrt(e)))}const bS={};Re(bS,{collectGatherOpShapeInfo:()=>Uy,computeOutShape:()=>fk,segOpComputeOptimalWindowSize:()=>mk});function mk(e,t){let s=!1,n;for(e<=Fh?(n=e,s=!0):n=oa(e,Math.floor(Math.sqrt(e)));!s;)n>t||n===e?s=!0:n=oa(e,n+1);return n}function fk(e,t,s){const n=[],i=e.length;for(let r=0;r{const p=Te(s,n.shape)[0],u=Uy(n,i,p),h=l.gather(n,O(i,[i.size]),p);return c([n,i]),O(h,u.outputShape)};return T.runKernelFunc(a,r,null,Hl,o)}const Cn=L({gather_:gk});function yk(e,t){let s=g(e,"a","greater"),n=g(t,"b","greater");[s,n]=Ne(s,n),Se(s.shape,n.shape);const i=o=>o.greater(s,n),r={a:s,b:n};return T.runKernelFunc(i,r,null,kg)}const Ct=L({greater_:yk});function bk(e,t){let s=g(e,"a","greaterEqual"),n=g(t,"b","greaterEqual");[s,n]=Ne(s,n),Se(s.shape,n.shape);const i=(o,a)=>{const l=o.greaterEqual(s,n);return a([s,n]),l},r={a:s,b:n};return T.runKernelFunc(i,r,null,ql)}const as=L({greaterEqual_:bk});function wk(e){v(e.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${e.dtype}.`);const t={input:e};return T.runKernelFunc(s=>{const n=e.shape[e.shape.length-1],i=e.size/n,r=O(e,[i,n]),o=s.ifft(r);return O(o,e.shape)},t,null,_g)}const Qn=L({ifft_:wk});function xk(e){const t=g(e,"input","imag"),s=i=>i.imag(t),n={input:t};return T.runKernelFunc(s,n,null,Dg)}const Ht=L({imag_:xk});function Lk(e){const t=g(e,"input","real"),s=i=>i.real(t),n={input:t};return T.runKernelFunc(s,n,null,qg)}const $t=L({real_:Lk});function Sk(e,t){const s=g(e,"x","reverse"),n=o=>{const a=Te(t,s.shape);if(s.rank===0)return Ps(s);const l=o.reverse(s,a);return O(l,s.shape)},i={x:s},r={dims:t};return T.runKernelFunc(n,i,null,Sc,r)}const Lt=L({reverse_:Sk});function j(e,t){if((_t(e)&&t!=="string"||Array.isArray(e))&&t!=="complex64")throw new Error("Error creating a new Scalar: value must be a primitive (number|boolean|string)");if(t==="string"&&_t(e)&&!(e instanceof Uint8Array))throw new Error("When making a scalar from encoded string, the value must be `Uint8Array`.");const s=[],n=[];return ds(e,s,n,t)}function vk(e){const t=e.shape[e.shape.length-1],s=e.size/t;let n;if(t<=2){const i=O(e,[s,t]);n=Qn(i)}else{const i=[s,2*(t-1)],r=O($t(e),[s,t]),o=O(Ht(e),[s,t]),a=Lt(he(r,[0,1],[s,t-2]),1),l=C(Lt(he(o,[0,1],[s,t-2]),1),j(-1)),c=ge([r,a],1),p=ge([o,l],1),u=O(Ze(c,p),[i[0],i[1]]);n=Qn(u)}if(n=$t(n),e.rank===3&&e.shape[0]!==0){const i=n,r=e.shape[0];n=O(n,[r,n.shape[0]/r,n.shape[1]]),i.dispose()}return n}const Zr=L({irfft_:vk});function Tk(e){const t=g(e,"x","isFinite"),s={x:t};return T.runKernelFunc(n=>n.isFinite(t),s,null,Kl)}const $y=L({isFinite_:Tk});function Ik(e){const t=g(e,"x","isInf"),s={x:t};return T.runKernelFunc(n=>n.isInf(t),s,null,Xl)}const Wy=L({isInf_:Ik});function Ak(e){const t=g(e,"x","isNaN"),s={x:t};return T.runKernelFunc(n=>n.isNaN(t),s,null,Jl)}const zy=L({isNaN_:Ak});function Nk(e,t){let s=g(e,"a","maximum"),n=g(t,"b","maximum");[s,n]=Ne(s,n),s.dtype==="bool"&&(s=K(s,"int32"),n=K(n,"int32")),Se(s.shape,n.shape);const i=(o,a)=>{const l=o.maximum(s,n);return a([s,n]),l},r={a:s,b:n};return T.runKernelFunc(i,r,null,sc)}const Wt=L({maximum_:Nk});function Ck(e,t=.2){const s=g(e,"x","leakyRelu");return Wt(C(j(t),s),s)}const Qr=L({leakyRelu_:Ck});function Rk(e,t){let s=g(e,"a","less"),n=g(t,"b","less");[s,n]=Ne(s,n),Se(s.shape,n.shape);const i=o=>o.less(s,n),r={a:s,b:n};return T.runKernelFunc(i,r,null,Fg)}const Si=L({less_:Rk});function Ok(e,t){let s=g(e,"a","lessEqual"),n=g(t,"b","lessEqual");[s,n]=Ne(s,n),Se(s.shape,n.shape);const i=(o,a)=>{const l=o.lessEqual(s,n);return a([s,n]),l},r={a:s,b:n};return T.runKernelFunc(i,r,null,Mg)}const vs=L({lessEqual_:Ok});function Rp(e,t,s){if(s<=0)throw new Error("The number of values should be positive.");const n={start:e,stop:t,num:s};return T.runKernelFunc(i=>i.linspace(e,t,s),{},null,Ug,n)}function Ek(e,t=5,s=1,n=1,i=.5){const r=g(e,"x","localResponseNormalization");v(r.rank===4||r.rank===3,()=>`Error in localResponseNormalization: x must be rank 3 or 4 but got + rank ${r.rank}.`),v(De(t),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`);let o=r,a=!1;r.rank===3&&(a=!0,o=O(r,[1,r.shape[0],r.shape[1],r.shape[2]]));const l=(h,d)=>{const m=h.localResponseNormalization4D(o,t,s,n,i);return d([o,m]),m},c={x:o},p={depthRadius:t,bias:s,alpha:n,beta:i},u=T.runKernelFunc(l,c,null,tc,p);return a?O(u,[u.shape[1],u.shape[2],u.shape[3]]):u}const Op=L({localResponseNormalization_:Ek});function kk(e){const t=g(e,"x","log"),s={x:t};return T.runKernelFunc((n,i)=>{const r=n.log(t);return i([t]),r},s,null,Zl)}const Mt=L({log_:kk});function _k(e){const t=g(e,"x","log1p"),s={x:t};return T.runKernelFunc((n,i)=>{const r=n.log1p(t);return i([t]),r},s,null,Ql)}const eo=L({log1p_:_k});function Dk(e){return v(Hn(e),()=>"The f passed in grad(f) must be a function"),(t,s)=>{const n=g(t,"x","tf.grad",null),i=s!=null?g(s,"dy","tf.grad"):null;return T.tidy(()=>{const{value:r,grads:o}=T.gradients(()=>e(n),[n],i);return i!=null&&xe(r.shape,i.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),Mh(o),o[0]})}}function Fk(e){return v(Hn(e),()=>"The f passed in grads(f) must be a function"),(t,s)=>{v(Array.isArray(t),()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s");const n=yi(t,"args","tf.grads",null),i=s!=null?g(s,"dy","tf.grads"):null;return T.tidy(()=>{const{value:r,grads:o}=T.gradients(()=>e(...n),n,i);return i!=null&&xe(r.shape,i.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Mh(o),o})}}function Mk(e){return v(Hn(e),()=>"The f passed in valueAndGrad(f) must be a function"),(t,s)=>{v(t instanceof ue,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),v(s==null||s instanceof ue,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");const{grads:n,value:i}=T.gradients(()=>e(t),[t],s);return Mh(n),{grad:n[0],value:i}}}function Uk(e){return v(Hn(e),()=>"The f passed in valueAndGrads(f) must be a function"),(t,s)=>{v(Array.isArray(t)&&t.every(i=>i instanceof ue),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),v(s==null||s instanceof ue,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");const n=T.gradients(()=>e(...t),t,s);return s!=null&&xe(n.value.shape,s.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Mh(n.grads),n}}function Uh(e,t){v(Hn(e),()=>"The f passed in variableGrads(f) must be a function"),v(t==null||Array.isArray(t)&&t.every(c=>c instanceof Xn),()=>"The varList passed in variableGrads(f, varList) must be an array of variables");const s=t!=null;if(!s){t=[];for(const c in T.registeredVariables)t.push(T.registeredVariables[c])}const n=s?t.filter(c=>!c.trainable):null,i=t.length;t=t.filter(c=>c.trainable),v(t.length>0,()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${i} variables is trainable.`);const r=!0,{value:o,grads:a}=T.gradients(e,t,null,r);v(a.some(c=>c!=null),()=>"Cannot find a connection between any variable and the result of the loss function y=f(x). Please make sure the operations that use variables are inside the function f passed to minimize()."),v(o.rank===0,()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${o.rank} tensor`);const l={};return t.forEach((c,p)=>{a[p]!=null&&(l[c.name]=a[p])}),n!=null&&n.forEach(c=>l[c.name]=null),{value:o,grads:l}}function ms(e){return T.customGrad(e)}function Mh(e){const t=e.filter(s=>s==null).length;if(t>0)throw new Error(`Cannot compute gradient of y=f(x) with respect to x. Make sure that + the f you passed encloses all operations that lead from x to y.`)}function $k(e){const t=g(e,"x","neg"),s={x:t};return T.runKernelFunc(n=>n.neg(t),s,null,cc)}const Oe=L({neg_:$k});function Wk(e){const t=g(e,"x","softplus"),s={x:t};return T.runKernelFunc((n,i)=>{const r=n.softplus(t);return i([t]),r},s,null,kc)}const Rn=L({softplus_:Wk});function zk(e){const t=g(e,"x","logSigmoid"),s=ms(n=>{const i=Oe(Rn(Oe(n))),r=o=>{const a=C(o,Ss(Oe(n)));return a};return{value:i,gradFunc:r}});return s(t)}const By=L({logSigmoid_:zk});function Bk(e,t=null,s=!1){const n=g(e,"x","max"),i=(a,l)=>{const c=Te(t,n.shape);let p=c;const u=ut(p,n.rank);let h=n;u!=null&&(h=se(n,u),p=Gt(p.length,h.rank));const d=a.max(h,p);u!=null&&h.dispose();let m=d;if(s){const f=ft(m.shape,Te(t,n.shape));m=O(m,f),d.dispose()}return l([n,m]),m},r={x:n},o={reductionIndices:t,keepDims:s};return T.runKernelFunc(i,r,null,hi,o)}const st=L({max_:Bk});function Pk(e,t){let s=g(e,"a","sub"),n=g(t,"b","sub");[s,n]=Ne(s,n);const i=(o,a)=>{const l=o.subtract(s,n);return a([s,n]),l},r={a:s,b:n};return T.runKernelFunc(i,r,null,$c)}const X=L({sub_:Pk});function jk(e,t=null,s=!1){let n=g(e,"x","sum");n.dtype==="bool"&&(n=K(n,"int32"));const i=(a,l)=>{l([n]);const c=Te(t,n.shape),p=ut(c,n.rank);let u=c,h=n;p!=null&&(h=se(n,p),u=Gt(u.length,n.rank));let d=a.sum(h,u);if(s){const m=ft(d.shape,c);d=O(d,m)}return d},r={x:n},o={axis:t,keepDims:s};return T.runKernelFunc(i,r,null,Dc,o)}const te=L({sum_:jk});function Vk(e,t=-1){const s=g(e,"logits","logSoftmax");if(t===-1&&(t=s.rank-1),t!==s.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${s.rank} and axis was ${t}`);const n=(o,a)=>{const l=!0,c=st(e,t,!0),p=X(e,c),u=X(K(p,"float32"),Mt(te(At(p),t,l)));return a([u]),u},i={logits:s},r={axis:t};return T.runKernelFunc(n,i,null,ec,r)}const to=L({logSoftmax_:Vk});function Gk(e,t=null,s=!1){const n=g(e,"x","logSumExp"),i=Te(t,n.shape),r=st(n,i,!0),o=X(n,r),a=At(o),l=te(a,i),c=Mt(l),p=W(O(r,c.shape),c);if(s){const u=ft(p.shape,i);return O(p,u)}return p}const Ep=L({logSumExp_:Gk});function Hk(e,t){const s=g(e,"a","logicalAnd","bool"),n=g(t,"b","logicalAnd","bool");Se(s.shape,n.shape);const i={a:s,b:n};return T.runKernelFunc(r=>r.logicalAnd(s,n),i,null,$g)}const zt=L({logicalAnd_:Hk});function qk(e){const t=g(e,"x","logicalNot","bool"),s={x:t};return T.runKernelFunc(n=>n.logicalNot(t),s,null,Wg)}const vi=L({logicalNot_:qk});function Yk(e,t){const s=g(e,"a","logicalOr","bool"),n=g(t,"b","logicalOr","bool");Se(s.shape,n.shape);const i={a:s,b:n};return T.runKernelFunc(r=>r.logicalOr(s,n),i,null,zg)}const so=L({logicalOr_:Yk});function Kk(e,t){const s=g(e,"a","logicalXor","bool"),n=g(t,"b","logicalXor","bool");return Se(s.shape,n.shape),zt(so(e,t),vi(zt(e,t)))}const Py=L({logicalXor_:Kk});function Xk(e,t,s,n,i){const r=g(e,"x","maxPool"),o=1;let a=r,l=!1;r.rank===3&&(l=!0,a=O(r,[1,r.shape[0],r.shape[1],r.shape[2]])),v(a.rank===4,()=>`Error in maxPool: input must be rank 4 but got rank ${a.rank}.`),v(et(s,o),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${o}'`),i!=null&&v(De(n),()=>`Error in maxPool: pad must be an integer when using, dimRoundingMode ${i} but got pad ${n}.`);const c=(d,m)=>{const f=Tn(a.shape,t,s,1,n,i);let y;return f.filterWidth===1&&f.filterHeight===1&&It(f.inShape,f.outShape)?y=a.clone():y=d.maxPool(a,f),m([a,y]),y},p={x:a},u={filterSize:t,strides:s,pad:n,dimRoundingMode:i},h=T.runKernelFunc(c,p,null,nc,u);return l?O(h,[h.shape[1],h.shape[2],h.shape[3]]):h}const lt=L({maxPool_:Xk});function Jk(e,t=[1,1,1],s,n,i,r="NDHWC",o){o==null?o=[1,1,1]:xt("dilations is deprecated, this field will be gone in v3.0.0.");const a=g(e,"x","maxPool3d");let l=a,c=!1;a.rank===4&&(c=!0,l=O(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]])),v(l.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${l.rank}.`),v(r==="NDHWC",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${r}`),v(et(s,o),()=>`Error in maxPool3d: Either strides or dilations must be 1. Got strides ${s} and dilations '${o}'`),i!=null&&v(De(n),()=>`Error in maxPool3d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${n}.`);const p=(m,f)=>{o==null&&(o=[1,1,1]);const y=bi(l.shape,t,s,o,n,i,r),b=m.maxPool3d(l,y);return f([l,b]),b},u={x:l},h={filterSize:t,strides:s,pad:n,dimRoundingMode:i,dataFormat:r,dilations:o},d=T.runKernelFunc(p,u,null,ic,h);return c?O(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}const no=L({maxPool3d_:Jk});function Zk(e,t,s,n,i=!1){const r=g(e,"x","maxPoolWithArgmax"),o={x:r},a={filterSize:t,strides:s,pad:n,includeBatchInIndex:i},l=T.runKernel(Fr,o,a);return{result:l[0],indexes:l[1]}}const kp=L({maxPoolWithArgmax_:Zk});function Ie(e,t="float32"){if(t==="complex64"){const n=Ie(e,"float32"),i=Ie(e,"float32");return Ze(n,i)}const s=Yn(We(e),t);return T.makeTensor(s,e,t)}function es(e,t="float32"){if(t==="complex64"){const n=es(e,"float32"),i=Ie(e,"float32");return Ze(n,i)}const s=Xc(We(e),t);return T.makeTensor(s,e,t)}function Qk(e,t=null,s=!1){const n=g(e,"x","mean"),i=Te(t,n.shape),r=wy(n.shape,i),o=r[1],a=We(o),l=ms(c=>{const p=j(a),u=p.dtype===c.dtype?c:K(c,p.dtype),h=J(u,p),d=te(h,t,s),m=f=>{const y=c.shape.slice();i.forEach(x=>{y[x]=1});const b=O(f,y),S=J(C(b,es(c.shape,"float32")),a);return S};return{value:d,gradFunc:m}});return l(n)}const Ge=L({mean_:Qk});function e_(e,t=null,s=!1){const n=g(e,"x","min"),i=(a,l)=>{const c=Te(t,n.shape);let p=c;const u=ut(p,n.rank);let h=n;u!=null&&(h=se(n,u),p=Gt(p.length,n.rank));const d=a.min(h,p);u!=null&&h.dispose();let m=d;if(s){const f=ft(m.shape,c);m=O(d,f),d.dispose()}return l([n,m]),m},r={x:n},o={axis:t,keepDims:s};return T.runKernelFunc(i,r,null,rc,o)}const an=L({min_:e_});function t_(e,t){let s=g(e,"a","minimum"),n=g(t,"b","minimum");[s,n]=Ne(s,n),s.dtype==="bool"&&(s=K(s,"int32"),n=K(n,"int32")),Se(s.shape,n.shape);const i=(o,a)=>{const l=o.minimum(s,n);return a([s,n]),l},r={a:s,b:n};return T.runKernelFunc(i,r,null,oc)}const Vs=L({minimum_:t_});function s_(e,t){let s=g(e,"a","mod"),n=g(t,"b","mod");[s,n]=Ne(s,n);const i=(o,a)=>{const l=o.mod(s,n);return a([s,n]),l},r={a:s,b:n};return T.runKernelFunc(i,r,null,ac)}const io=L({mod_:s_});function n_(e){const t=g(e,"x","square"),s={},n=[t],i=[];return T.runKernelFunc((r,o)=>(o([t]),r.square(t)),{x:t},null,"Square",s,n,i)}const ye=L({square_:n_});function i_(e,t=null,s=!1){e=g(e,"x","moments");const n=Te(t,e.shape),i=Ge(e,n,s);let r=i.shape;s||(r=ft(i.shape,n));const o=ye(X(K(e,"float32"),O(i,r))),a=Ge(o,n,s);return{mean:i,variance:a}}const lr=L({moments_:i_});function r_(e,t,s,n){const i=g(t,"data","multiRNNCell"),r=yi(s,"c","multiRNNCell"),o=yi(n,"h","multiRNNCell");let a=i;const l=[];for(let u=0;u2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${o}`);s=s||Math.random();const a=o===1?O(i,[1,-1]):i,l=T.runKernelFunc(c=>c.multinomial(a,n,t,s),{logits2D:a});return o===1?O(l,[l.size]):l}const _p=L({multinomial_:o_});function a_(e,t){let s=g(e,"a","notEqual"),n=g(t,"b","notEqual");[s,n]=Ne(s,n),Se(s.shape,n.shape);const i=o=>o.notEqual(s,n),r={a:s,b:n};return T.runKernelFunc(i,r,null,Vg)}const Es=L({notEqual_:a_});function l_(e,t,s=1,n=0){if(t<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${t}`);const i=g(e,"indices","oneHot","int32"),r=[...i.shape,t],o=(c,p)=>(p([i]),O(c.oneHot(O(i,[i.size]),t,s,n),r)),a={indices:i},l={depth:t,onValue:s,offValue:n};return T.runKernelFunc(o,a,null,hc,l)}const On=L({oneHot_:l_});function c_(e){const t=g(e,"x","onesLike"),s=(i,r)=>{if(t.dtype==="complex64"){const o=Bt($t(t)),a=ne(Ht(t));return Ze(o,a)}return i.onesLike(t)},n={x:t};return T.runKernelFunc(s,n,null,uc)}const Bt=L({onesLike_:c_});function p_(e,t){const s=g(e,"v1","outerProduct"),n=g(t,"v2","outerProduct");v(s.rank===1&&n.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${s.rank} and ${n.rank}.`);const i=O(s,[-1,1]),r=O(n,[1,-1]);return Le(i,r)}const Vy=L({outerProduct_:p_});function u_(e,t,s=0){const n=g(e,"x","pad");if(n.rank===0)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");const i=(a,l)=>(l([n]),a.pad(n,t,s)),r={paddings:t,constantValue:s},o={x:n};return T.runKernelFunc(i,o,null,dc,r)}const Ut=L({pad_:u_});function h_(e,t,s=0){return v(t.length===2,()=>"Invalid number of paddings. Must be length of 2."),Ut(e,[t],s)}const Gy=L({pad1d_:h_});function d_(e,t,s=0){return v(t.length===2&&t[0].length===2&&t[1].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),Ut(e,t,s)}const Hy=L({pad2d_:d_});function m_(e,t,s=0){return v(t.length===3&&t[0].length===2&&t[1].length===2&&t[2].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),Ut(e,t,s)}const qy=L({pad3d_:m_});function f_(e,t,s=0){return v(t.length===4&&t[0].length===2&&t[1].length===2&&t[2].length===2&&t[3].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),Ut(e,t,s)}const Yy=L({pad4d_:f_});function g_(e,t,s){const n=g(e,"x","spaceToBatchND");v(n.rank>=1+t.length,()=>`input rank ${n.rank} should be > than [blockShape] ${t.length}`),v(s.length===t.length,()=>`paddings.shape[0] ${s.length} must be equal to [blockShape] ${t.length}`),v(n.shape.reduce((a,l,c)=>c>0&&c<=t.length?a&&(l+s[c-1][0]+s[c-1][1])%t[c-1]===0:a,!0),()=>`input spatial dimensions ${n.shape.slice(1)} with paddings ${s.toString()} must be divisible by blockShapes ${t.toString()}`);const i=a=>a.spaceToBatchND(n,t,s),r={x:n},o={blockShape:t,paddings:s};return T.runKernelFunc(i,r,null,Fc,o)}const Ti=L({spaceToBatchND_:g_});function w_(e,t,s,n,i,r){i==null&&(i=[1,1]),r==null&&(r=1),n===0&&(n="valid");const o=g(e,"x","maxPool");let a=o,l=!1;o.rank===3&&(l=!0,a=O(o,[1,o.shape[0],o.shape[1],o.shape[2]])),v(et(r,i),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${r} and dilations '${i}'`);const c=Tn(a.shape,t,r,i,n),p=[c.dilationHeight,c.dilationWidth];let u;n==="same"?u=b_([c.filterHeight,c.filterWidth],p):u=[[0,0],[0,0]];const h=p[0]===1&&p[1]===1,[d,m]=y_([c.inHeight,c.inWidth],p,u),f=h?n:"valid",y=h?a:Ti(a,p,d),b=s==="avg"?()=>rs(y,t,r,f):()=>lt(y,t,r,f),S=b(),x=h?S:wi(S,p,m);return l?O(x,[x.shape[1],x.shape[2],x.shape[3]]):x}function y_(e,t,s){const n=s.map(p=>p[0]),i=s.map(p=>p[1]),r=e.concat(n,i),o=t.map((p,u)=>(p-r[u]%p)%p),a=i.map((p,u)=>p+o[u]),l=t.map((p,u)=>[n[u],a[u]]),c=t.map((p,u)=>[0,o[u]]);return[l,c]}function b_(e,t){const s=e.map((o,a)=>o+(o-1)*(t[a]-1)),n=s.map(o=>o-1),i=n.map(o=>Math.floor(o/2)),r=n.map((o,a)=>o-i[a]);return n.map((o,a)=>[i[a],r[a]])}const Ky=L({pool_:w_});function x_(e,t){let s=g(e,"base","pow"),n=g(t,"exp","pow");[s,n]=Ne(s,n);const i={a:s,b:n},r=(o,a)=>{const l=o.pow(s,n);return a([s,n,l]),l};return T.runKernelFunc(r,i,null,mc)}const qt=L({pow_:x_});function L_(e,t){const s=g(e,"x","prelu"),n=g(t,"alpha","prelu"),i=(o,a)=>{const l=o.prelu(s,n);return a([s,n]),l},r={x:s,alpha:n};return T.runKernelFunc(i,r,null,fc)}const Ii=L({prelu_:L_});function Xy(e,t=!1){console.log(e.toString(t))}function S_(e,t=null,s=!1){let n=g(e,"x","prod");const i=a=>{n.dtype==="bool"&&(n=K(n,"int32"));const l=Te(t,n.shape),c=ut(l,n.rank);let p=l,u=n;c!=null&&(u=se(n,c),p=Gt(p.length,n.rank));let h=a.prod(u,p);if(s){const d=ft(h.shape,l);h=O(h,d)}return h},r={x:n},o={axis:t,keepDims:s};return T.runKernelFunc(i,r,null,Gg,o)}const ro=L({prod_:S_});function v_(e,t,s){const n=We(e);let i=null;if(s==null||s==="float32")i=new Float32Array(n);else if(s==="int32")i=new Int32Array(n);else if(s==="bool")i=new Uint8Array(n);else throw new Error(`Unknown data type ${s}`);for(let r=0;rxS,expectArrayBuffersEqual:()=>O_,expectArraysClose:()=>I_,expectArraysEqual:()=>N_,expectNumbersClose:()=>C_,expectPromiseToFail:()=>A_,expectValuesInRange:()=>R_,testEpsilon:()=>Zy});const T_=.001,xS=.1;function I_(e,t,s){return s==null&&(s=Zy()),Qy(e,t,(n,i)=>eb(n,i,s))}function Zy(){return T.backend.floatPrecision()===32?T_:xS}function Qy(e,t,s){let n=!0;if((_t(e)||_t(t))&&(n=!1),_t(e)&&_t(t)&&(n=!0),n){const o=e.constructor.name,a=t.constructor.name;if(o!==a)throw new Error(`Arrays are of different type. Actual: ${o}. Expected: ${a}`)}if(Array.isArray(e)&&Array.isArray(t)){const o=Zt(e),a=Zt(t);if(!It(o,a))throw new Error(`Arrays have different shapes. Actual: [${o}]. Expected: [${a}]`)}const i=_t(e)?e:Gn(e),r=_t(t)?t:Gn(t);if(i.length!==r.length)throw new Error(`Arrays have different lengths actual: ${i.length} vs expected: ${r.length}. +Actual: ${i}. +Expected: ${r}.`);for(let o=0;ot.fail(),()=>t())}function N_(e,t){const s=typeof t=="string"||typeof t=="number"||typeof t=="boolean"?[t]:t;return vn(e)||vn(e[0])||vn(t)||vn(t[0])?Qy(e,s,(n,i)=>n==i):Qy(e,t,(n,i)=>eb(n,i,0))}function C_(e,t,s){if(s==null&&(s=Zy()),!eb(e,t,s))throw new Error(`Numbers differ: actual === ${e}, expected === ${t}`)}function eb(e,t,s){return!isFinite(e)&&!isFinite(t)?!0:!(isNaN(e)||isNaN(t)||Math.abs(e-t)>s)}function R_(e,t,s){for(let n=0;ns)throw new Error(`Value out of range:${e[n]} low: ${t}, high: ${s}`)}function O_(e,t){expect(new Float32Array(e)).toEqual(new Float32Array(t))}const $h=nl(il());class Dp{constructor(e,t,s,n,i){this.mean=e,this.stdDev=t,this.dtype=s,this.nextVal=NaN,this.truncated=n,this.truncated&&(this.upper=this.mean+this.stdDev*2,this.lower=this.mean-this.stdDev*2);const r=i||Math.random();this.random=$h.alea(r.toString())}nextValue(){if(!isNaN(this.nextVal)){const n=this.nextVal;return this.nextVal=NaN,n}let e,t,s=!1;for(;!s;){let n,i,r;do n=2*this.random()-1,i=2*this.random()-1,r=n*n+i*i;while(r>=1||r===0);const o=Math.sqrt(-2*Math.log(r)/r);e=this.mean+this.stdDev*n*o,t=this.mean+this.stdDev*i*o,(!this.truncated||this.isValidTruncated(e))&&(s=!0)}return(!this.truncated||this.isValidTruncated(t))&&(this.nextVal=this.convertValue(t)),this.convertValue(e)}convertValue(e){return this.dtype==null||this.dtype==="float32"?e:Math.round(e)}isValidTruncated(e){return e<=this.upper&&e>=this.lower}}class LS{constructor(e,t,s,n){this.alpha=e,this.beta=1/t,this.dtype=s;const i=n||Math.random();this.randu=$h.alea(i.toString()),this.randn=new Dp(0,1,s,!1,this.randu()),e<1?this.d=e+2/3:this.d=e-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let e,t,s,n,i,r;for(;;){do n=this.randn.nextValue(),r=1+this.c*n;while(r<=0);if(r*=r*r,e=n*n,t=1-.331*e*e,s=.5*e+this.d*(1-r+Math.log(r)),i=this.randu(),ithis.dtype==null||this.dtype==="float32",this.min=e,this.range=t-e,this.dtype=s,n==null&&(n=Math.random()),typeof n=="number"&&(n=n.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`The difference between ${e} - ${t} <= 1 and dtype is not float`);this.random=$h.alea(n)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}}function E_(e,t,s=1,n="float32",i){if(s==null&&(s=1),n==null&&(n="float32"),n!=="float32"&&n!=="int32")throw new Error(`Unsupported data type ${n}`);const r=new LS(t,s,n,i),o=le(e,n);for(let a=0;a{const o=e===t,a=e1;if(o||a||l)return Ie([0],n);const c=Math.abs(Math.ceil((t-e)/s)),p=Yn(c,n);t{const r=n.reciprocal(t);return i([t]),r},s,null,gc)}const Fp=L({reciprocal_:D_});function F_(e){const t=g(e,"x","relu"),s=(i,r)=>(r([t]),t.dtype==="bool"?K(t,"int32"):i.relu(t)),n={x:t};return T.runKernelFunc(s,n,null,yc)}const ke=L({relu_:F_});function M_(e){const t=g(e,"x","relu6"),s=(i,r)=>(r([t]),t.dtype==="bool"?K(t,"int32"):i.relu6(t)),n={x:t};return T.runKernelFunc(s,n,null,Lc)}const Mp=L({relu6_:M_});function U_(e){const t=g(e,"x","reverse");return v(t.rank===1,()=>`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),Lt(t,0)}const sb=L({reverse1d_:U_});function $_(e,t){const s=g(e,"x","reverse");return v(s.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${s.rank}.`),Lt(s,t)}const nb=L({reverse2d_:$_});function W_(e,t){const s=g(e,"x","reverse");return v(s.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${s.rank}.`),Lt(s,t)}const ib=L({reverse3d_:W_});function z_(e,t){const s=g(e,"x","reverse");return v(s.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${s.rank}.`),Lt(s,t)}const rb=L({reverse4d_:z_});function ob(e,t,s=0){let n=[];if(typeof t=="number")v(e.shape[s]%t===0,()=>"Number of splits must evenly divide the axis."),n=new Array(t).fill(e.shape[s]/t);else{const i=t.reduce((o,a)=>(a===-1&&(o+=1),o),0);v(i<=1,()=>"There should be only one negative value in split array.");const r=t.indexOf(-1);if(r!==-1){const o=t.reduce((a,l)=>l>0?a+l:a);t[r]=e.shape[s]-o}v(e.shape[s]===t.reduce((o,a)=>o+a),()=>"The sum of sizes must match the size of the axis dimension."),n=t}return n}function B_(e,t,s=0){const n=g(e,"x","split"),i=(a,l)=>{const c=Te(s,n.shape)[0],p=ob(n,t,c);return a.split(n,p,c)},r={x:n},o={numOrSizeSplits:t,axis:s};return T.runKernelFunc(i,r,null,Mc,o)}const ls=L({split_:B_});function P_(e,t){v(e.dtype==="float32",()=>`The dtype for rfft() must be real value but got ${e.dtype}`);let s=e.shape[e.shape.length-1];const n=e.size/s;let i;if(t!=null&&t0),f=e.shape.map(y=>y);f[e.shape.length-1]=t,i=he(e,m,f),s=t}else if(t!=null&&t>s){const m=e.shape.map(f=>f);m[e.shape.length-1]=t-s,i=ge([e,Ie(m)],e.shape.length-1),s=t}else i=e;const r=ne(i),o=O(Ze(i,r),[n,s]),a=Li(o),l=Math.floor(s/2)+1,c=$t(a),p=Ht(a),u=ls(c,[l,s-l],c.shape.length-1),h=ls(p,[l,s-l],p.shape.length-1),d=i.shape.slice();return d[i.shape.length-1]=l,O(Ze(u[0],h[0]),d)}const Ai=L({rfft_:P_});function j_(e){const t=g(e,"x","round"),s={x:t};return T.runKernelFunc(n=>n.round(t),s,null,vc)}const Up=L({round_:j_});function V_(e){const t=g(e,"x","rsqrt"),s={x:t};return T.runKernelFunc((n,i)=>{const r=n.rsqrt(t);return i([t]),r},s,null,Tc)}const oo=L({rsqrt_:V_});function G_(e){const t=g(e,"x","selu"),s=(i,r)=>{const o=i.selu(t);return r([t]),o},n={x:t};return T.runKernelFunc(s,n,null,Ac)}const ao=L({selu_:G_});function H_(e,t,s,n,i,r=[1,1],o="NHWC"){const a=g(e,"x","separableConv2d"),l=g(t,"depthwiseFilter","separableConv2d"),c=g(s,"pointwiseFilter","separableConv2d");let p=a,u=!1;if(a.rank===3&&(u=!0,p=O(a,[1,a.shape[0],a.shape[1],a.shape[2]])),o==="NCHW")throw new Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");v(p.rank===4,()=>`Error in separableConv2d: input must be rank 4, but got rank ${p.rank}.`),v(l.rank===4,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${l.rank}.`),v(c.rank===4,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${l.rank}.`),v(c.shape[0]===1,()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${c.shape[0]}.`),v(c.shape[1]===1,()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${c.shape[1]}.`);const h=l.shape[2],d=l.shape[3];v(c.shape[2]===h*d,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${h*d}, but got ${c.shape[2]}.`);const m=In(p,l,n,i,o,r),f=1,y=yt(m,c,f,"valid",o);return u?O(y,[y.shape[1],y.shape[2],y.shape[3]]):y}const Ni=L({separableConv2d_:H_});async function q_(e,t){const s=g(e,"x","setdiff1d"),n=g(t,"y","setdiff1d");v(s.dtype===n.dtype,()=>`x and y should have the same dtype, but got x (${s.dtype}) and y (${n.dtype}).`),v(s.rank===1,()=>`x should be 1D tensor, but got x (${s.shape}).`),v(n.rank===1,()=>`y should be 1D tensor, but got y (${n.shape}).`);const i=await s.data(),r=await n.data(),o=new Set(r);let a=0;for(let p=0;pn.sign(t),s,null,Oc)}const Wp=L({sign_:Y_});function K_(e){const t=g(e,"x","sin"),s={x:t};return T.runKernelFunc((n,i)=>{const r=n.sin(t);return i([t]),r},s,null,Cc)}const lo=L({sin_:K_});function X_(e){const t=g(e,"x","sinh"),s={x:t};return T.runKernelFunc((n,i)=>{const r=n.sinh(t);return i([t]),r},s,null,Rc)}const co=L({sinh_:X_});function J_(e,t,s){const n=g(e,"x","slice1d");return v(n.rank===1,()=>`slice1d expects a rank-1 tensor, but got a rank-${n.rank} tensor`),he(n,[t],[s])}const po=L({slice1d_:J_});function Z_(e,t,s){const n=g(e,"x","slice2d");return v(n.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${n.rank} tensor`),he(n,t,s)}const da=L({slice2d_:Z_});function Q_(e,t,s){const n=g(e,"x","slice3d");return v(n.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${n.rank} tensor`),he(n,t,s)}const Ci=L({slice3d_:Q_});function eD(e,t,s){const n=g(e,"x","slice4d");return v(n.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${n.rank} tensor`),he(n,t,s)}const cr=L({slice4d_:eD});function tD(e,t=-1){const s=g(e,"logits","softmax","float32");if(t===-1&&(t=s.rank-1),t!==s.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${s.rank} and dim was ${t}`);const n={logits:s},i={dim:t};return T.runKernelFunc((r,o)=>{const a=r.softmax(s,t);return o([a]),a},n,null,Uc,i)}const Yt=L({softmax_:tD});function sD(e){const t=g(e,"x","sqrt"),s={x:t};return T.runKernelFunc((n,i)=>{const r=n.sqrt(t);return i([t]),r},s,null,_c)}const He=L({sqrt_:sD});function nD(e,t){let s=g(e,"a","squaredDifference"),n=g(t,"b","squaredDifference");[s,n]=Ne(s,n),Se(s.shape,n.shape);const i=(a,l)=>{const c=a.squaredDifference(s,n);return l([s,n]),c},r={a:s,b:n},o={};return T.runKernelFunc(i,r,null,di,o)}const Ri=L({squaredDifference_:nD});function iD(e,t){const s=g(e,"x","squeeze");return O(s,ny(s.shape,t).newShape)}const En=L({squeeze_:iD});function rD(e,t=0){const s=yi(e,"tensors","stack");if(v(s.length>=1,()=>"Pass at least one tensor to tf.stack"),s.length===1)return Nt(s[0],t);const n=s[0].rank,i=s[0].shape,r=s[0].dtype;v(t<=n,()=>"Axis must be <= rank of the tensor"),s.forEach(a=>{xe(i,a.shape,"All tensors passed to stack must have matching shapes"),v(r===a.dtype,()=>"All tensors passed to stack must have matching dtypes")});const o=s.map(a=>Nt(a,t));return ge(o,t)}const Xe=L({stack_:rD});function oD(e,t=0){const s=g(e,"x","step"),n={x:s},i={alpha:t};return T.runKernelFunc(r=>r.step(s,t),n,null,Gc,i)}const kn=L({step_:oD});function aD(e,t,s,n,i=0,r=0,o=0,a=0,l=0){n==null&&(n=new Array(t.length));let c=g(e,"x","stridedSlice");const p=d=>{const m=mp(o);if(m.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(o!==0&&a!==0)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(o!==0&&l!==0)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");const f=c.rank-t.length,y=mp(a),b=c.shape.slice();if(y.forEach(R=>{t[R]=0,s[R]=1,b.splice(R,0,1)}),c=O(c,b),m.length&&f>0){const R=m[0],D=f+1;t=Cy(i,R,D,t,c.shape),s=Ry(r,R,D,s,c.shape),n=Ny(n,R,D,c.shape)}else for(let R=0;R{s[R]=t[R]+1,n[R]=1});const x=Ay(t,s,n),I=x.filter((R,D)=>S.indexOf(D)===-1),A=n.every(R=>R===1);if(A)return O(he(c,t,x),I);const k=d.stridedSlice(c,t,s,n);return O(k,I)},u={x:c},h={begin:t,end:s,strides:n,beginMask:i,endMask:r,ellipsisMask:o,newAxisMask:a,shrinkAxisMask:l};return T.runKernelFunc(p,u,null,Zg,h)}const zp=L({stridedSlice_:aD});function lD(e){const t=g(e,"x","tan"),s={x:t};return T.runKernelFunc((n,i)=>{const r=n.tan(t);return i([t]),r},s,null,Wc)}const Bp=L({tan_:lD});function ts(e,t,s){if(zs(e),t!=null&&t.length!==2)throw new Error("tensor2d() requires shape to have two numbers");const n=Zt(e,s);if(n.length!==2&&n.length!==1)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return ds(e,t,n,s)}function Pp(e,t,s){if(zs(e),t!=null&&t.length!==3)throw new Error("tensor3d() requires shape to have three numbers");const n=Zt(e,s);if(n.length!==3&&n.length!==1)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return ds(e,t,n,s)}function cs(e,t,s){if(zs(e),t!=null&&t.length!==4)throw new Error("tensor4d() requires shape to have four numbers");const n=Zt(e,s);if(n.length!==4&&n.length!==1)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return ds(e,t,n,s)}function ab(e,t,s){if(zs(e),t!=null&&t.length!==5)throw new Error("tensor5d() requires shape to have five numbers");const n=Zt(e,s);if(n.length!==5&&n.length!==1)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return ds(e,t,n,s)}function lb(e,t,s){if(zs(e),t!=null&&t.length!==6)throw new Error("tensor6d() requires shape to have six numbers");const n=Zt(e,s);if(n.length!==6&&n.length!==1)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return t=t||n,ds(e,t,n,s)}function cD(e,t=1,s=!0){const n=g(e,"x","topk");if(n.rank===0)throw new Error("topk() expects the input to be of rank 1 or higher");const i=n.shape[n.shape.length-1];if(t>i)throw new Error(`'k' passed to topk() must be <= the last dimension (${i}) but got ${t}`);const r={x:n},o={k:t,sorted:s},[a,l]=T.runKernelFunc(c=>c.topk(n,t,s),r,null,Qg,o);return{values:a,indices:l}}const jp=L({topk_:cD});function pD(e,t=0,s=1,n,i){if(n!=null&&n==="bool")throw new Error("Unsupported data type $ { dtype }");const r=new Dp(t,s,n,!0,i),o=le(e,n);for(let a=0;a"numSegments must be of dtype int");const r={x:n,segmentIds:i},o={numSegments:s},a=(l,c)=>{const p=l.unsortedSegmentSum(n,i,s);return c([i]),p};return T.runKernelFunc(a,r,null,jc,o)}const Vp=L({unsortedSegmentSum_:uD});function hD(e,t=0){const s=g(e,"x","unstack");v(t>=-s.shape.length&&t`Axis = ${t} is not in [-${s.shape.length}, ${s.shape.length})`),t<0&&(t+=s.shape.length);const n={value:s},i={axis:t},r=o=>o.unstack(s,t);return T.runKernelFunc(r,n,null,Pc,i)}const nt=L({unstack_:hD});function Gp(e,t=!0,s,n){return T.makeVariable(e,t,s,n)}function Wh(e,t){const s=[];for(let r=0;r0,()=>"mask cannot be scalar"),xe(a.slice(r,r+o),i.shape,"mask's shape must match the first K dimensions of tensor's shape,");let l=1;for(let f=r;f"Shape mismatch in v and x");const l=j(1),c=X(l,a);let p=C(X(o,r),c);if(i){v(n!=null,()=>"When using zeroDebias: true, step is required.");const u=g(n,"step","movingAverage");p=J(p,X(l,qt(a,u)))}return W(r,p)}const zS=L({movingAverage_:ED});const BS={};Re(BS,{calculateShapes:()=>PS,validateInput:()=>zh,validateUpdateShape:()=>cb});function cb(e,t,s){const n=t.rank>1?t.shape[t.rank-1]:1,i=t.rank>1?t.rank-1:1,r=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${s.shape}, indices.shape: ${t.shape}, shape: ${e}, sliceDim: ${n}, and batchDim: ${i}.`;if(s.rank1?t.shape[n-1]:1,r=s.length;let o=1;for(let u=i;ul.scatterND(n,i,s),o={indices:n,updates:i},a={shape:s};return T.runKernelFunc(r,o,null,Xg,a)}const Bh=L({scatterND_:kD});function jS(e,t,s,n){if(e.dtype!=="int32")throw new Error(`tf.sparseToDense() expects the indices to be int32 type, but the dtype was ${e.dtype}.`);if(e.rank>2)throw new Error(`sparseIndices should be a scalar, vector, or matrix, but got shape ${e.shape}.`);const i=e.rank>0?e.shape[0]:1,r=e.rank>1?e.shape[1]:1;if(s.length!==r)throw new Error(`outputShape has incorrect number of elements:, ${s.length}, should be: ${r}.`);const o=t.size;if(!(t.rank===0||t.rank===1&&o===i))throw new Error(`sparseValues has incorrect shape ${t.shape}, should be [] or [${i}]`);if(t.dtype!==n.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}function _D(e,t,s,n=0){const i=g(e,"sparseIndices","sparseToDense","int32"),r=g(t,"sparseValues","sparseToDense"),o=g(n,"defaultValue","sparseToDense",r.dtype);jS(i,r,s,o);const a={sparseIndices:i,sparseValues:r,defaultValue:o},l={outputShape:s};return T.runKernelFunc(c=>c.sparseToDense(i,r,s,o),a,null,Jg,l)}const fa=L({sparseToDense_:_D});function DD(e,t){const s=g(t,"indices","gatherND","int32"),n=g(e,"x","gatherND"),i=o=>o.gatherND(n,s),r={params:n,indices:s};return T.runKernelFunc(i,r,null,Eg)}const Ph=L({gatherND_:DD});function VS(e,t){if(t==null)return e.shape.slice();if(It(e.shape,t))return t;if(e.shape.length===t.length){const s=[];for(let n=0;n`x has to be a floating point tensor since it's going to be scaled, but got a ${i.dtype} tensor instead.`),v(t>=0&&t<1,()=>`rate must be a float in the range [0, 1), but got ${t}.`),t===0)return e instanceof ue?i.clone():i;const r=VS(i,s),o=1-t,a=J(Nn(W(Gs(r,0,1,"float32",n),o)),o);return C(i,a)}const jh=L({dropout_:FD});function Vh(e){return Math.floor(Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))))}function ga(e,t,s){const n=1-e%2,i=new Float32Array(e);for(let r=0;r1,()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${n.rank}`),v(n.rank-1===i.rank,()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${n.rank} and targets rank ${i.rank}`),xe(n.shape.slice(0,n.shape.length-1),i.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");const r=n.shape[n.shape.length-1];v(s>0&&s<=r,()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${r}), but got ${s}`);const o=await n.data(),a=await i.data(),[l,c]=[o.length/r,r],p=ia("bool",l);for(let u=0;uy.value-f.value),p[u]=0;for(let f=0;f`Error in conv2dDerFilter: input must be rank 4, but got shape ${a.shape}.`),v(l.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${l.shape}.`),v(s.length===4,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${s}.`);const c=r==="NHWC"?a.shape[3]:a.shape[1],p=r==="NHWC"?l.shape[3]:l.shape[1];v(c===s[2],()=>`Error in conv2dDerFilter: depth of input ${c}) must match input depth in filter (${s[2]}.`),v(p===s[3],()=>`Error in conv2dDerFilter: depth of dy (${p}) must match output depth for filter (${s[3]}).`),o!=null&&v(De(i),()=>`Error in conv2dDerFilter: pad must be an integer when using, dimRoundingMode ${o} but got pad ${i}.`);const u=m=>{const f=1,y=ir(r),b=is(a.shape,s,n,f,i,o,!1,y);return m.conv2dDerFilter(a,l,b)},h={x:a,dy:l},d={strides:n,pad:i,dataFormat:r,dimRoundingMode:o};return T.runKernelFunc(u,h,null,wg,d)}const ya=L({conv2DBackpropFilter_:UD});function ho(e,t,s){if(s==null||s==="linear")return e;if(s==="relu")return C(e,kn(t));throw new Error(`Cannot compute gradient for fused activation ${s}.`)}function mo(e,t){let s=t;const n=Ke(e.shape,t.shape);return n.length>0&&(s=te(s,n)),O(s,e.shape)}function fo(e,t,s){if(t==="linear")return e;if(t==="relu")return ke(e);if(t==="elu")return An(e);if(t==="relu6")return Mp(e);if(t==="prelu")return Ii(e,s);throw new Error(`Unknown fused activation ${t}.`)}const go=(e,t)=>{const s=e>0;return!s||t==="linear"};function $D({x:e,filter:t,strides:s,pad:n,dataFormat:i="NHWC",dilations:r=[1,1],dimRoundingMode:o,bias:a,activation:l="linear",preluActivationWeights:c}){if(l=l||"linear",go(T.state.gradientDepth,l)===!1){let A=yt(e,t,s,n,i,r,o);return a!=null&&(A=W(A,a)),fo(A,l,c)}const p=g(e,"x","conv2d"),u=g(t,"filter","conv2d");let h=p,d=!1;p.rank===3&&(d=!0,h=O(p,[1,p.shape[0],p.shape[1],p.shape[2]])),v(h.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${h.rank}.`),v(u.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${u.rank}.`),o!=null&&v(De(n),()=>`Error in fused conv2d: pad must be an integer when using, dimRoundingMode ${o} but got pad ${n}.`),v(h.shape[3]===u.shape[2],()=>`Error in conv2d: depth of input (${h.shape[3]}) must match input depth for filter ${u.shape[2]}.`),v(et(s,r),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`),v(i==="NHWC",()=>`Error in conv2d: got dataFormat of ${i} but only NHWC is currently supported.`);const m=is(h.shape,u.shape,s,r,n,o);let f;a!=null&&(f=g(a,"bias","fused conv2d"),[f]=Ne(f,p),Se(m.outShape,f.shape));let y;c!=null&&(y=g(c,"prelu weights","fused conv2d"));const b=(A,k)=>{const[R,D,F,M]=k,B=ho(A,F,l);v(Bs(r),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${r}'`);const V=ua(D.shape,B,R,s,n),Y=ya(D,B,R.shape,s,n),G=[V,Y];if(M!=null){const Z=mo(M,B);G.push(Z)}return G},S=A=>{const k=A.fusedConv2d({input:h,filter:u,convInfo:m,bias:f,activation:l,preluActivationWeights:y});return k},x={x:h,filter:u,bias:f,preluActivationWeights:y},I={strides:s,pad:n,dataFormat:i,dilations:r,dimRoundingMode:o,activation:l};if(a==null){const A=ms((k,R,D)=>{let F=T.runKernelFunc(S,x,null,Ih,I);return D([R,k,F]),d&&(F=O(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:b}});return A(h,u)}else{const A=ms((k,R,D,F)=>{let M=T.runKernelFunc(S,x,null,Ih,I);return F([R,k,M,D]),d&&(M=O(M,[M.shape[1],M.shape[2],M.shape[3]])),{value:M,gradFunc:b}});return A(h,u,f)}}const WD=L({fusedConv2d_:$D});function zD(e,t,s,n){let i=e;e.rank===3&&(i=O(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let r=t;r.rank===3&&(r=O(t,[1,t.shape[0],t.shape[1],t.shape[2]]));const o=l=>l.depthwiseConv2DDerFilter(i,r,n),a={x:i,dy:r};return T.runKernelFunc(o,a,null,Tg)}const Gh=L({depthwiseConv2dNativeBackpropFilter_:zD});function BD(e,t,s,n){let i=t,r=!1;t.rank===3&&(r=!0,i=O(t,[1,t.shape[0],t.shape[1],t.shape[2]]));const o=c=>c.depthwiseConv2DDerInput(i,s,n),a={dy:i},l=T.runKernelFunc(o,a,null,Ig);return r?O(l,[l.shape[1],l.shape[2],l.shape[3]]):l}const Hh=L({depthwiseConv2dNativeBackpropInput_:BD});function PD({x:e,filter:t,strides:s,pad:n,dataFormat:i="NHWC",dilations:r=[1,1],dimRoundingMode:o,bias:a,activation:l="linear",preluActivationWeights:c}){if(go(T.state.gradientDepth,l)===!1){let A=In(e,t,s,n,i,r,o);return a!=null&&(A=W(A,a)),fo(A,l,c)}const p=g(e,"x","depthwiseConv2d"),u=g(t,"filter","depthwiseConv2d");let h=p,d=!1;p.rank===3&&(d=!0,h=O(p,[1,p.shape[0],p.shape[1],p.shape[2]])),v(h.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${h.rank}.`),v(u.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${u.rank}.`),v(h.shape[3]===u.shape[2],()=>`Error in fused depthwiseConv2d: number of input channels (${h.shape[3]}) must match the inChannels dimension in filter ${u.shape[2]}.`),r==null&&(r=[1,1]),v(et(s,r),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`),o!=null&&v(De(n),()=>`Error in fused depthwiseConv2d: pad must be an integer when using dimRoundingMode ${o} but got pad ${n}.`);const m=is(h.shape,u.shape,s,r,n,o,!0);let f;a!=null&&(f=g(a,"bias","fused conv2d"),[f]=Ne(f,p),Se(m.outShape,f.shape));let y;c!=null&&(y=g(c,"prelu weights","fused depthwiseConv2d"));const b=(A,k)=>{v(Bs(r),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${r}'`);const[R,D,F,M]=k,B=ho(A,F,l),V=Hh(D.shape,B,R,m),Y=Gh(D,B,R.shape,m);if(M!=null){const G=mo(f,B);return[V,Y,G]}return[V,Y]},S=A=>{const k=A.fusedDepthwiseConv2D({input:h,filter:u,convInfo:m,bias:f,activation:l,preluActivationWeights:y});return k},x={x:h,filter:u,bias:f,preluActivationWeights:y},I={strides:s,pad:n,dataFormat:i,dilations:r,dimRoundingMode:o,activation:l};if(a==null){const A=ms((k,R,D)=>{let F=T.runKernelFunc(S,x,null,Ah,I);return D([R,k,F]),d&&(F=O(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:b}});return A(h,u)}else{const A=ms((k,R,D,F)=>{let M=T.runKernelFunc(S,x,null,Ah,I);return F([R,k,M,D]),d&&(M=O(M,[M.shape[1],M.shape[2],M.shape[3]])),{value:M,gradFunc:b}});return A(h,u,f)}}const jD=L({fusedDepthwiseConv2d_:PD});function VD({a:e,b:t,transposeA:s=!1,transposeB:n=!1,bias:i,activation:r="linear",preluActivationWeights:o}){if(go(T.state.gradientDepth,r)===!1){let M=Le(e,t,s,n);return i!=null&&(M=W(M,i)),fo(M,r,o)}let a=g(e,"a","fused matMul"),l=g(t,"b","fused matMul");[a,l]=Ne(a,l);const c=s?a.shape[a.rank-2]:a.shape[a.rank-1],p=n?l.shape[l.rank-1]:l.shape[l.rank-2],u=s?a.shape[a.rank-1]:a.shape[a.rank-2],h=n?l.shape[l.rank-2]:l.shape[l.rank-1],d=a.shape.slice(0,-2),m=l.shape.slice(0,-2),f=We(d),y=We(m);v(a.rank>=2&&l.rank>=2&&a.rank===l.rank,()=>`Error in fused matMul: inputs must have the same rank of at least 2, got ranks ${a.rank} and ${l.rank}.`),v(It(d,m),()=>`Error in fused matMul: outer dimensions (${d}) and (${m}) of Tensors with shapes ${a.shape} and ${l.shape} must match.`),v(c===p,()=>`Error in fused matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${a.shape} and ${l.shape} and transposeA=${s} and transposeB=${n} must match.`);const b=a.shape.slice(0,-2).concat([u,h]),S=s?O(a,[f,c,u]):O(a,[f,u,c]),x=n?O(l,[y,h,p]):O(l,[y,p,h]);let I;i!=null&&(I=g(i,"bias","fused matMul"),[I]=Ne(I,a),Se(b,I.shape));let A;o!=null&&(A=g(o,"prelu weights","fused matMul"));const k=(M,B)=>{const[V,Y,G,Z]=B,q=ho(O(M,G.shape),G,r);let ee,Q;if(!s&&!n?(ee=Le(q,Y,!1,!0),Q=Le(V,q,!0,!1)):!s&&n?(ee=Le(q,Y,!1,!1),Q=Le(q,V,!0,!1)):s&&!n?(ee=Le(Y,q,!1,!0),Q=Le(V,q,!1,!1)):(ee=Le(Y,q,!0,!0),Q=Le(q,V,!0,!0)),i!=null){const ie=mo(Z,q);return[ee,Q,ie]}else return[ee,Q]},R=M=>{const B=M.fusedBatchMatMul({a:S,b:x,transposeA:s,transposeB:n,bias:I,activation:r,preluActivationWeights:A});return B},D={a:S,b:x,bias:I,preluActivationWeights:A},F={transposeA:s,transposeB:n,activation:r};if(i==null){const M=ms((B,V,Y)=>{const G=T.runKernelFunc(R,D,null,Th,F);return Y([B,V,G]),{value:O(G,b),gradFunc:k}});return M(S,x)}else{const M=ms((B,V,Y,G)=>{const Z=T.runKernelFunc(R,D,null,Th,F);return G([B,V,Z,Y]),{value:O(Z,b),gradFunc:k}});return M(S,x,I)}}const GD=L({fusedMatMul_:VD});const Hs={};Re(Hs,{conv2d:()=>WD,depthwiseConv2d:()=>jD,matMul:()=>GD});function HD(e){return ga(e,.54,.46)}const HS=L({hammingWindow_:HD});function qD(e){return ga(e,.5,.5)}const qh=L({hannWindow_:qD});function YD(e,t,s,n=!1,i=0){let r=0;const o=[];for(;r+t<=e.size;)o.push(he(e,r,t)),r+=s;if(n)for(;r`Error in cropAndResize: image must be rank 4,but got rank ${o.rank}.`),v(a.rank===2&&a.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${c},4] but had shape ${a.shape}.`),v(l.rank===1&&l.shape[0]===c,()=>`Error in cropAndResize: boxInd must be have size [${c}] but had shape ${a.shape}.`),v(n.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${n.length}.`),v(n[0]>=1&&n[1]>=1,()=>`cropSize must be atleast [1,1], but was ${n}`),v(i==="bilinear"||i==="nearest",()=>`method must be bilinear or nearest, but was ${i}`);const p=m=>m.cropAndResize(o,a,l,n,i,r),u={image:o,boxes:a,boxInd:l},h={method:i,extrapolationValue:r,cropSize:n},d=T.runKernelFunc(p,u,null,Sg,h);return d}const YS=L({cropAndResize_:XD});function JD(e){const t=g(e,"image","flipLeftRight","float32");v(t.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`);const s={image:t},n=T.runKernel(Dr,s,{});return n}const KS=L({flipLeftRight_:JD});function ZD(e,t,s=0,n=.5){const i=g(e,"image","rotateWithOffset","float32");v(i.rank===4,()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${i.rank}.`);const r={image:i},o={radians:t,fillValue:s,center:n},a=T.runKernel(Wr,r,o);return a}const XS=L({rotateWithOffset_:ZD});function ln(e,t,s,n,i,r){n==null&&(n=.5),i==null&&(i=Number.NEGATIVE_INFINITY),r==null&&(r=0);const o=e.shape[0];return s=Math.min(s,o),v(0<=n&&n<=1,()=>`iouThreshold must be in [0, 1], but was '${n}'`),v(e.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${e.rank}'`),v(e.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${e.shape[1]}`),v(t.rank===1,()=>"scores must be a 1D tensor"),v(t.shape[0]===o,()=>`scores has incompatible shape with boxes. Expected ${o}, but was ${t.shape[0]}`),v(0<=r&&r<=1,()=>`softNmsSigma must be in [0, 1], but was '${r}'`),{maxOutputSize:s,iouThreshold:n,scoreThreshold:i,softNmsSigma:r}}function QD(e,t,s,n=.5,i=Number.NEGATIVE_INFINITY){const r=g(e,"boxes","nonMaxSuppression"),o=g(t,"scores","nonMaxSuppression"),a=ln(r,o,s,n,i);s=a.maxOutputSize,n=a.iouThreshold,i=a.scoreThreshold;const l={maxOutputSize:s,iouThreshold:n,scoreThreshold:i};return T.runKernelFunc(c=>c.nonMaxSuppression(r,o,s,n,i),{boxes:r,scores:o},null,pc,l)}const JS=L({nonMaxSuppression_:QD});function ZS(e,t,s){const n=eF(e,t,s),i=n<0?-(n+1):n;e.splice(i,0,t)}function eF(e,t,s){return sF(e,t,s||tF)}function tF(e,t){return e>t?1:e>>1);const a=s(t,e[r]);a>0?n=r+1:(i=r,o=!a)}return o?n:-n-1}function Kh(e,t,s,n,i){return pb(e,t,s,n,i,0).selectedIndices}function Xh(e,t,s,n,i,r){return pb(e,t,s,n,i,0,!1,r,!0)}function Jh(e,t,s,n,i,r){return pb(e,t,s,n,i,r,!0)}function pb(e,t,s,n,i,r,o=!1,a=!1,l=!1){const c=[];for(let y=0;yi&&c.push({score:t[y],boxIndex:y,suppressBeginIndex:0});c.sort(QS);const p=r>0?-.5/r:0,u=[],h=[];for(;u.length0;){const y=c.pop(),{score:b,boxIndex:S,suppressBeginIndex:x}=y;if(b=x;--A){const k=nF(e,S,u[A]);if(k>=n){I=!0;break}if(y.score=y.score*iF(n,p,k),y.score<=i)break}y.suppressBeginIndex=u.length,I||(y.score===b?(u.push(S),h.push(y.score)):y.score>i&&ZS(c,y,QS))}const d=u.length,m=s-d;a&&m>0&&(u.push(...new Array(m).fill(0)),h.push(...new Array(m).fill(0)));const f={selectedIndices:Fe(u,"int32")};return o&&(f.selectedScores=Fe(h,"float32")),l&&(f.validOutputs=j(d,"int32")),f}function nF(e,t,s){const n=e.subarray(t*4,t*4+4),i=e.subarray(s*4,s*4+4),r=Math.min(n[0],n[2]),o=Math.min(n[1],n[3]),a=Math.max(n[0],n[2]),l=Math.max(n[1],n[3]),c=Math.min(i[0],i[2]),p=Math.min(i[1],i[3]),u=Math.max(i[0],i[2]),h=Math.max(i[1],i[3]),d=(a-r)*(l-o),m=(u-c)*(h-p);if(d<=0||m<=0)return 0;const f=Math.max(r,c),y=Math.max(o,p),b=Math.min(a,u),S=Math.min(l,h),x=Math.max(b-f,0)*Math.max(S-y,0);return x/(d+m-x)}function iF(e,t,s){const n=Math.exp(t*s*s);return s<=e?n:0}function QS(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}async function rF(e,t,s,n=.5,i=Number.NEGATIVE_INFINITY){const r=g(e,"boxes","nonMaxSuppressionAsync"),o=g(t,"scores","nonMaxSuppressionAsync"),a=ln(r,o,s,n,i);s=a.maxOutputSize,n=a.iouThreshold,i=a.scoreThreshold;const l=await Promise.all([r.data(),o.data()]),c=l[0],p=l[1],u=Kh(c,p,s,n,i);return r!==e&&r.dispose(),o!==t&&o.dispose(),u}const ev=rF;function oF(e,t,s,n=.5,i=Number.NEGATIVE_INFINITY,r=0){const o=g(e,"boxes","nonMaxSuppression"),a=g(t,"scores","nonMaxSuppression"),l=ln(o,a,s,n,i,r);s=l.maxOutputSize,n=l.iouThreshold,i=l.scoreThreshold,r=l.softNmsSigma;const c={boxes:o,scores:a},p={maxOutputSize:s,iouThreshold:n,scoreThreshold:i,softNmsSigma:r},u=T.runKernel(Ur,c,p);return{selectedIndices:u[0],selectedScores:u[1]}}const tv=L({nonMaxSuppressionWithScore_:oF});async function aF(e,t,s,n=.5,i=Number.NEGATIVE_INFINITY,r=0){const o=g(e,"boxes","nonMaxSuppressionAsync"),a=g(t,"scores","nonMaxSuppressionAsync"),l=ln(o,a,s,n,i,r);s=l.maxOutputSize,n=l.iouThreshold,i=l.scoreThreshold,r=l.softNmsSigma;const c=await Promise.all([o.data(),a.data()]),p=c[0],u=c[1],h=Jh(p,u,s,n,i,r);return o!==e&&o.dispose(),a!==t&&a.dispose(),h}const sv=aF;function lF(e,t,s,n=.5,i=Number.NEGATIVE_INFINITY,r=!1){const o=g(e,"boxes","nonMaxSuppression"),a=g(t,"scores","nonMaxSuppression"),l=ln(o,a,s,n,i,null),c=l.maxOutputSize,p=l.iouThreshold,u=l.scoreThreshold,h={boxes:o,scores:a},d={maxOutputSize:c,iouThreshold:p,scoreThreshold:u,padToMaxOutputSize:r},m=T.runKernel(Mr,h,d);return{selectedIndices:m[0],validOutputs:m[1]}}const nv=L({nonMaxSuppressionPadded_:lF});async function cF(e,t,s,n=.5,i=Number.NEGATIVE_INFINITY,r=!1){const o=g(e,"boxes","nonMaxSuppressionAsync"),a=g(t,"scores","nonMaxSuppressionAsync"),l=ln(o,a,s,n,i,null),c=l.maxOutputSize,p=l.iouThreshold,u=l.scoreThreshold,[h,d]=await Promise.all([o.data(),a.data()]),m=Xh(h,d,c,p,u,r);return o!==e&&o.dispose(),a!==t&&a.dispose(),m}const iv=cF;function pF(e,t,s=!1){const n=g(e,"images","resizeBilinear");v(n.rank===3||n.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${n.rank}.`),v(t.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`);let i=n,r=!1;n.rank===3&&(r=!0,i=O(n,[1,n.shape[0],n.shape[1],n.shape[2]]));const[o,a]=t,l=(h,d)=>(d([i]),h.resizeBilinear(i,o,a,s)),c={images:i},p={alignCorners:s,size:t},u=T.runKernelFunc(l,c,null,xc,p);return r?O(u,[u.shape[1],u.shape[2],u.shape[3]]):u}const rv=L({resizeBilinear_:pF});function uF(e,t,s=!1){const n=g(e,"images","resizeNearestNeighbor");v(n.rank===3||n.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${n.rank}.`),v(t.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`),v(n.dtype==="float32"||n.dtype==="int32",()=>"`images` must have `int32` or `float32` as dtype");let i=n,r=!1;n.rank===3&&(r=!0,i=O(n,[1,n.shape[0],n.shape[1],n.shape[2]]));const[o,a]=t,l={images:i},c={alignCorners:s,size:t},p=(h,d)=>(d([i]),h.resizeNearestNeighbor(i,o,a,s)),u=T.runKernelFunc(p,l,null,wc,c);return r?O(u,[u.shape[1],u.shape[2],u.shape[3]]):u}const ov=L({resizeNearestNeighbor_:uF});function hF(e,t,s){v(t%1===0,()=>`bandPart(): numLower must be an integer, got ${t}.`),v(s%1===0,()=>`bandPart(): numUpper must be an integer, got ${s}.`);const n=g(e,"a","bandPart");v(n.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${n.rank}.`);const i=n.shape,[r,o]=n.shape.slice(-2);if(!(t<=r))throw new Error(`bandPart(): numLower (${t}) must not be greater than the number of rows (${r}).`);if(!(s<=o))throw new Error(`bandPart(): numUpper (${s}) must not be greater than the number of columns (${o}).`);t<0&&(t=r),s<0&&(s=o);const a=O(ei(0,r,1,"int32"),[-1,1]),l=ei(0,o,1,"int32"),c=X(a,l),p=zt(vs(c,j(+t,"int32")),as(c,j(-s,"int32"))),u=Ie([r,o],n.dtype);return O(Xe(nt(O(n,[-1,r,o])).map(h=>at(p,h,u))),i)}const av=L({bandPart_:hF});function dF(e){let t;if(Array.isArray(e)){t=!1,v(e!=null&&e.length>0,()=>"Gram-Schmidt process: input must not be null, undefined, or empty");const i=e[0].shape[0];for(let r=1;r`Gram-Schmidt: Non-unique lengths found in the input vectors: (${e[r].shape[0]} vs. ${i})`)}else t=!0,e=ls(e,e.shape[0],0).map(i=>En(i,[0]));v(e.length<=e[0].shape[0],()=>`Gram-Schmidt: Number of vectors (${e.length}) exceeds number of dimensions (${e[0].shape[0]}).`);const s=[],n=e;for(let i=0;i{let r=n[i];if(i>0)for(let o=0;o=2,()=>`qr() requires input tensor to have a rank >= 2, but got rank ${e.rank}`),e.rank===2)return cv(e,t);{const s=e.shape.slice(0,e.shape.length-2).reduce((l,c)=>l*c),n=nt(O(e,[s,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0),i=[],r=[];n.forEach(l=>{const[c,p]=cv(l,t);i.push(c),r.push(p)});const o=O(Xe(i,0),e.shape),a=O(Xe(r,0),e.shape);return[o,a]}}function cv(e,t=!1){return T.tidy(()=>{v(e.shape.length===2,()=>`qr2d() requires a 2D Tensor, but got a ${e.shape.length}D Tensor.`);const s=e.shape[0],n=e.shape[1];let i=ar(s),r=Ps(e);const o=ts([[1]],[1,1]);let a=Ps(o);const l=s>=n?n:s;for(let c=0;c{const d=he(r,[c,c],[s-c,1]),m=ma(d),f=he(r,[c,c],[1,1]),y=at(Ct(f,0),ts([[-1]]),ts([[1]])),b=X(f,C(y,m)),S=J(d,b);S.shape[0]===1?a=Ps(o):a=ge([o,he(S,[1,0],[S.shape[0]-1,S.shape[1]])],0);const x=Oe(J(Le(y,b),m)),I=he(r,[c,0],[s-c,n]),A=C(x,a),k=se(a);if(c===0)r=X(I,Le(A,Le(k,I)));else{const F=X(I,Le(A,Le(k,I)));r=ge([he(r,[0,0],[c,n]),F],0)}const R=se(A),D=he(i,[0,c],[s,i.shape[1]-c]);if(c===0)i=X(D,Le(Le(D,a),R));else{const F=X(D,Le(Le(D,a),R));i=ge([he(i,[0,0],[s,c]),F],1)}return[a,r,i]}),ce([p,u,h])}return!t&&s>n&&(i=he(i,[0,0],[s,n]),r=he(r,[0,0],[n,n])),[i,r]})}const pv=L({qr_:mF});var ht;(function(e){e[e.NONE=0]="NONE",e[e.MEAN=1]="MEAN",e[e.SUM=2]="SUM",e[e.SUM_BY_NONZERO_WEIGHTS=3]="SUM_BY_NONZERO_WEIGHTS"})(ht||(ht={}));function fF(e,t,s=ht.SUM_BY_NONZERO_WEIGHTS){const n=g(e,"losses","computeWeightedLoss");let i=null;t!=null&&(i=g(t,"weights","computeWeightedLoss"));const r=i==null?n:C(n,i);if(s===ht.NONE)return r;if(s===ht.SUM)return te(r);if(s===ht.MEAN){if(i==null)return Ge(r);{const o=n.size/i.size,a=J(te(r),te(i));return o>1?J(a,j(o)):a}}if(s===ht.SUM_BY_NONZERO_WEIGHTS){if(i==null)return J(te(r),j(n.size));{const o=C(i,es(n.shape)),a=K(te(Es(o,j(0))),"float32");return J(te(r),a)}}throw Error(`Unknown reduction: ${s}`)}const ss=L({computeWeightedLoss_:fF});function gF(e,t,s,n=ht.SUM_BY_NONZERO_WEIGHTS){const i=g(e,"labels","absoluteDifference"),r=g(t,"predictions","absoluteDifference");let o=null;s!=null&&(o=g(s,"weights","absoluteDifference")),xe(i.shape,r.shape,"Error in absoluteDifference: ");const a=Je(X(i,r));return ss(a,o,n)}const uv=L({absoluteDifference_:gF});function yF(e,t,s,n,i=ht.SUM_BY_NONZERO_WEIGHTS){const r=g(e,"labels","cosineDistance"),o=g(t,"predictions","cosineDistance");let a=null;n!=null&&(a=g(n,"weights","cosineDistance")),xe(r.shape,o.shape,"Error in cosineDistance: ");const l=j(1),c=X(l,te(C(r,o),s,!0));return ss(c,a,i)}const hv=L({cosineDistance_:yF});function bF(e,t,s,n=ht.SUM_BY_NONZERO_WEIGHTS){let i=g(e,"labels","hingeLoss");const r=g(t,"predictions","hingeLoss");let o=null;s!=null&&(o=g(s,"weights","hingeLoss")),xe(i.shape,r.shape,"Error in hingeLoss: ");const a=j(1);i=X(C(j(2),i),a);const l=ke(X(a,C(i,r)));return ss(l,o,n)}const dv=L({hingeLoss_:bF});function wF(e,t,s,n=1,i=ht.SUM_BY_NONZERO_WEIGHTS){const r=g(e,"labels","huberLoss"),o=g(t,"predictions","huberLoss");let a=null;s!=null&&(a=g(s,"weights","huberLoss")),xe(r.shape,o.shape,"Error in huberLoss: ");const l=j(n),c=Je(X(o,r)),p=Vs(c,l),u=X(c,p),h=W(C(j(.5),ye(p)),C(l,u));return ss(h,a,i)}const mv=L({huberLoss_:wF});function xF(e,t,s,n=1e-7,i=ht.SUM_BY_NONZERO_WEIGHTS){const r=g(e,"labels","logLoss"),o=g(t,"predictions","logLoss");let a=null;s!=null&&(a=g(s,"weights","logLoss")),xe(r.shape,o.shape,"Error in logLoss: ");const l=j(1),c=j(n),p=Oe(C(r,Mt(W(o,c)))),u=C(X(l,r),Mt(W(X(l,o),c))),h=X(p,u);return ss(h,a,i)}const fv=L({logLoss_:xF});function LF(e,t,s,n=ht.SUM_BY_NONZERO_WEIGHTS){const i=g(e,"labels","meanSquaredError"),r=g(t,"predictions","meanSquaredError");let o=null;s!=null&&(o=g(s,"weights","meanSquaredError")),xe(i.shape,r.shape,"Error in meanSquaredError: ");const a=Ri(i,r);return ss(a,o,n)}const gv=L({meanSquaredError_:LF});function SF(e,t){const s=g(e,"labels","sigmoidCrossEntropyWithLogits"),n=g(t,"logits","sigmoidCrossEntropyWithLogits");xe(s.shape,n.shape,"Error in sigmoidCrossEntropyWithLogits: ");const i=ke(n),r=C(n,s),o=eo(At(Oe(Je(n))));return W(X(i,r),o)}function vF(e,t,s,n=0,i=ht.SUM_BY_NONZERO_WEIGHTS){let r=g(e,"multiClassLabels","sigmoidCrossEntropy");const o=g(t,"logits","sigmoidCrossEntropy");let a=null;if(s!=null&&(a=g(s,"weights","sigmoidCrossEntropy")),xe(r.shape,o.shape,"Error in sigmoidCrossEntropy: "),n>0){const c=j(n),p=j(1),u=j(.5);r=W(C(r,X(p,c)),C(u,c))}const l=SF(r,o);return ss(l,a,i)}const yv=L({sigmoidCrossEntropy_:vF});function TF(e,t,s=-1){if(s===-1&&(s=t.rank-1),s!==t.rank-1)throw Error(`Softmax cross entropy along a non-last dimension is not yet supported. Labels / logits was rank ${t.rank} and dim was ${s}`);const n=ms((i,r,o)=>{const a=!0,l=Ep(r,[s],a),c=X(K(r,"float32"),l);o([i,c]);const p=Oe(C(c,i)),u=te(p,[s]),h=(d,m)=>{const[f,y]=m,b=ft(d.shape,[s]);return[C(O(d,b),X(K(f,"float32"),At(y))),C(O(d,b),X(At(y),K(f,"float32")))]};return{value:u,gradFunc:h}});return n(e,t)}function IF(e,t,s,n=0,i=ht.SUM_BY_NONZERO_WEIGHTS){let r=g(e,"onehotLabels","softmaxCrossEntropy");const o=g(t,"logits","softmaxCrossEntropy");let a=null;if(s!=null&&(a=g(s,"weights","softmaxCrossEntropy")),xe(r.shape,o.shape,"Error in softmaxCrossEntropy: "),n>0){const c=j(n),p=j(1),u=j(r.shape[1]);r=W(C(r,X(p,c)),J(c,u))}const l=TF(r,o);return ss(l,a,i)}const bv=L({softmaxCrossEntropy_:IF});const ub={};Re(ub,{abs:()=>Je,acos:()=>ip,acosh:()=>rp,add:()=>W,addN:()=>op,addStrict:()=>OS,all:()=>jr,any:()=>sr,argMax:()=>nr,argMin:()=>ap,asin:()=>lp,asinh:()=>cp,atan:()=>pp,atan2:()=>up,atanh:()=>hp,avgPool:()=>rs,avgPool3d:()=>Gr,basicLSTMCell:()=>_y,batchNorm:()=>on,batchNorm2d:()=>gp,batchNorm3d:()=>yp,batchNorm4d:()=>bp,batchToSpaceND:()=>wi,booleanMaskAsync:()=>vS,broadcastTo:()=>or,buffer:()=>le,cast:()=>K,ceil:()=>wp,clipByValue:()=>Dt,clone:()=>Ps,complex:()=>Ze,concat:()=>ge,concat1d:()=>xp,concat2d:()=>Lp,concat3d:()=>Sp,concat4d:()=>vp,conv1d:()=>Hr,conv2d:()=>yt,conv2dTranspose:()=>qr,conv3d:()=>Yr,conv3dTranspose:()=>Dy,cos:()=>xi,cosh:()=>Kr,cosineWindow:()=>ga,cumsum:()=>Xr,depthToSpace:()=>Tp,depthwiseConv2d:()=>In,diag:()=>Fy,dilation2d:()=>Ip,div:()=>J,divNoNan:()=>Ap,divStrict:()=>ES,dot:()=>My,dropout:()=>jh,elu:()=>An,enclosingPowerOfTwo:()=>Vh,equal:()=>Qt,equalStrict:()=>TS,erf:()=>Np,exp:()=>At,expandDims:()=>Nt,expm1:()=>Cp,eye:()=>ar,fft:()=>Li,fill:()=>Ft,floor:()=>Nn,floorDiv:()=>Jr,fused:()=>Hs,gather:()=>Cn,gatherND:()=>Ph,greater:()=>Ct,greaterEqual:()=>as,greaterEqualStrict:()=>IS,greaterStrict:()=>AS,ifft:()=>Qn,imag:()=>Ht,image:()=>ks,inTopKAsync:()=>GS,irfft:()=>Zr,isFinite:()=>$y,isInf:()=>Wy,isNaN:()=>zy,leakyRelu:()=>Qr,less:()=>Si,lessEqual:()=>vs,lessEqualStrict:()=>NS,lessStrict:()=>CS,linalg:()=>Zh,linspace:()=>Rp,localResponseNormalization:()=>Op,log:()=>Mt,log1p:()=>eo,logSigmoid:()=>By,logSoftmax:()=>to,logSumExp:()=>Ep,logicalAnd:()=>zt,logicalNot:()=>vi,logicalOr:()=>so,logicalXor:()=>Py,losses:()=>Lv,matMul:()=>Le,max:()=>st,maxPool:()=>lt,maxPool3d:()=>no,maxPoolWithArgmax:()=>kp,maximum:()=>Wt,maximumStrict:()=>kS,mean:()=>Ge,min:()=>an,minimum:()=>Vs,minimumStrict:()=>_S,mod:()=>io,modStrict:()=>DS,moments:()=>lr,movingAverage:()=>zS,mul:()=>C,mulStrict:()=>FS,multiRNNCell:()=>jy,multinomial:()=>_p,neg:()=>Oe,norm:()=>ma,notEqual:()=>Es,notEqualStrict:()=>RS,oneHot:()=>On,ones:()=>es,onesLike:()=>Bt,op:()=>L,outerProduct:()=>Vy,pad:()=>Ut,pad1d:()=>Gy,pad2d:()=>Hy,pad3d:()=>qy,pad4d:()=>Yy,pool:()=>Ky,pow:()=>qt,powStrict:()=>MS,prelu:()=>Ii,print:()=>Xy,prod:()=>ro,rand:()=>Jy,randomGamma:()=>tb,randomNormal:()=>ha,randomUniform:()=>Gs,range:()=>ei,real:()=>$t,reciprocal:()=>Fp,relu:()=>ke,relu6:()=>Mp,reshape:()=>O,reverse:()=>Lt,reverse1d:()=>sb,reverse2d:()=>nb,reverse3d:()=>ib,reverse4d:()=>rb,rfft:()=>Ai,round:()=>Up,rsqrt:()=>oo,scalar:()=>j,scatterND:()=>Bh,selu:()=>ao,separableConv2d:()=>Ni,setdiff1dAsync:()=>$p,sigmoid:()=>Ss,sign:()=>Wp,signal:()=>xv,sin:()=>lo,sinh:()=>co,slice:()=>he,slice1d:()=>po,slice2d:()=>da,slice3d:()=>Ci,slice4d:()=>cr,softmax:()=>Yt,softplus:()=>Rn,spaceToBatchND:()=>Ti,sparseToDense:()=>fa,spectral:()=>wv,split:()=>ls,sqrt:()=>He,square:()=>ye,squaredDifference:()=>Ri,squaredDifferenceStrict:()=>US,squeeze:()=>En,stack:()=>Xe,step:()=>kn,stridedSlice:()=>zp,sub:()=>X,subStrict:()=>$S,sum:()=>te,tan:()=>Bp,tanh:()=>Zn,tensor:()=>ze,tensor1d:()=>Fe,tensor2d:()=>ts,tensor3d:()=>Pp,tensor4d:()=>cs,tensor5d:()=>ab,tensor6d:()=>lb,tile:()=>js,topk:()=>jp,transpose:()=>se,truncatedNormal:()=>Oi,unsortedSegmentSum:()=>Vp,unstack:()=>nt,variable:()=>Gp,where:()=>at,whereAsync:()=>uo,zeros:()=>Ie,zerosLike:()=>ne});const wv={fft:Li,ifft:Qn,rfft:Ai,irfft:Zr},xv={hammingWindow:HS,hannWindow:qh,frame:Yh,stft:qS},ks={flipLeftRight:KS,resizeNearestNeighbor:ov,resizeBilinear:rv,rotateWithOffset:XS,cropAndResize:YS,nonMaxSuppression:JS,nonMaxSuppressionAsync:ev,nonMaxSuppressionWithScore:tv,nonMaxSuppressionWithScoreAsync:sv,nonMaxSuppressionPadded:nv,nonMaxSuppressionPaddedAsync:iv},Zh={bandPart:av,gramSchmidt:lv,qr:pv},Lv={absoluteDifference:uv,computeWeightedLoss:ss,cosineDistance:hv,hingeLoss:dv,huberLoss:mv,logLoss:fv,meanSquaredError:gv,sigmoidCrossEntropy:yv,softmaxCrossEntropy:bv};aS(ub);const Hp={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8};const Qh=4;async function NF(e,t){const s=[],n=[],i=Array.isArray(e)?e.map(o=>o.name):Object.keys(e);for(let o=0;o{const h=await l.bytes(),d=h.reduce((y,b)=>y+b.length,0)+Qh*h.length,m=new Uint8Array(d);let f=0;for(let y=0;y{if(t+=r.byteLength,s.push(r.byteLength===r.buffer.byteLength?r:new r.constructor(r)),!(r instanceof Float32Array||r instanceof Int32Array||r instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${r.constructor.name}`)});const n=new Uint8Array(t);let i=0;return s.forEach(r=>{n.set(new Uint8Array(r.buffer),i),i+=r.byteLength}),n.buffer}const RF=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function Sv(e){return RF?Buffer.byteLength(e):new Blob([e]).size}function qp(e){if(e.length===1)return e[0];let t=0;e.forEach(i=>{t+=i.byteLength});const s=new Uint8Array(t);let n=0;return e.forEach(i=>{s.set(new Uint8Array(i),n),n+=i.byteLength}),s.buffer}function db(e){const t="/";for(e=e.trim();e.endsWith(t);)e=e.slice(0,e.length-1);const s=e.split(t);return s[s.length-1]}function Yp(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("Expected JSON model topology, received ArrayBuffer.");return{dateSaved:new Date(),modelTopologyType:"JSON",modelTopologyBytes:e.modelTopology==null?0:Sv(JSON.stringify(e.modelTopology)),weightSpecsBytes:e.weightSpecs==null?0:Sv(JSON.stringify(e.weightSpecs)),weightDataBytes:e.weightData==null?0:e.weightData.byteLength}}function OF(){const e=s=>{let n=s<<13,i=0;for(;(n&8388608)===0;)i-=8388608,n<<=1;return n&=~8388608,i+=947912704,n|i},t=new Uint32Array(2048);t[0]=0;for(let s=1;s<1024;s++)t[s]=e(s);for(let s=1024;s<2048;s++)t[s]=939524096+(s-1024<<13);return t}function EF(){const e=new Uint32Array(64);e[0]=0,e[31]=1199570944,e[32]=2147483648,e[63]=3347054592;for(let t=1;t<31;t++)e[t]=t<<23;for(let t=33;t<63;t++)e[t]=2147483648+(t-32<<23);return e}function kF(){const e=new Uint32Array(64);for(let t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}function CF(){const e=OF(),t=EF(),s=kF();return n=>{const i=new ArrayBuffer(4*n.length),r=new Uint32Array(i);for(let o=0;o>10]+(a&1023)]+t[a>>10];r[o]=l}return new Float32Array(i)}}class Rt{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return Rt.instance==null&&(Rt.instance=new Rt()),Rt.instance}static registerSaveRouter(e){Rt.getInstance().saveRouters.push(e)}static registerLoadRouter(e){Rt.getInstance().loadRouters.push(e)}static getSaveHandlers(e){return Rt.getHandlers(e,"save")}static getLoadHandlers(e,t){return Rt.getHandlers(e,"load",t)}static getHandlers(e,t,s){const n=[],i=t==="load"?Rt.getInstance().loadRouters:Rt.getInstance().saveRouters;return i.forEach(r=>{const o=r(e,s);o!==null&&n.push(o)}),n}}const _F=e=>Rt.registerSaveRouter(e),DF=e=>Rt.registerLoadRouter(e),FF=e=>Rt.getSaveHandlers(e),MF=(e,t)=>Rt.getLoadHandlers(e,t);const ba="://";class _n{constructor(){this.managers={}}static getInstance(){return _n.instance==null&&(_n.instance=new _n()),_n.instance}static registerManager(e,t){v(e!=null,()=>"scheme must not be undefined or null."),e.endsWith(ba)&&(e=e.slice(0,e.indexOf(ba))),v(e.length>0,()=>"scheme must not be an empty string.");const s=_n.getInstance();v(s.managers[e]==null,()=>`A model store manager is already registered for scheme '${e}'.`),s.managers[e]=t}static getManager(e){const t=this.getInstance().managers[e];if(t==null)throw new Error(`Cannot find model manager for scheme '${e}'`);return t}static getSchemes(){return Object.keys(this.getInstance().managers)}}function ed(e){if(e.indexOf(ba)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${_n.getSchemes().join(",")}`);return{scheme:e.split(ba)[0],path:e.split(ba)[1]}}async function vv(e,t,s=!1){v(e!==t,()=>`Old path and new path are the same: '${e}'`);const n=Rt.getLoadHandlers(e);v(n.length>0,()=>`Copying failed because no load handler is found for source URL ${e}.`),v(n.length<2,()=>`Copying failed because more than one (${n.length}) load handlers for source URL ${e}.`);const i=n[0],r=Rt.getSaveHandlers(t);v(r.length>0,()=>`Copying failed because no save handler is found for destination URL ${t}.`),v(r.length<2,()=>`Copying failed because more than one (${n.length}) save handlers for destination URL ${t}.`);const o=r[0],a=ed(e).scheme,l=ed(e).path,c=a===ed(e).scheme,p=await i.load();s&&c&&await _n.getManager(a).removeModel(l);const u=await o.save(p);return s&&!c&&await _n.getManager(a).removeModel(l),u.modelArtifactsInfo}async function Tv(){const e=_n.getSchemes(),t={};for(const s of e){const n=await _n.getManager(s).listModels();for(const i in n){const r=s+ba+i;t[r]=n[i]}}return t}async function Iv(e){const t=ed(e),s=_n.getManager(t.scheme);return s.removeModel(t.path)}async function Av(e,t){const s=!1;return vv(e,t,s)}async function Nv(e,t){const s=!0;return vv(e,t,s)}const UF="model",$F=".json",WF=".weights.bin";function Cv(e){return new Promise(t=>setTimeout(t)).then(e)}class wa{constructor(e){if(!$().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(wa.URL_SCHEME)&&(e=e.slice(wa.URL_SCHEME.length)),(e==null||e.length===0)&&(e=UF),this.modelTopologyFileName=e+$F,this.weightDataFileName=e+WF}async save(e){if(typeof document=="undefined")throw new Error("Browser downloads are not supported in this environment since `document` is not present");const t=window.URL.createObjectURL(new Blob([e.weightData],{type:"application/octet-stream"}));if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");{const s=[{paths:["./"+this.weightDataFileName],weights:e.weightSpecs}],n={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:s},i=window.URL.createObjectURL(new Blob([JSON.stringify(n)],{type:"application/json"})),r=this.jsonAnchor==null?document.createElement("a"):this.jsonAnchor;if(r.download=this.modelTopologyFileName,r.href=i,await Cv(()=>r.dispatchEvent(new MouseEvent("click"))),e.weightData!=null){const o=this.weightDataAnchor==null?document.createElement("a"):this.weightDataAnchor;o.download=this.weightDataFileName,o.href=t,await Cv(()=>o.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:Yp(e)}}}}wa.URL_SCHEME="downloads://";class zF{constructor(e){if(e==null||e.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${e}`);this.files=e}async load(){const e=this.files[0],t=this.files.slice(1);return new Promise((s,n)=>{const i=new FileReader();i.onload=r=>{const o=JSON.parse(r.target.result),a=o.modelTopology;if(a==null){n(new Error(`modelTopology field is missing from file ${e.name}`));return}t.length===0&&s({modelTopology:a});const l=o.weightsManifest;if(l==null){n(new Error(`weightManifest field is missing from file ${e.name}`));return}let c;try{c=this.checkManifestAndWeightFiles(l,t)}catch(d){n(d);return}const p=[],u=[],h=[];l.forEach(d=>{d.paths.forEach(m=>{u.push(m),h.push(null)}),p.push(...d.weights)}),l.forEach(d=>{d.paths.forEach(m=>{const f=new FileReader();f.onload=y=>{const b=y.target.result,S=u.indexOf(m);h[S]=b,h.indexOf(null)===-1&&s({modelTopology:a,weightSpecs:p,weightData:qp(h),format:o.format,generatedBy:o.generatedBy,convertedBy:o.convertedBy,userDefinedMetadata:o.userDefinedMetadata})},f.onerror=y=>n(`Failed to weights data from file of path '${m}'.`),f.readAsArrayBuffer(c[m])})})},i.onerror=r=>n(`Failed to read model topology and weights manifest JSON from file '${e.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),i.readAsText(e)})}checkManifestAndWeightFiles(e,t){const s=[],n=t.map(r=>db(r.name)),i={};for(const r of e)r.paths.forEach(o=>{const a=db(o);if(s.indexOf(a)!==-1)throw new Error(`Duplicate file basename found in weights manifest: '${a}'`);if(s.push(a),n.indexOf(a)===-1)throw new Error(`Weight file with basename '${a}' is not provided.`);i[o]=t[n.indexOf(a)]});if(s.length!==t.length)throw new Error(`Mismatch in the number of files in weights manifest (${s.length}) and the number of weight files provided (${t.length}).`);return i}}const PF=e=>$().getBool("IS_BROWSER")&&(!Array.isArray(e)&&e.startsWith(wa.URL_SCHEME))?BF(e.slice(wa.URL_SCHEME.length)):null;Rt.registerSaveRouter(PF);function BF(e="model"){return new wa(e)}function jF(e){return new zF(e)}function mb(e,t,s,n){o(e),s=s==null?0:s,n=n==null?1:n,a(s,n);let i=0;const r=l=>(l.then(c=>{const p=s+ ++i/e.length*(n-s);return t(p),c}),l);function o(l){v(l!=null&&Array.isArray(l)&&l.length>0,()=>"promises must be a none empty array")}function a(l,c){v(l>=0&&l<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${l}`),v(c>=0&&c<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${c}`),v(c>=l,()=>`startFraction must be no more than endFraction, but got startFraction ${l} and endFraction ${c}`)}return Promise.all(e.map(r))}async function fb(e,t){t==null&&(t={});const s=t.fetchFunc==null?$().platform.fetch:t.fetchFunc,n=e.map(u=>s(u,t.requestInit,{isBinary:!0})),i=0,r=.5,o=t.onProgress==null?await Promise.all(n):await mb(n,t.onProgress,i,r),a=o.map(u=>u.arrayBuffer()),l=.5,c=1,p=t.onProgress==null?await Promise.all(a):await mb(a,t.onProgress,l,c);return p}async function VF(e,t="",s,n){const i=o=>fb(o,{requestInit:n}),r=Rv(i);return r(e,t,s)}function Rv(e){return async(t,s="",n)=>{const i=t.map(()=>!1),r={},o=n!=null?n.map(()=>!1):[],a=[];if(t.forEach((d,m)=>{let f=0;d.weights.forEach(y=>{const b="quantization"in y?y.quantization.dtype:y.dtype,S=Hp[b]*We(y.shape),x=()=>{i[m]=!0,r[m]==null&&(r[m]=[]),r[m].push({manifestEntry:y,groupOffset:f,sizeBytes:S})};n!=null?n.forEach((I,A)=>{I===y.name&&(x(),o[A]=!0)}):x(),a.push(y.name),f+=S})}),!o.every(d=>d)){const d=n.filter((m,f)=>!o[f]);throw new Error(`Could not find weights in manifest with names: ${d.join(", ")}. +Manifest JSON has weights with names: ${a.join(", ")}.`)}const l=i.reduce((d,m,f)=>(m&&d.push(f),d),[]),c=[];l.forEach(d=>{t[d].paths.forEach(m=>{const f=s+(s.endsWith("/")?"":"/")+m;c.push(f)})});const p=await e(c),u={};let h=0;return l.forEach(d=>{const m=t[d].paths.length;let f=0;for(let I=0;I{const A=y.slice(I.groupOffset,I.groupOffset+I.sizeBytes),k=hb(A,[I.manifestEntry]);for(const R in k)u[R]=k[R]}),h+=m}),u}}const GF="application/octet-stream",HF="application/json";class gb{constructor(e,t){if(this.DEFAULT_METHOD="POST",t==null&&(t={}),this.weightPathPrefix=t.weightPathPrefix,this.onProgress=t.onProgress,t.fetchFunc!=null?(v(typeof t.fetchFunc=="function",()=>"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)"),this.fetch=t.fetchFunc):this.fetch=$().platform.fetch,v(e!=null&&e.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(e)&&v(e.length===2,()=>`URL paths for http must have a length of 2, (actual length is ${e.length}).`),this.path=e,t.requestInit!=null&&t.requestInit.body!=null)throw new Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=t.requestInit||{}}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");const t=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);t.body=new FormData();const s=[{paths:["./model.weights.bin"],weights:e.weightSpecs}],n={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,userDefinedMetadata:e.userDefinedMetadata,weightsManifest:s};t.body.append("model.json",new Blob([JSON.stringify(n)],{type:HF}),"model.json"),e.weightData!=null&&t.body.append("model.weights.bin",new Blob([e.weightData],{type:GF}),"model.weights.bin");const i=await this.fetch(this.path,t);if(i.ok)return{modelArtifactsInfo:Yp(e),responses:[i]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${i.status}.`)}async load(){const e=await this.fetch(this.path,this.requestInit);if(!e.ok)throw new Error(`Request to ${this.path} failed with status code ${e.status}. Please verify this URL points to the model JSON of the model to load.`);let t;try{t=await e.json()}catch(p){let u=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?u+=" Your path contains a .pb file extension. Support for .pb models have been removed in TensorFlow.js 1.0 in favor of .json models. You can re-convert your Python TensorFlow model using the TensorFlow.js 1.0 conversion scripts or you can convert your.pb models with the 'pb2json'NPM script in the tensorflow/tfjs-converter repository.":u+=" Please make sure the server is serving valid JSON for this request.",new Error(u)}const s=t.modelTopology,n=t.weightsManifest,i=t.generatedBy,r=t.convertedBy,o=t.format,a=t.userDefinedMetadata;if(s==null&&n==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);let l,c;if(n!=null){const p=await this.loadWeights(n);[l,c]=p}return{modelTopology:s,weightSpecs:l,weightData:c,userDefinedMetadata:a,generatedBy:i,convertedBy:r,format:o}}async loadWeights(e){const t=Array.isArray(this.path)?this.path[1]:this.path,[s,n]=qF(t),i=this.weightPathPrefix||s,r=[];for(const l of e)r.push(...l.weights);const o=[];e.forEach(l=>{l.paths.forEach(c=>{o.push(i+c+n)})});const a=await fb(o,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[r,qp(a)]}}gb.URL_SCHEME_REGEX=/^https?:\/\//;function qF(e){const t=e.lastIndexOf("/"),s=e.lastIndexOf("?"),n=e.substring(0,t),i=s>t?e.substring(s):"";return[n+"/",i]}function yb(e){return e.match(gb.URL_SCHEME_REGEX)!=null}const Ov=(e,t)=>{if(typeof fetch=="undefined"&&(t==null||t.fetchFunc==null))return null;{let s=!0;if(Array.isArray(e)?s=e.every(n=>yb(n)):s=yb(e),s)return bb(e,t)}return null};Rt.registerSaveRouter(Ov);Rt.registerLoadRouter(Ov);function bb(e,t){return new gb(e,t)}function YF(e,t){return bb(e,t)}class wb{constructor(e){this.modelArtifacts=e}async load(){return this.modelArtifacts}}class KF{constructor(e){this.saveHandler=e}async save(e){return this.saveHandler(e)}}function XF(e,t,s,n){if(arguments.length===1){const i=e.modelTopology!=null||e.weightSpecs!=null;return i?new wb(e):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new wb({modelTopology:e}))}else return console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new wb({modelTopology:e,weightSpecs:t,weightData:s,trainingConfig:n})}function JF(e){return new KF(e)}const Ot={};Re(Ot,{browserFiles:()=>jF,browserHTTPRequest:()=>YF,concatenateArrayBuffers:()=>qp,copyModel:()=>Av,decodeWeights:()=>hb,encodeWeights:()=>NF,fromMemory:()=>XF,getLoadHandlers:()=>MF,getModelArtifactsInfoForJSON:()=>Yp,getSaveHandlers:()=>FF,http:()=>bb,isHTTPScheme:()=>yb,listModels:()=>Tv,loadWeights:()=>VF,moveModel:()=>Nv,registerLoadRouter:()=>DF,registerSaveRouter:()=>_F,removeModel:()=>Iv,weightsLoaderFactory:()=>Rv,withSaveHandler:()=>JF});function ZF(e,t,s){const n=g(e,"labels","confusionMatrix"),i=g(t,"predictions","confusionMatrix");v(s==null||s>0&&Number.isInteger(s),()=>`If provided, numClasses must be a positive integer, but got ${s}`),v(n.rank===1,()=>`Expected the rank of labels to be 1, but got ${n.rank}`),v(i.rank===1,()=>`Expected the rank of predictions to be 1, but got ${i.rank}`),v(n.shape[0]===i.shape[0],()=>`Mismatch in the number of examples: ${n.shape[0]} vs. ${i.shape[0]}. Labels and predictions should have the same number of elements.`),v(s>0&&Number.isInteger(s),()=>`numClasses is required to be a positive integer, but got ${s}`);const r=On(K(n,"int32"),s),o=On(K(i,"int32"),s),a=se(r);return K(Le(a,o),"int32")}const QF=L({confusionMatrix_:ZF});const Ev={};Re(Ev,{confusionMatrix:()=>QF});const pr={};Re(pr,{fromPixels:()=>sM,toPixels:()=>tM});let xa;function eM(e,t=3){if(t>4)throw new Error("Cannot construct Tensor with more than 4 channels from pixels.");if(e==null)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");let s=!1,n=!1,i=!1,r=!1,o=!1;if(e.data instanceof Uint8Array)s=!0;else if(typeof ImageData!="undefined"&&e instanceof ImageData)n=!0;else if(typeof HTMLVideoElement!="undefined"&&e instanceof HTMLVideoElement)i=!0;else if(typeof HTMLImageElement!="undefined"&&e instanceof HTMLImageElement)r=!0;else if(e.getContext!=null)o=!0;else throw new Error(`pixels passed to tf.browser.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData in browser, or OffscreenCanvas, ImageData in webworker or {data: Uint32Array, width: number, height: number}, but was ${e.constructor.name}`);if(i){const d=2;if(i&&e.readyState element.")}const a=qc(ta,T.backendName);if(a!=null){const d={pixels:e},m={numChannels:t};return T.runKernel(ta,d,m)}const[l,c]=i?[e.videoWidth,e.videoHeight]:[e.width,e.height];let p;o?p=e.getContext("2d").getImageData(0,0,l,c).data:n||s?p=e.data:(r||i)&&(xa==null&&(xa=document.createElement("canvas").getContext("2d")),xa.canvas.width=l,xa.canvas.height=c,xa.drawImage(e,0,0,l,c),p=xa.getImageData(0,0,l,c).data);let u;if(t===4)u=new Int32Array(p);else{const d=l*c;u=new Int32Array(d*t);for(let m=0;m4||r===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${r}`);const o=await s.data(),a=an(s),l=st(s),c=await Promise.all([a.data(),l.data()]),p=c[0],u=c[1],h=p[0],d=u[0];if(a.dispose(),l.dispose(),s.dtype==="float32"){if(h<0||d>1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but got range [${h} - ${d}].`)}else if(s.dtype==="int32"){if(h<0||d>255)throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but got range [${h} - ${d}].`)}else throw new Error(`Unsupported type for toPixels: ${s.dtype}. Please use float32 or int32 tensors.`);const m=s.dtype==="float32"?255:1,f=new Uint8ClampedArray(i*n*4);for(let y=0;y_v});function _v(e,t){if(e.rank<1)throw new Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${e.rank}.`);if(t.rank<1)throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${t.rank}.`);if(t.dtype!=="int32")throw new Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${t.dtype}.`);if(t.shape[t.rank-1]>e.rank)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${t.shape[t.rank-1]} vs. ${e.rank}`);if(e.size===0)throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${e.shape}.`);const s=t.shape,n=s[s.length-1];let i=1;for(let c=0;cc/a),1].slice(0,n);return[o,i,a,l]}const P={};Re(P,{Serializable:()=>xb,SerializationMap:()=>yo,registerClass:()=>Ts});class xb{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}}class yo{constructor(){this.classNameMap={}}static getMap(){return yo.instance==null&&(yo.instance=new yo()),yo.instance}static register(e){yo.getMap().classNameMap[e.className]=[e,e.fromConfig]}}function Ts(e){v(e.className!=null,()=>"Class being registered does not have the static className property defined."),v(typeof e.className=="string",()=>"className is required to be a string, but got type "+typeof e.className),v(e.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),yo.register(e)}const Lb="2.3.0";class fs extends xb{minimize(e,t=!1,s){const{value:n,grads:i}=this.computeGradients(e,s);if(s!=null){const r=s.map(o=>({name:o.name,tensor:i[o.name]}));this.applyGradients(r)}else this.applyGradients(i);return ce(i),t?n:(n.dispose(),null)}get iterations(){return this.iterations_==null&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(e,t){return Uh(e,t)}dispose(){this.iterations_!=null&&ce(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:j(this.iterations_,"int32")}}async getWeights(){throw new Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(e){throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(e){return this.iterations_=(await e[0].tensor.data())[0],e.slice(1)}}Object.defineProperty(fs,Symbol.hasInstance,{value:e=>e.minimize!=null&&e.computeGradients!=null&&e.applyGradients!=null});class bo extends fs{constructor(e,t,s=null){super();this.learningRate=e,this.rho=t,this.epsilon=s,this.accumulatedGrads=[],this.accumulatedUpdates=[],s==null&&(this.epsilon=T.backend.epsilon())}applyGradients(e){const t=Array.isArray(e)?e.map(s=>s.name):Object.keys(e);t.forEach((s,n)=>{const i=T.registeredVariables[s],r=!1;this.accumulatedGrads[n]==null&&(this.accumulatedGrads[n]={originalName:`${s}/accum_grad`,variable:N(()=>ne(i).variable(r))}),this.accumulatedUpdates[n]==null&&(this.accumulatedUpdates[n]={originalName:`${s}/accum_var`,variable:N(()=>ne(i).variable(r))});const o=Array.isArray(e)?e[n].tensor:e[s];if(o==null)return;const a=this.accumulatedGrads[n].variable,l=this.accumulatedUpdates[n].variable;N(()=>{const c=W(C(a,this.rho),C(ye(o),1-this.rho)),p=C(J(He(W(l,this.epsilon)),He(W(a,this.epsilon))),o),u=W(C(l,this.rho),C(ye(p),1-this.rho));a.assign(c),l.assign(u);const h=W(C(p,-this.learningRate),i);i.assign(h)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(ce(this.accumulatedGrads.map(e=>e.variable)),ce(this.accumulatedUpdates.map(e=>e.variable)))}async getWeights(){const e=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);const t=e.length/2,s=!1;this.accumulatedGrads=e.slice(0,t).map(n=>({originalName:n.name,variable:n.tensor.variable(s)})),this.accumulatedUpdates=e.slice(t,t*2).map(n=>({originalName:n.name,variable:n.tensor.variable(s)}))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.rho,t.epsilon)}}bo.className="Adadelta";Ts(bo);class wo extends fs{constructor(e,t=.1){super();this.learningRate=e,this.initialAccumulatorValue=t,this.accumulatedGrads=[]}applyGradients(e){const t=Array.isArray(e)?e.map(s=>s.name):Object.keys(e);t.forEach((s,n)=>{const i=T.registeredVariables[s];if(this.accumulatedGrads[n]==null){const a=!1;this.accumulatedGrads[n]={originalName:`${s}/accumulator`,variable:N(()=>Ft(i.shape,this.initialAccumulatorValue).variable(a))}}const r=Array.isArray(e)?e[n].tensor:e[s];if(r==null)return;const o=this.accumulatedGrads[n].variable;N(()=>{const a=W(o,ye(r));o.assign(a);const l=W(C(J(r,He(W(a,T.backend.epsilon()))),-this.learningRate),i);i.assign(l)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&ce(this.accumulatedGrads.map(e=>e.variable))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e);const t=!1;this.accumulatedGrads=e.map(s=>({originalName:s.name,variable:s.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(e,t){return new e(t.learningRate,t.initialAccumulatorValue)}}wo.className="Adagrad";Ts(wo);class xo extends fs{constructor(e,t,s,n=null){super();this.learningRate=e,this.beta1=t,this.beta2=s,this.epsilon=n,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],N(()=>{this.accBeta1=j(t).variable(),this.accBeta2=j(s).variable()}),n==null&&(this.epsilon=T.backend.epsilon())}applyGradients(e){const t=Array.isArray(e)?e.map(s=>s.name):Object.keys(e);N(()=>{const s=X(1,this.accBeta1),n=X(1,this.accBeta2);t.forEach((i,r)=>{const o=T.registeredVariables[i],a=!1;this.accumulatedFirstMoment[r]==null&&(this.accumulatedFirstMoment[r]={originalName:`${i}/m`,variable:N(()=>ne(o).variable(a))}),this.accumulatedSecondMoment[r]==null&&(this.accumulatedSecondMoment[r]={originalName:`${i}/v`,variable:N(()=>ne(o).variable(a))});const l=Array.isArray(e)?e[r].tensor:e[i];if(l==null)return;const c=this.accumulatedFirstMoment[r].variable,p=this.accumulatedSecondMoment[r].variable,u=W(C(c,this.beta1),C(l,1-this.beta1)),h=W(C(p,this.beta2),C(ye(l),1-this.beta2)),d=J(u,s),m=J(h,n);c.assign(u),p.assign(h);const f=W(C(J(d,W(He(m),this.epsilon)),-this.learningRate),o);o.assign(f)}),this.accBeta1.assign(C(this.accBeta1,this.beta1)),this.accBeta2.assign(C(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&ce(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedSecondMoment!=null&&ce(this.accumulatedSecondMoment.map(e=>e.variable))}async getWeights(){const e=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e),N(()=>{this.accBeta1.assign(qt(this.beta1,this.iterations_+1)),this.accBeta2.assign(qt(this.beta2,this.iterations_+1))});const t=e.length/2,s=!1;this.accumulatedFirstMoment=e.slice(0,t).map(n=>({originalName:n.name,variable:n.tensor.variable(s)})),this.accumulatedSecondMoment=e.slice(t,t*2).map(n=>({originalName:n.name,variable:n.tensor.variable(s)}))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon)}}xo.className="Adam";Ts(xo);class Lo extends fs{constructor(e,t,s,n=null,i=0){super();this.learningRate=e,this.beta1=t,this.beta2=s,this.epsilon=n,this.decay=i,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],N(()=>{this.iteration=j(0).variable(),this.accBeta1=j(t).variable()}),n==null&&(this.epsilon=T.backend.epsilon())}applyGradients(e){const t=Array.isArray(e)?e.map(s=>s.name):Object.keys(e);N(()=>{const s=X(1,this.accBeta1),n=J(-this.learningRate,W(C(this.iteration,this.decay),1));t.forEach((i,r)=>{const o=T.registeredVariables[i],a=!1;this.accumulatedFirstMoment[r]==null&&(this.accumulatedFirstMoment[r]={originalName:`${i}/m`,variable:ne(o).variable(a)}),this.accumulatedWeightedInfNorm[r]==null&&(this.accumulatedWeightedInfNorm[r]={originalName:`${i}/v`,variable:ne(o).variable(a)});const l=Array.isArray(e)?e[r].tensor:e[i];if(l==null)return;const c=this.accumulatedFirstMoment[r].variable,p=this.accumulatedWeightedInfNorm[r].variable,u=W(C(c,this.beta1),C(l,1-this.beta1)),h=C(p,this.beta2),d=Je(l),m=Wt(h,d);c.assign(u),p.assign(m);const f=W(C(J(n,s),J(u,W(m,this.epsilon))),o);o.assign(f)}),this.iteration.assign(W(this.iteration,1)),this.accBeta1.assign(C(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&ce(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedWeightedInfNorm!=null&&ce(this.accumulatedWeightedInfNorm.map(e=>e.variable))}async getWeights(){throw new Error("getWeights() is not implemented for Adamax yet.")}async setWeights(e){throw new Error("setWeights() is not implemented for Adamax yet.")}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon,t.decay)}}Lo.className="Adamax";Ts(Lo);class Ei extends fs{constructor(e){super();this.learningRate=e,this.setLearningRate(e)}applyGradients(e){const t=Array.isArray(e)?e.map(s=>s.name):Object.keys(e);t.forEach((s,n)=>{const i=Array.isArray(e)?e[n].tensor:e[s];if(i==null)return;const r=T.registeredVariables[s];N(()=>{const o=W(C(this.c,i),r);r.assign(o)})}),this.incrementIterations()}setLearningRate(e){this.learningRate=e,this.c!=null&&this.c.dispose(),this.c=gt(j(-e))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(e){if(e=await this.extractIterations(e),e.length!==0)throw new Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(e,t){return new e(t.learningRate)}}Ei.className="SGD";Ts(Ei);class So extends Ei{constructor(e,t,s=!1){super(e);this.learningRate=e,this.momentum=t,this.useNesterov=s,this.accumulations=[],this.m=j(this.momentum)}applyGradients(e){const t=Array.isArray(e)?e.map(s=>s.name):Object.keys(e);t.forEach((s,n)=>{const i=T.registeredVariables[s];if(this.accumulations[n]==null){const a=!1;this.accumulations[n]={originalName:`${s}/momentum`,variable:N(()=>ne(i).variable(a))}}const r=this.accumulations[n].variable,o=Array.isArray(e)?e[n].tensor:e[s];if(o==null)return;N(()=>{let a;const l=W(C(this.m,r),o);this.useNesterov?a=W(C(this.c,W(o,C(l,this.m))),i):a=W(C(this.c,l),i),r.assign(l),i.assign(a)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&ce(this.accumulations.map(e=>e.variable))}setMomentum(e){this.momentum=e}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e);const t=!1;this.accumulations=e.map(s=>({originalName:s.name,variable:s.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(e,t){return new e(t.learningRate,t.momentum,t.useNesterov)}}So.className="Momentum";Ts(So);class vo extends fs{constructor(e,t=.9,s=0,n=null,i=!1){super();if(this.learningRate=e,this.decay=t,this.momentum=s,this.epsilon=n,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=i,n==null&&(this.epsilon=T.backend.epsilon()),e==null)throw new Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(e){const t=Array.isArray(e)?e.map(s=>s.name):Object.keys(e);t.forEach((s,n)=>{const i=T.registeredVariables[s],r=!1;this.accumulatedMeanSquares[n]==null&&(this.accumulatedMeanSquares[n]={originalName:`${s}/rms`,variable:N(()=>ne(i).variable(r))}),this.accumulatedMoments[n]==null&&(this.accumulatedMoments[n]={originalName:`${s}/momentum`,variable:N(()=>ne(i).variable(r))}),this.accumulatedMeanGrads[n]==null&&this.centered&&(this.accumulatedMeanGrads[n]={originalName:`${s}/mg`,variable:N(()=>ne(i).variable(r))});const o=Array.isArray(e)?e[n].tensor:e[s];if(o==null)return;const a=this.accumulatedMeanSquares[n].variable,l=this.accumulatedMoments[n].variable;N(()=>{const c=W(C(a,this.decay),C(ye(o),1-this.decay));if(this.centered){const p=this.accumulatedMeanGrads[n].variable,u=W(C(p,this.decay),C(o,1-this.decay)),h=J(C(o,this.learningRate),He(X(c,W(ye(u),this.epsilon)))),d=W(C(l,this.momentum),h);a.assign(c),p.assign(u),l.assign(d);const m=X(i,d);i.assign(m)}else{const p=W(C(a,this.decay),C(ye(o),1-this.decay)),u=W(C(l,this.momentum),J(C(o,this.learningRate),He(W(p,this.epsilon))));a.assign(p),l.assign(u);const h=X(i,u);i.assign(h)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&ce(this.accumulatedMeanSquares.map(e=>e.variable)),this.accumulatedMeanGrads!=null&&this.centered&&ce(this.accumulatedMeanGrads.map(e=>e.variable)),this.accumulatedMoments!=null&&ce(this.accumulatedMoments.map(e=>e.variable))}async getWeights(){const e=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&e.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);const t=this.centered?e.length/3:e.length/2,s=!1;this.accumulatedMeanSquares=e.slice(0,t).map(n=>({originalName:n.name,variable:n.tensor.variable(s)})),this.accumulatedMoments=e.slice(t,t*2).map(n=>({originalName:n.name,variable:n.tensor.variable(s)})),this.centered&&(this.accumulatedMeanGrads=e.slice(t*2,t*3).map(n=>({originalName:n.name,variable:n.tensor.variable(s)})))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(e,t){return new e(t.learningRate,t.decay,t.momentum,t.epsilon,t.centered)}}vo.className="RMSProp";Ts(vo);class ur{static sgd(e){return new Ei(e)}static momentum(e,t,s=!1){return new So(e,t,s)}static rmsprop(e,t=.9,s=0,n=null,i=!1){return new vo(e,t,s,n,i)}static adam(e=.001,t=.9,s=.999,n=null){return new xo(e,t,s,n)}static adadelta(e=.001,t=.95,s=null){return new bo(e,t,s)}static adamax(e=.002,t=.9,s=.999,n=null,i=0){return new Lo(e,t,s,n,i)}static adagrad(e,t=.1){return new wo(e,t)}}So,Ei,bo,wo,vo,Lo,xo;const hr={sgd:ur.sgd,momentum:ur.momentum,adadelta:ur.adadelta,adagrad:ur.adagrad,rmsprop:ur.rmsprop,adamax:ur.adamax,adam:ur.adam};const nM=(()=>typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:e=>e())();function Kp(){return new Promise(e=>nM(()=>e()))}function iM(e,t,s){const n=s*(typeof e=="number"?e:e[0]),i=t*(typeof e=="number"?e:e[1]);return[n,i]}function rM(e,t,s,n=!0){let i=[];if(n)i=i.concat(t.slice(0)),i.push(e[0]/s),i=i.concat(e.slice(1));else{i=i.concat(e[0]);const r=t.length;for(let o=0;o=t*2+1||o%2===1?r.push(o):i.push(o);n.push(...i),n.push(0),n.push(...r)}return n}function aM(e,t,s,n=!0){const i=[];n?i.push(e[0]/s):i.push(e[0]*s);for(let r=1;ruM,ERF_A2:()=>hM,ERF_A3:()=>dM,ERF_A4:()=>mM,ERF_A5:()=>fM,ERF_P:()=>pM,PARALLELIZE_THRESHOLD:()=>Fh,SELU_SCALE:()=>vb,SELU_SCALEALPHA:()=>Sb,applyActivation:()=>fo,assertAndGetBroadcastShape:()=>Se,assertAxesAreInnerMostDims:()=>F1,assertParamsConsistent:()=>vy,assignToTypedArray:()=>vM,axesAreInnerMostDims:()=>by,calculateShapes:()=>PS,castTensor:()=>AM,combineLocations:()=>dS,complexWithEvenIndex:()=>xM,complexWithOddIndex:()=>LM,computeConv2DInfo:()=>is,computeConv3DInfo:()=>rr,computeDefaultPad:()=>Ly,computeDilation2DInfo:()=>Y1,computeOptimalWindowSize:()=>dk,computeOutAndReduceShapes:()=>wy,computeOutShape:()=>Ty,computePool2DInfo:()=>Tn,computePool3DInfo:()=>bi,convertConv2DDataFormat:()=>ir,eitherStridesOrDilationsAreOne:()=>et,expandShapeToKeepDim:()=>ft,exponent:()=>IM,exponents:()=>TM,getAxesPermutation:()=>ut,getBroadcastDims:()=>ZE,getComplexWithIndex:()=>SM,getFusedBiasGradient:()=>mo,getFusedDyActivation:()=>ho,getImageCenter:()=>iM,getInnerMostAxes:()=>Gt,getPermuted:()=>oM,getReductionAxes:()=>Ke,getReshaped:()=>rM,getReshapedPermuted:()=>aM,getSliceBeginCoords:()=>lM,getSliceSize:()=>cM,getUndoAxesPermutation:()=>Pr,linspaceImpl:()=>CM,log:()=>yM,mergeRealAndImagArrays:()=>bM,prepareAndValidate:()=>_v,prepareSplitSize:()=>ob,reshapeTensor:()=>NM,segment_util:()=>bS,shouldFuse:()=>go,splitRealAndImagArrays:()=>wM,tupleValuesAreOne:()=>Bs,upcastType:()=>wt,validateInput:()=>zh,validateUpdateShape:()=>cb,warn:()=>gM});function AM(e,t,s){if(t==="complex64"){if(e.dtype==="complex64")return e.clone();const n=Ie(e.shape),i=K(e,"float32"),r=s.complex(i,n);return n.dispose(),i.dispose(),r}if(!oy(e.dtype,t))return T.makeTensorFromDataId(e.dataId,e.shape,t);if(e.dtype==="complex64"){const n=s.real(e),i=K(n,t);return n.dispose(),i}if(t==="int32")return s.int(e);if(t==="bool"){const n=j(0,e.dtype),i=s.notEqual(e,n);return n.dispose(),i}else throw new Error(`Error in Cast: failed to cast ${e.dtype} to ${t}`)}function NM(e,t){return T.makeTensorFromDataId(e.dataId,t,e.dtype)}function CM(e,t,s){const n=(t-e)/(s-1),i=Yn(s,"float32");i[0]=e;for(let r=1;r{const o=[...i];o[s]=r;const a=he(e,n,o);return n[s]+=r,a})}function Fv(e,t){const s=new Array(e.rank);for(let i=0;ix.value-S.value);const f=u*n,y=l.subarray(f,f+n),b=c.subarray(f,f+n);for(let S=0;SKh,nonMaxSuppressionV4Impl:()=>Xh,nonMaxSuppressionV5Impl:()=>Jh,split:()=>Dv,tile:()=>Fv,topkImpl:()=>Mv,whereImpl:()=>Wh});const RM=1e-7,OM=1e-4;class Xp{constructor(e,t){this.backend=e,this.dataMover=t,this.data=new WeakMap(),this.dataIdsCount=0}get(e){return this.data.has(e)||this.dataMover.moveData(this.backend,e),this.data.get(e)}set(e,t){this.dataIdsCount++,this.data.set(e,t)}has(e){return this.data.has(e)}delete(e){return this.dataIdsCount--,this.data.delete(e)}numDataIds(){return this.dataIdsCount}}class Jp{time(e){return z("time")}read(e){return z("read")}readSync(e){return z("readSync")}numDataIds(){return z("numDataIds")}disposeData(e){return z("disposeData")}write(e,t,s){return z("write")}move(e,t,s,n){return z("move")}memory(){return z("memory")}floatPrecision(){return z("floatPrecision")}epsilon(){return this.floatPrecision()===32?RM:OM}batchMatMul(e,t,s,n){return z("batchMatMul")}fusedBatchMatMul({a:e,b:t,transposeA:s,transposeB:n,bias:i,activation:r,preluActivationWeights:o}){return z("fusedBatchMatMul")}slice(e,t,s){return z("slice")}stridedSlice(e,t,s,n){return z("stridedSlice")}unstack(e,t){return z("unstack")}reverse(e,t){return z("reverse")}concat(e,t){return z("concat")}neg(e){return z("neg")}add(e,t){return z("add")}addN(e){return z("addN")}subtract(e,t){return z("subtract")}multiply(e,t){return z("multiply")}realDivide(e,t){return z("realDivide")}floorDiv(e,t){return z("floorDiv")}sum(e,t){return z("sum")}prod(e,t){return z("prod")}unsortedSegmentSum(e,t,s){return z("unsortedSegmentSum")}argMin(e,t){return z("argMin")}argMax(e,t){return z("argMax")}equal(e,t){return z("equal")}notEqual(e,t){return z("notEqual")}less(e,t){return z("less")}lessEqual(e,t){return z("lessEqual")}greater(e,t){return z("greater")}greaterEqual(e,t){return z("greaterEqual")}logicalNot(e){return z("logicalNot")}logicalAnd(e,t){return z("logicalAnd")}logicalOr(e,t){return z("logicalOr")}where(e){return z("where")}select(e,t,s){return z("select")}topk(e,t,s){return z("topk")}min(e,t){return z("min")}minimum(e,t){return z("minimum")}mod(e,t){return z("mod")}max(e,t){return z("max")}maximum(e,t){return z("maximum")}all(e,t){return z("all")}any(e,t){return z("any")}squaredDifference(e,t){return z("squaredDifference")}ceil(e){return z("ceil")}floor(e){return z("floor")}round(e){return z("round")}sign(e){return z("sign")}isNaN(e){return z("isNaN")}isInf(e){return z("isInf")}isFinite(e){return z("isFinite")}pow(e,t){return z("pow")}exp(e){return z("exp")}expm1(e){return z("expm1")}softmax(e,t){return z("softmax")}log(e){return z("log")}log1p(e){return z("log1p")}sqrt(e){return z("sqrt")}rsqrt(e){return z("rsqrt")}square(e){return z("square")}reciprocal(e){return z("reciprocal")}relu(e){return z("relu")}relu6(e){return z("relu6")}prelu(e,t){return z("prelu")}elu(e){return z("elu")}eluDer(e,t){return z("eluDer")}selu(e){return z("selu")}int(e){return z("int")}clip(e,t,s){return z("clip")}abs(e){return z("abs")}complexAbs(e){return z("complexAbs")}sigmoid(e){return z("sigmoid")}softplus(e){return z("softplus")}sin(e){return z("sin")}cos(e){return z("cos")}tan(e){return z("tan")}asin(e){return z("asin")}acos(e){return z("acos")}atan(e){return z("atan")}atan2(e,t){return z("atan2")}sinh(e){return z("sinh")}cosh(e){return z("cosh")}tanh(e){return z("tanh")}asinh(e){return z("asinh")}acosh(e){return z("acosh")}atanh(e){return z("atanh")}erf(e){return z("erf")}step(e,t){return z("step")}fusedConv2d({input:e,filter:t,convInfo:s,bias:n,activation:i,preluActivationWeights:r}){return z("fusedConv2d")}conv2d(e,t,s){return z("conv2d")}conv2dDerInput(e,t,s){return z("conv2dDerInput")}conv2dDerFilter(e,t,s){return z("conv2dDerFilter")}fusedDepthwiseConv2D({input:e,filter:t,convInfo:s,bias:n,activation:i,preluActivationWeights:r}){return z("fusedDepthwiseConv2D")}depthwiseConv2D(e,t,s){return z("depthwiseConv2D")}depthwiseConv2DDerInput(e,t,s){return z("depthwiseConv2DDerInput")}depthwiseConv2DDerFilter(e,t,s){return z("depthwiseConv2DDerFilter")}conv3d(e,t,s){return z("conv3d")}conv3dDerInput(e,t,s){return z("conv3dDerInput")}conv3dDerFilter(e,t,s){return z("conv3dDerFilter")}maxPool(e,t){return z("maxPool")}maxPoolBackprop(e,t,s,n){return z("maxPoolBackprop")}avgPool(e,t){return z("avgPool")}avgPoolBackprop(e,t,s){return z("avgPoolBackprop")}avgPool3d(e,t){return z("avgPool3d")}avgPool3dBackprop(e,t,s){return z("avgPool3dBackprop")}maxPool3d(e,t){return z("maxPool3d")}maxPool3dBackprop(e,t,s,n){return z("maxPool3dBackprop")}reshape(e,t){return z("reshape")}cast(e,t){return z("cast")}tile(e,t){return z("tile")}pad(e,t,s){return z("pad")}transpose(e,t){return z("transpose")}gather(e,t,s){return z("gather")}gatherND(e,t){return z("gatherND")}scatterND(e,t,s){return z("scatterND")}batchToSpaceND(e,t,s){return z("batchToSpaceND")}spaceToBatchND(e,t,s){return z("spaceToBatchND")}resizeBilinear(e,t,s,n){return z("resizeBilinear")}resizeBilinearBackprop(e,t,s){return z("resizeBilinearBackprop")}resizeNearestNeighbor(e,t,s,n){return z("resizeNearestNeighbor")}resizeNearestNeighborBackprop(e,t,s){return z("resizeNearestNeighborBackprop")}batchNorm(e,t,s,n,i,r){return z("batchNorm")}localResponseNormalization4D(e,t,s,n,i){return z("localResponseNormalization4D")}LRNGrad(e,t,s,n,i,r,o){return z("LRNGrad")}multinomial(e,t,s,n){return z("multinomial")}oneHot(e,t,s,n){return z("oneHot")}cumsum(e,t,s,n){return z("cumsum")}nonMaxSuppression(e,t,s,n,i){return z("nonMaxSuppression")}fft(e){return z("fft")}ifft(e){return z("ifft")}complex(e,t){return z("complex")}real(e){return z("real")}imag(e){return z("imag")}cropAndResize(e,t,s,n,i,r){return z("cropAndResize")}depthToSpace(e,t,s){return z("depthToSpace")}split(e,t,s){return z("split")}sparseToDense(e,t,s,n){return z("sparseToDense")}diag(e){return z("diag")}fill(e,t,s){return z("fill")}onesLike(e){return z("onesLike")}zerosLike(e){return z("zerosLike")}linspace(e,t,s){return z("linspace")}dispose(){return z("dispose")}}function z(e){throw new Error(`'${e}' not yet implemented or not found in the registry. Did you forget to import the kernel?`)}const Uv={kernelName:dl,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>C(e,kn(K(s,"float32"),-1))}}};const $v={kernelName:ml,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>{const n=ye(K(s,"float32")),i=He(X(j(1),n));return Oe(J(e,i))}}}};const Wv={kernelName:fl,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>{const n=He(X(ye(K(s,"float32")),1));return J(e,n)}}}};const zv={kernelName:Er,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[s,n]=t,i=Se(s.shape,n.shape),r=()=>{let a=e;const l=Ke(s.shape,i);return l.length>0&&(a=te(a,l)),O(a,s.shape)},o=()=>{let a=e;const l=Ke(n.shape,i);return l.length>0&&(a=te(a,l)),O(a,n.shape)};return{a:r,b:o}}};const Bv={kernelName:gl,saveAllInputs:!0,gradFunc:(e,t)=>{const s={};return t.forEach((n,i)=>{s[i]=()=>e.clone()}),s}};const Pv={kernelName:yl,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>ne(s)}}};const jv={kernelName:bl,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>ne(s)}}};const Vv={kernelName:wl,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>J(e,He(X(j(1),ye(K(s,"float32")))))}}};const Gv={kernelName:xl,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>{const n=He(W(j(1),ye(K(s,"float32"))));return J(e,n)}}}};const Hv={kernelName:vl,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[s,n]=t,i=Se(s.shape,n.shape),r=()=>{const a=W(ye(s),ye(n));let l=C(e,J(n,a));const c=Ke(s.shape,i);return c.length>0&&(l=te(l,c)),O(l,s.shape)},o=()=>{const a=W(ye(s),ye(n));let l=Oe(C(e,J(s,a)));const c=Ke(n.shape,i);return c.length>0&&(l=te(l,c)),O(l,n.shape)};return{a:r,b:o}}};const qv={kernelName:Ll,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>J(e,W(ye(K(s,"float32")),1))}}};const Yv={kernelName:Sl,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>J(e,X(j(1),ye(K(s,"float32"))))}}};function EM(e,t,s,n,i=[1,1,1],r,o){const a=g(e,"dy","avgPool3dBackprop"),l=g(t,"input","avgPool3dBackprop");let c=a,p=l,u=!1;l.rank===4&&(u=!0,c=O(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]]),p=O(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]])),v(c.rank===5,()=>`Error in avgPool3dBackprop: dy must be rank 5 but got rank ${c.rank}.`),v(p.rank===5,()=>`Error in avgPool3dBackprop: input must be rank 5 but got rank ${p.rank}.`),v(et(n,i),()=>`Error in avgPool3dBackprop: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`),o!=null&&v(De(r),()=>`Error in maxPool3dBackprop: pad must be an integer when using, dimRoundingMode ${o} but got pad ${r}.`);const h=y=>{const b=bi(p.shape,s,n,i,r,o);return y.avgPool3dBackprop(c,p,b)},d={dy:c,input:p},m={filterSize:s,strides:n,dilations:i,pad:r,dimRoundingMode:o},f=T.runKernelFunc(h,d,null,yg,m);return u?O(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}const Kv=L({avgPool3dBackprop_:EM});const Xv={kernelName:Il,inputsToSave:["x"],gradFunc:(e,t,s)=>{const[n]=t,{filterSize:i,strides:r,dilations:o,pad:a,dimRoundingMode:l}=s,c=o==null?[1,1,1]:o;return{x:()=>Kv(e,n,i,r,c,a,l)}}};function kM(e,t,s,n,i){const r=g(e,"dy","avgPoolBackprop"),o=g(t,"input","avgPoolBackprop");v(o.rank===r.rank,()=>`Rank of input (${o.rank}) does not match rank of dy (${r.rank})`);let a=o,l=r,c=!1;o.rank===3&&(c=!0,a=O(o,[1,o.shape[0],o.shape[1],o.shape[2]]),l=O(r,[1,r.shape[0],r.shape[1],r.shape[2]])),v(l.rank===4,()=>`Error in avgPoolBackprop: dy must be rank 4 but got rank ${l.rank}.`),v(a.rank===4,()=>`Error in avgPoolBackprop: input must be rank 4 but got rank ${a.rank}.`);const p=m=>{const f=Tn(a.shape,s,n,1,i);return m.avgPoolBackprop(l,a,f)},u={dy:l,input:a},h={filterSize:s,strides:n,pad:i},d=T.runKernelFunc(p,u,null,gg,h);return c?O(d,[d.shape[1],d.shape[2],d.shape[3]]):d}const Jv=L({avgPoolBackprop_:kM});const Zv={kernelName:Tl,inputsToSave:["x"],gradFunc:(e,t,s)=>{const[n]=t,{filterSize:i,strides:r,pad:o}=s;return{x:()=>Jv(e,n,i,r,o)}}};const Qv={kernelName:Al,inputsToSave:["a","b"],gradFunc:(e,t,s)=>{const[n,i]=t,{transposeA:r,transposeB:o}=s;return!r&&!o?{a:()=>Le(e,i,!1,!0),b:()=>Le(n,e,!0,!1)}:!r&&o?{a:()=>Le(e,i,!1,!1),b:()=>Le(e,n,!0,!1)}:r&&!o?{a:()=>Le(i,e,!1,!0),b:()=>Le(n,e,!1,!1)}:{a:()=>Le(i,e,!0,!0),b:()=>Le(e,n,!0,!0)}}};const eT={kernelName:Nl,gradFunc:(e,t,s)=>{const{blockShape:n,crops:i}=s;return{x:()=>Ti(e,n,i)}}};const tT={kernelName:Cl,gradFunc:(e,t,s)=>{const n=s,i=n.inputShape,r=n.shape,o=Array.from(r);for(let l=i.length-1;l>=0;l--)if(i[l]===r[l])o[l]=1;else if(i[l]!==1)throw new Error(`broadcastTo(): [${i}] cannot be broadcast to [${r}].`);const a=[];for(let l=0;l1&&a.push(l);return{x:()=>te(e,a,!0)}}};const sT={kernelName:kr,gradFunc:e=>({x:()=>e.clone()})};const nT={kernelName:Rl,gradFunc:e=>({x:()=>ne(e)})};const iT={kernelName:Ol,inputsToSave:["x"],gradFunc:(e,t,s)=>{const[n]=t,{clipValueMin:i,clipValueMax:r}=s;return{x:()=>at(zt(as(n,i),vs(n,r)),e,ne(e))}}};const rT={kernelName:El,saveAllInputs:!0,gradFunc:(e,t,s)=>{const n=t.map(l=>l.shape),{axis:i}=s,r=Te(i,t[0].shape)[0],o=n.map(l=>l[r]),a=ls(e,o,r);return a.map(l=>()=>l)}};const oT={kernelName:kl,inputsToSave:["x","filter"],gradFunc:(e,t,s)=>{const[n,i]=t,{dilations:r,strides:o,pad:a,dataFormat:l}=s;return v(Bs(r),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${r}'`),{x:()=>ua(n.shape,e,i,o,a,l),filter:()=>ya(n,e,i.shape,o,a,l)}}};const aT={kernelName:_l,inputsToSave:["dy","filter"],gradFunc:(e,t,s)=>{const[n,i]=t,{strides:r,pad:o,dataFormat:a,dimRoundingMode:l}=s;return{dy:()=>yt(e,i,r,o,a,1,l),filter:()=>ya(e,n,i.shape,r,o,a,l)}}};function _M(e,t,s,n,i){let r=e;e.rank===4&&(r=O(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]]));let o=t;o.rank===4&&(o=O(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]])),v(r.rank===5,()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${r.shape}.`),v(o.rank===5,()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${o.shape}.`),v(s.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${s}.`),v(r.shape[4]===s[3],()=>`Error in conv3dDerFilter: depth of input ${r.shape[4]}) must match input depth in filter (${s[3]}.`),v(o.shape[4]===s[4],()=>`Error in conv3dDerFilter: depth of dy (${o.shape[4]}) must match output depth for filter (${s[4]}).`);const a=p=>{const u=1,h=rr(r.shape,s,n,u,i);return p.conv3dDerFilter(r,o,h)},l={x:r,y:o},c={strides:n,pad:i};return T.runKernelFunc(a,l,null,xg,c)}const lT=L({conv3DBackpropFilter_:_M});const cT={kernelName:Dl,inputsToSave:["x","filter"],gradFunc:(e,t,s)=>{const{dilations:n,strides:i,pad:r}=s;v(Bs(n),()=>`Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${n}'`);const[o,a]=t;return{x:()=>Dh(o.shape,e,a,i,r),filter:()=>lT(o,e,a.shape,i,r)}}};const pT={kernelName:Fl,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>C(Oe(lo(K(s,"float32"))),e)}}};const uT={kernelName:Ml,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>C(co(K(s,"float32")),e)}}};const hT={kernelName:Ul,inputsToSave:["x"],gradFunc:(e,t,s)=>{const[n]=t,{axis:i,exclusive:r,reverse:o}=s;return{x:()=>{const a=ut([i],n.rank);let l=Xr(e,i,r,!o);return a!=null&&(l=se(l,a)),l}}}};const dT={kernelName:$l,inputsToSave:["x","filter"],gradFunc:(e,t,s)=>{const{dilations:n,strides:i,pad:r,dimRoundingMode:o}=s,a=n==null?[1,1]:n;v(Bs(a),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${a}'`);const[l,c]=t;v(l.rank===4,()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${l.rank}.`),v(c.rank===4,()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${c.rank}.`),v(l.shape[3]===c.shape[2],()=>`Error in gradient of depthwiseConv2d: number of input channels (${l.shape[3]}) must match the inChannels dimension in filter ${c.shape[2]}.`),v(et(i,a),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${a}'.`),o!=null&&v(De(r),()=>`Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode ${o} but got pad ${r}.`);const p=is(l.shape,c.shape,i,a,r,o,!0);return{x:()=>Hh(l.shape,e,c,p),filter:()=>Gh(l,e,c.shape,p)}}};const mT={kernelName:_r,inputsToSave:["x","filter"],gradFunc:(e,t,s)=>{const[n,i]=t,r={x:n,filter:i,dy:e},o={x:n,filter:i,dy:e};return{x:()=>T.runKernel(Qo,r,s),filter:()=>T.runKernel(ea,o,s)}}};const fT={kernelName:ui,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[s,n]=t,i=Se(s.shape,n.shape),r=()=>{const a=J(e,K(n,"float32")),l=Ke(s.shape,i);return l.length>0?O(te(a,l),s.shape):a},o=()=>{let a=C(e,K(s,"float32"));const l=Ke(n.shape,i);l.length>0&&(a=O(te(a,l),n.shape));const c=ye(n);return Oe(J(a,K(c,"float32")))};return{a:r,b:o}}};const gT={kernelName:Wl,outputsToSave:[!0],gradFunc:(e,t)=>{const[s]=t,n=r=>r.eluDer(e,s),i={dy:e,y:s};return{x:()=>T.runKernelFunc(n,i,null,Ng)}}};const yT={kernelName:zl,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t,n=C(At(Oe(ye(s))),2/Math.sqrt(Math.PI));return{x:()=>C(e,n)}}};const bT={kernelName:Bl,outputsToSave:[!0],gradFunc:(e,t)=>{const[s]=t;return{x:()=>C(e,s)}}};const wT={kernelName:Pl,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>C(e,At(s))}}};const xT={kernelName:jl,gradFunc:e=>({x:()=>ne(e)})};const LT={kernelName:Vl,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[s,n]=t,i=Se(s.shape,n.shape),r=()=>{const a=J(e,K(n,"float32")),l=Ke(s.shape,i);return l.length>0?O(te(a,l),s.shape):a},o=()=>{let a=C(e,K(s,"float32"));const l=Ke(n.shape,i);l.length>0&&(a=O(te(a,l),n.shape));const c=ye(n);return Oe(J(a,K(c,"float32")))};return{a:r,b:o}}};const ST={kernelName:Gl,inputsToSave:["x","mean","variance","scale"],gradFunc:(e,t,s)=>{const{varianceEpsilon:n}=s,[i,r,o,a]=t,l=a==null?j(1):a,c=Ke(r.shape,i.shape),p=[];if(r.rank===1){for(let I=0;Ir.rank===1?O(C(C(e,js(O(d,[1,1,1,r.shape[0]]),p)),l),i.shape):O(C(C(e,d),l),i.shape),y=()=>{let I=C(C(d,j(-1)),h);return r.rank===1&&(I=te(I,c)),O(I,r.shape)},b=()=>{let I=C(C(m,u),h);return r.rank===1&&(I=te(I,c)),O(I,r.shape)},S=()=>{const I=C(u,d);let A=C(e,I);return r.rank===1&&(A=te(A,c)),O(A,r.shape)},x=()=>{let I=e;return r.rank===1&&(I=te(I,c)),O(I,r.shape)};return{x:f,mean:y,variance:b,scale:S,offset:x}}};const IT={kernelName:Hl,inputsToSave:["x","indices"],gradFunc:(e,t,s)=>{const[n,i]=t,{axis:r}=s,o=Te(r,n.shape)[0],a=()=>{const l=n.shape,c=i.size,p=l.slice(0,o),u=p.length,h=l.slice(r,l.length).slice(1),d=h.length,m=vT(0,u),f=vT(u+1,u+1+d),y=TT([p,[c],h]),b=O(e,y),S=O(i,[c]),x=TT([[u],m,f]),I=se(b,x);let A=Vp(I,S,n.shape[o]);const k=Pr(x);return A=se(A,k),A};return{x:a,indices:()=>i}}};function vT(e,t){const s=[];for(let n=e;n{const[s,n]=t;return{a:()=>ne(s),b:()=>ne(n)}}};const NT={kernelName:Yl,gradFunc:e=>({x:()=>K(e,"float32")})};const CT={kernelName:Kl,gradFunc:e=>({x:()=>ne(e)})};const RT={kernelName:Xl,gradFunc:e=>({x:()=>ne(e)})};const OT={kernelName:Jl,gradFunc:e=>({x:()=>ne(e)})};const ET={kernelName:Ql,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>J(e,W(s,1))}}};const kT={kernelName:Zl,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>J(e,K(s,"float32"))}}};const _T={kernelName:ec,inputsToSave:[],outputsToSave:[!0],gradFunc:(e,t,s)=>{const[n]=t,{axis:i}=s;return{logits:()=>{const r=!0,o=At(n);return X(e,C(te(e,i,r),o))}}}};function DM(e,t,s,n=5,i=1,r=1,o=.5){const a=p=>p.LRNGrad(s,e,t,n,i,r,o),l={x:e,y:t,dy:s},c={depthRadius:n,bias:i,alpha:r,beta:o};return T.runKernelFunc(a,l,null,Bg,c)}const DT=L({localResponseNormalizationBackprop_:DM});const FT={kernelName:tc,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,s)=>{const[n,i]=t,{depthRadius:r,bias:o,alpha:a,beta:l}=s;return{x:()=>DT(n,i,e,r,o,a,l)}}};function td(e,t,s,n,i){return t.rank{const r=C(e,K(Qt(s,t),e.dtype));return i==null?r:se(r,i)}}}const Tb={kernelName:hi,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,s)=>{const n=s,{reductionIndices:i}=n,[r,o]=t,a=Te(i,r.shape),l=ut(a,r.rank),c=td(e,o,r,a,l);return{x:()=>{let p=c.x();return l!=null&&(p=se(p)),p}}}};const MT={kernelName:sc,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[s,n]=t,i=()=>C(e,K(as(s,n),"float32")),r=()=>C(e,K(Si(s,n),"float32"));return{a:i,b:r}}};function FM(e,t,s,n,i,r=[1,1,1],o,a){const l=g(e,"dy","maxPool3dBackprop"),c=g(t,"input","maxPool3dBackprop"),p=g(s,"output","maxPool3dBackprop");let u=l,h=c,d=p,m=!1;c.rank===4&&(m=!0,u=O(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]]),h=O(c,[1,c.shape[0],c.shape[1],c.shape[2],c.shape[3]]),d=O(p,[1,p.shape[0],p.shape[1],p.shape[2],p.shape[3]])),v(u.rank===5,()=>`Error in maxPool3dBackprop: dy must be rank 5 but got rank ${u.rank}.`),v(h.rank===5,()=>`Error in maxPool3dBackprop: input must be rank 5 but got rank ${h.rank}.`),v(d.rank===5,()=>`Error in maxPool3dBackprop: output must be rank 5 but got rank ${d.rank}.`),v(et(i,r),()=>`Error in maxPool3dBackprop: Either strides or dilations must be 1. Got strides ${i} and dilations '${r}'`),a!=null&&v(De(o),()=>`Error in maxPool3dBackprop: pad must be an integer when using, dimRoundingMode ${a} but got pad ${o}.`);const f=x=>{const I=bi(h.shape,n,i,r,o,a);return x.maxPool3dBackprop(u,h,d,I)},y={dy:u,input:h,output:d},b={filterSize:n,strides:i,dilations:r,pad:o,dimRoundingMode:a},S=T.runKernelFunc(f,y,null,jg,b);return m?O(S,[S.shape[1],S.shape[2],S.shape[3],S.shape[4]]):S}const UT=L({maxPool3dBackprop_:FM});const $T={kernelName:ic,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,s)=>{const[n,i]=t,{filterSize:r,strides:o,dilations:a,pad:l,dimRoundingMode:c}=s,p=a==null?[1,1,1]:a;return{x:()=>UT(e,n,i,r,o,p,l,c)}}};function MM(e,t,s,n,i,r,o){const a=g(e,"dy","maxPoolBackprop"),l=g(t,"input","maxPoolBackprop"),c=g(s,"output","maxPoolBackprop");v(l.rank===a.rank,()=>`Rank of input (${l.rank}) does not match rank of dy (${a.rank})`),v(a.rank===4,()=>`Error in maxPoolBackprop: dy must be rank 4 but got rank ${a.rank}.`),v(l.rank===4,()=>`Error in maxPoolBackprop: input must be rank 4 but got rank ${l.rank}.`),o!=null&&v(De(r),()=>`Error in maxPoolBackprop: pad must be an integer when using, dimRoundingMode ${o} but got pad ${r}.`);const p=d=>{const m=Tn(l.shape,n,i,1,r,o);return d.maxPoolBackprop(a,l,c,m)},u={dy:a,input:l,output:c},h={filterSize:n,strides:i,pad:r,dimRoundingMode:o};return T.runKernelFunc(p,u,null,Pg,h)}const WT=L({maxPoolBackprop_:MM});const zT={kernelName:nc,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,s)=>{const[n,i]=t,{filterSize:r,strides:o,pad:a}=s;return{x:()=>WT(e,n,i,r,o,a)}}};const BT={kernelName:rc,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,s)=>{const n=s,{axis:i}=n,[r,o]=t,a=Te(i,r.shape),l=ut(a,r.rank),c=td(e,o,r,a,l);return{x:()=>{let p=c.x();return l!=null&&(p=se(p)),p}}}};const PT={kernelName:oc,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[s,n]=t,i=()=>C(e,K(vs(s,n),"float32")),r=()=>C(e,K(Ct(s,n),"float32"));return{a:i,b:r}}};const jT={kernelName:ac,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[s,n]=t,i=Se(s.shape,n.shape),r=()=>{const a=Ke(s.shape,i);return a.length>0?O(te(e,a),s.shape):e},o=()=>{const a=C(e,Oe(Nn(J(s,n)))),l=Ke(n.shape,i);return l.length>0?O(te(a,l),n.shape):a};return{a:r,b:o}}};const VT={kernelName:lc,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[s,n]=t,i=Se(s.shape,n.shape),r=()=>{const a=C(e,K(n,"float32")),l=Ke(s.shape,i);return l.length>0?O(te(a,l),s.shape):a},o=()=>{const a=C(e,K(s,"float32")),l=Ke(n.shape,i);return l.length>0?O(te(a,l),n.shape):a};return{a:r,b:o}}};const GT={kernelName:cc,gradFunc:e=>({x:()=>Oe(e)})};const HT={kernelName:hc,inputsToSave:["indices"],gradFunc:(e,t)=>{const s=t[0];return{indices:()=>Ie(s.shape,"float32")}}};const qT={kernelName:uc,gradFunc:e=>({x:()=>ne(e)})};const Ib={kernelName:dc,inputsToSave:["x"],gradFunc:(e,t,s)=>{const n=t[0],{paddings:i}=s,r=i.map(o=>o[0]);return{x:()=>he(e,r,n.shape)}}};const YT={kernelName:mc,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(e,t)=>{const[s,n,i]=t,r=s,o=n,a=Se(r.shape,o.shape),l=()=>{const p=K(o,"float32");let u=C(e,C(p,qt(r,X(p,j(1)))));const h=Ke(r.shape,a);return h.length>0&&(u=te(u,h)),O(u,r.shape)},c=()=>{const p=Ct(r,0),u=at(p,Mt(r),ne(r));let h=C(e,C(i,u));const d=Ke(o.shape,a);return d.length>0&&(h=te(h,d)),O(h,o.shape)};return{a:l,b:c}}};const KT={kernelName:fc,inputsToSave:["x","alpha"],gradFunc:(e,t)=>{const[s,n]=t,i=Ct(s,0);return{x:()=>at(i,e,C(e,n)),alpha:()=>{let r=at(i,ne(e),C(e,s));const o=Ke(n.shape,e.shape);return o.length>0&&(r=te(r,o)),O(r,n.shape)}}}};const XT={kernelName:gc,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>J(e,Oe(ye(s)))}}};const JT={kernelName:Lc,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t,n=C(vs(s,6),kn(s));return{x:()=>C(e,K(n,"float32"))}}};const ZT={kernelName:yc,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>C(e,K(kn(s),"float32"))}}};const QT={kernelName:bc,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>O(e,s.shape)}}};const eI={kernelName:xc,inputsToSave:["images"],gradFunc:(e,t,s)=>{const[n]=t,i=a=>{const{alignCorners:l}=s;return a.resizeBilinearBackprop(e,n,l)},r={images:n},o=()=>T.runKernelFunc(i,r,null,Kg,s);return{images:o}}};const tI={kernelName:wc,inputsToSave:["images"],gradFunc:(e,t,s)=>{const[n]=t,i=a=>{const{alignCorners:l}=s;return a.resizeNearestNeighborBackprop(e,n,l)},r={images:n},o=()=>T.runKernelFunc(i,r,null,Yg,s);return{images:o}}};const sI={kernelName:Sc,gradFunc:(e,t,s)=>{const{dims:n}=s,i=Te(n,e.shape);return{x:()=>Lt(e,i)}}};const nI={kernelName:vc,gradFunc:e=>({x:()=>ne(e)})};const iI={kernelName:Tc,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>Oe(J(e,C(qt(s,1.5),2)))}}};const rI={kernelName:Ic,inputsToSave:["condition"],gradFunc:(e,t)=>{const[s]=t;return{condition:()=>K(ne(s),"float32"),t:()=>C(e,K(s,e.dtype)),e:()=>C(e,K(vi(s),e.dtype))}}};const oI={kernelName:Ac,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>{const n=Ct(s,j(0)),i=j(Sb),r=j(vb),o=C(e,r),a=C(C(e,i),At(K(s,"float32")));return at(n,o,a)}}}};const aI={kernelName:Ec,outputsToSave:[!0],gradFunc:(e,t)=>{const[s]=t;return{x:()=>C(e,C(s,X(j(1),s)))}}};const lI={kernelName:Oc,gradFunc:e=>({x:()=>ne(e)})};const cI={kernelName:Cc,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>C(xi(K(s,"float32")),e)}}};const pI={kernelName:Rc,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>C(Kr(K(s,"float32")),e)}}};const uI={kernelName:Nc,inputsToSave:["x"],gradFunc:(e,t,s)=>{const[n]=t,{begin:i,size:r}=s,o=n.shape,[a,l]=fp(n,i,r),c=[];for(let p=0;pUt(e,c)}}};const hI={kernelName:Uc,outputsToSave:[!0],gradFunc:(e,t,s)=>{const[n]=t,{dim:i}=s,r=!0,o=C(e,n);return{logits:()=>X(o,C(te(o,[i],r),n))}}};const dI={kernelName:kc,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>C(e,Ss(s))}}};const Ab={kernelName:Fc,gradFunc:(e,t,s)=>{const{blockShape:n,paddings:i}=s;return{x:()=>wi(e,n,i)}}};const Nb={kernelName:Mc,gradFunc:(e,t,s)=>{const{axis:n}=s;return{x:()=>ge(e,n)}}};const mI={kernelName:_c,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>J(e,C(He(K(s,"float32")),2))}}};const fI={kernelName:$r,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>C(e,C(K(s,"float32"),2))}}};const gI={kernelName:di,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[s,n]=t,i=j(2),r=()=>C(e,C(i,X(s,n))),o=()=>C(e,C(i,X(n,s)));return{a:r,b:o}}};const yI={kernelName:Gc,gradFunc:e=>({x:()=>ne(e)})};const bI={kernelName:$c,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[s,n]=t,i=Se(s.shape,n.shape),r=()=>{let a=e;const l=Ke(s.shape,i);return l.length>0&&(a=te(a,l)),O(a,s.shape)},o=()=>{let a=e;const l=Ke(n.shape,i);return l.length>0&&(a=te(a,l)),O(Oe(a),n.shape)};return{a:r,b:o}}};const wI={kernelName:Dc,inputsToSave:["x"],gradFunc:(e,t,s)=>{const[n]=t,i=n.shape.slice(),{axis:r}=s,o=Te(r,n.shape);o.forEach(c=>{i[c]=1});const a=O(e,i),l=C(a,es(n.shape,"float32"));return{x:()=>l}}};const xI={kernelName:Wc,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>J(e,ye(xi(s)))}}};const LI={kernelName:zc,outputsToSave:[!0],gradFunc:(e,t)=>{const[s]=t;return{x:()=>C(X(j(1),ye(s)),e)}}};const SI={kernelName:Bc,inputsToSave:["x"],gradFunc:(e,t,s)=>{const[n]=t,{reps:i}=s,r=()=>{let o=ne(n);if(n.rank===1)for(let a=0;a{const n=s,{perm:i}=n,r=Pr(i);return{x:()=>se(e,r)}}};const TI={kernelName:Pc,gradFunc:(e,t,s)=>{const n=s,{axis:i}=n;return{value:()=>Xe(e,i)}}};const II={kernelName:jc,inputsToSave:["segmentIds"],gradFunc:(e,t)=>{const[s]=t,n=()=>UM(e,s);return{x:n}}};function UM(e,t){const s=Wt(t,ne(t)),n=Cn(e,s);let i=as(t,j(0,"int32"));const r=n.rank-i.rank;for(let a=0;a({x:()=>ne(e)})};const $M=[Uv,$v,Wv,zv,Bv,Pv,jv,Vv,Gv,Hv,qv,Yv,Xv,Zv,Qv,eT,tT,sT,nT,iT,rT,aT,oT,cT,pT,uT,hT,dT,mT,fT,gT,yT,bT,wT,LT,xT,ST,IT,AT,NT,CT,RT,OT,ET,kT,_T,FT,Tb,Tb,MT,$T,zT,BT,PT,jT,VT,GT,HT,qT,Ib,Ib,YT,KT,XT,JT,ZT,QT,eI,tI,sI,nI,iI,rI,oI,aI,lI,cI,pI,uI,hI,dI,Ab,Ab,Nb,Nb,mI,gI,fI,yI,bI,wI,xI,LI,SI,vI,TI,II,AI];for(const e of $M)ty(e);let Cb;function vt(){return Cb==null&&(Cb=Sy().epsilon()),Cb}function gs(){return"channelsLast"}class ti extends Error{constructor(e){super(e);Object.setPrototypeOf(this,ti.prototype)}}class Is extends Error{constructor(e){super(e);Object.setPrototypeOf(this,Is.prototype)}}class _ extends Error{constructor(e){super(e);Object.setPrototypeOf(this,_.prototype)}}class ae extends Error{constructor(e){super(e);Object.setPrototypeOf(this,ae.prototype)}}class Rb extends Error{constructor(e){super(e);Object.setPrototypeOf(this,Rb.prototype)}}class WM extends Error{constructor(e){super(e);Object.setPrototypeOf(this,WM.prototype)}}function cn(e,t){if(Array.isArray(e)){let s=[];for(let n=0;ns.toUpperCase())}let un={};function La(e){if(e==null)return null;const t={};return t.className=e.getClassName(),t.config=e.getConfig(),t}function Eb(e){if(e==null||typeof e!="object")return;if(Array.isArray(e))e.forEach(t=>Eb(t));else{const t=Object.keys(e);for(const s of t){const n=e[s];n!=null&&typeof n=="object"&&(!Array.isArray(n)&&n.type==="ndarray"&&typeof n.value=="number"?e[s]=n.value:Eb(n))}}}function si(e,t={},s={},n="object",i=!1){if(typeof e=="string"){const r=e;let o;if(r in s)o=s[r];else if(r in un)o=un[r];else if(o=t[r],o==null)throw new _(`Unknown ${n}: ${e}. This may be due to one of the following reasons: +1. The ${n} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code. +2. The custom ${n} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);return o}else{const r=e;if(r.className==null||r.config==null)throw new _(`${n}: Improper config format: ${JSON.stringify(r)}. +'className' and 'config' must set.`);const o=r.className;let a,l;if(o in s?[a,l]=s[o]:o in un?[a,l]=un.className:o in t&&([a,l]=t[o]),a==null)throw new _(`Unknown ${n}: ${o}. This may be due to one of the following reasons: +1. The ${n} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code. +2. The custom ${n} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);if(l!=null){const c={};for(const d of Object.keys(un))c[d]=un[d];for(const d of Object.keys(s))c[d]=s[d];const p=r.config;p.customObjects=c;const u=Object.assign({},un);for(const d of Object.keys(s))un[d]=s[d];Eb(r.config);const h=l(a,r.config,s,i);return un=Object.assign({},u),h}else{const c=Object.assign({},un);for(const u of Object.keys(s))un[u]=s[u];const p=new a(r.config);return un=Object.assign({},c),p}}}function zM(e,t){return et?1:0}function Zp(e,t){return-1*zM(e,t)}function hn(e){if(e==null)return e;const t=[];for(const s of e)t.indexOf(s)===-1&&t.push(s);return t}function NI(e){if(e==null)throw new _(`Invalid value in obj: ${JSON.stringify(e)}`);for(const t in e)if(e.hasOwnProperty(t))return!1;return!0}function _i(e,t,s){if(s==null)return;if(e.indexOf(s)<0)throw new _(`${s} is not a valid ${t}. Valid values are ${e} or null/undefined.`)}function sd(e,t,s=0,n=Infinity){return qs(s>=0),qs(n>=s),Array.isArray(e)&&e.length>=s&&e.length<=n&&e.every(i=>typeof i===t)}function jt(e,t){Array.isArray(e)?(E.assert(e.length>0,()=>`${t} is unexpectedly an empty array.`),e.forEach((s,n)=>jt(s,`element ${n+1} of ${t}`))):E.assert(Number.isInteger(e)&&e>0,()=>`Expected ${t} to be a positive integer, but got ${CI(e)}.`)}function CI(e){return e===null?"null":Array.isArray(e)?"["+e.map(t=>CI(t)).join(",")+"]":typeof e=="string"?`"${e}"`:`${e}`}function RI(e,t){let s=E.now(),n;const i=(...r)=>{const o=E.now();return o-sHe(te(C(e,e),t,!0)))}class Qp extends P.Serializable{getConfig(){return{}}}class id extends Qp{constructor(e){super();this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return N(()=>{const t=kb(e,this.axis),s=Dt(t,0,this.maxValue);return C(e,J(s,W(vt(),t)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}}id.className="MaxNorm";P.registerClass(id);class rd extends Qp{constructor(e){super();this.defaultAxis=0,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return N(()=>J(e,W(vt(),kb(e,this.axis))))}getConfig(){return{axis:this.axis}}}rd.className="UnitNorm";P.registerClass(rd);class od extends Qp{apply(e){return ke(e)}}od.className="NonNeg";P.registerClass(od);class ad extends Qp{constructor(e){super();this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=e.minValue!=null?e.minValue:this.defaultMinValue,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.rate=e.rate!=null?e.rate:this.defaultRate,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return N(()=>{const t=kb(e,this.axis),s=W(C(this.rate,Dt(t,this.minValue,this.maxValue)),C(1-this.rate,t));return C(e,J(s,W(vt(),t)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}}ad.className="MinMaxNorm";P.registerClass(ad);const OI={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function Be(e){return La(e)}function EI(e,t={}){return si(e,P.SerializationMap.getMap().classNameMap,t,"constraint")}function it(e){if(e==null)return null;if(typeof e=="string"){const t=e in OI?OI[e]:e,s={className:t,config:{}};return EI(s)}else return e instanceof Qp?e:EI(e)}const _b={};Re(_b,{maxNorm:()=>BM,minMaxNorm:()=>VM,nonNeg:()=>jM,unitNorm:()=>PM});function BM(e){return new id(e)}function PM(e){return new rd(e)}function jM(){return new od()}function VM(e){return new ad(e)}const kI=["channelsFirst","channelsLast"],_I=["valid","same","causal"],DI=["max","avg"],FI=["sum","mul","concat","ave"];const Sa=new Map();function dt(e){_i(kI,"DataFormat",e)}function _s(e){_i(_I,"PaddingMode",e)}function Db(e){_i(DI,"PoolMode",e)}const eu=[],MI="/";function Dn(e,t){eu.push(e);try{const s=t();return eu.pop(),s}catch(s){throw eu.pop(),s}}function GM(){return eu.length===0?"":eu.join(MI)+MI}function ld(e){if(!UI(e))throw new Error("Not a valid tensor name: '"+e+"'");return GM()+e}function cd(e){if(!UI(e))throw new Error("Not a valid tensor name: '"+e+"'");Sa.has(e)||Sa.set(e,0);const t=Sa.get(e);if(Sa.set(e,Sa.get(e)+1),t>0){const s=`${e}_${t}`;return Sa.set(s,1),s}else return e}const HM=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function UI(e){return!!e.match(HM)}function $I(e){return e===parseInt(e.toString(),10)}function dn(e,t,s){t==null&&(t=0),s==null&&(s=e.length);let n=1;for(let i=t;i{if(e.shape.length!==2)throw new _(`repeat() expects a rank-2 tensor, but received a rank-${e.shape.length} tensor.`);const s=Fi(e,1);return pd(s,[1,t,1])})}function BI(e){const t=[dn(e.shape)];return e.reshape(t)}function PI(e){if(e.rank<=1)throw new _(`batchFlatten requires a minimum rank of 2. Got rank: ${e.rank}.`);const t=[e.shape[0],dn(e.shape,1)];return e.reshape(t)}function Mi(e,t,s){return N(()=>{switch(e.rank){case 1:return po(e,t,s);case 2:return da(e,[t,0],[s,e.shape[1]]);case 3:return Ci(e,[t,0,0],[s,e.shape[1],e.shape[2]]);case 4:return cr(e,[t,0,0,0],[s,e.shape[1],e.shape[2],e.shape[3]]);case 5:return he(e,[t,0,0,0,0],[s,e.shape[1],e.shape[2],e.shape[3],e.shape[4]]);case 6:return he(e,[t,0,0,0,0,0],[s,e.shape[1],e.shape[2],e.shape[3],e.shape[4],e.shape[5]]);default:throw new _(`sliceAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}})}function Fb(e,t,s){return N(()=>{switch(e.rank){case 1:return po(e,t,s);case 2:return da(e,[0,t],[e.shape[0],s]);case 3:return Ci(e,[0,0,t],[e.shape[0],e.shape[1],s]);case 4:return cr(e,[0,0,0,t],[e.shape[0],e.shape[1],e.shape[2],s]);default:throw new _(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}})}function tu(e,t,s,n){return N(()=>{switch(e.rank){case 1:return po(e,t,s);case 2:switch(n){case 1:return Mi(e,t,s);case 2:return Fb(e,t,s);default:throw new _(`The axis is not within the rank of the tensor ${n}`)}case 3:switch(n){case 1:return Mi(e,t,s);case 2:return Ci(e,[0,t,0],[e.shape[0],s,e.shape[2]]);case 3:return Fb(e,t,s);default:throw new _(`The axis is not within the rank of the tensor ${n}`)}case 4:switch(n){case 1:return Mi(e,t,s);case 2:return cr(e,[0,t,0,0],[e.shape[0],s,e.shape[2],e.shape[3]]);case 3:return cr(e,[0,0,t,0],[e.shape[0],e.shape[1],s,e.shape[3]]);case 4:return Fb(e,t,s);default:throw new _(`The axis is not within the rank of the tensor ${n}`)}default:throw new _(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}})}function ud(e,t=-1){let s;return t<0&&(s=e[0].rank,s!==0?t=s:t=0),t===e[0].rank&&(t=-1),ge(e,t)}function Mb(e,t){switch(e.rank){case 1:return xp([e,t]);case 2:return Lp([e,t],0);case 3:return Sp([e,t],0);case 4:return vp([e,t],0);default:throw new _(`concatAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}}function pd(e,t){if(Array.isArray(t)||(t=[t]),e.rank!==t.length)throw new _(`The length of input n (${t.length}) does not match the number of dimensions in input x (${e.rank})`);return js(e,t)}function va(e,t=0,s=1,n,i){return ha(e,t,s,n,i)}function mn(e,t,s,n){if(e.rank<2||t.rank<2)throw new ae(`dot requires both inputs to be rank >= 2 but got x shape = ${e.shape} and y shape = ${t.shape}`);if(t.rank>=3){const i=e.shape.slice(-1)[0],r=t.shape.slice(-2)[0];if(i!==r)throw new ae(`If rank y >= 3, then the second last dim of y must equal the last dim of x but got x shape = ${e.shape} and y shape = ${t.shape}`)}if(e.rank===2&&t.rank===2){const i=!1,r=!1;return Hs.matMul({a:e,b:t,transposeA:i,transposeB:r,bias:n?Ub(e.rank,n,gs()):null,activation:s})}else{const i=e.shape.slice(),r=i.pop();e=e.reshape([-1,r]);const o=t.shape.slice(),a=o.pop(),l=o.pop(),c=[...o,a],p=Array.from({length:t.rank},(m,f)=>f===0?t.rank-2:f<=t.rank-2?f-1:f);t=t.transpose(p).reshape([l,-1]);const u=[...i,...c],h=!1,d=!1;return Hs.matMul({a:e,b:t,transposeA:h,transposeB:d,bias:n?Ub(e.rank,n,gs()):null,activation:s}).reshape(u)}}function hd(e,t,s){return N(()=>(Array.isArray(t)?t=Fe(t,"int32"):t=t.toInt(),Cn(e,t,s)))}function Io(e){return C(e,e)}function Ub(e,t,s){const n=t.shape;if(t.rank!==1&&t.rank!==e)throw new _(`Unexpected bias dimensions: ${t.rank}; expected it to be 1 or ${e}`);if(e===5){if(s==="channelsFirst")return n.length===1?t.reshape([1,n[0],1,1,1]):t.reshape([1,n[3],n[0],n[1],n[2]]);if(s==="channelsLast")return n.length===1?t.reshape([1,1,1,1,n[0]]):t.reshape([1].concat(n))}else if(e===4){if(s==="channelsFirst")return n.length===1?t.reshape([1,n[0],1,1]):t.reshape([1,n[2],n[0],n[1]]);if(s==="channelsLast")return n.length===1?t.reshape([1,1,1,n[0]]):t.reshape([1].concat(n))}else if(e===3){if(s==="channelsFirst")return n.length===1?t.reshape([1,n[0],1]):t.reshape([1,n[1],n[0]]);if(s==="channelsLast")return n.length===1?t.reshape([1,1,n[0]]):t.reshape([1].concat(n))}else if(e<3)return t;throw new _(`Unsupported input rank by biasAdd: ${t.rank}`)}function Ys(e,t,s){return N(()=>(s==null&&(s=gs()),dt(s),e.add(Ub(e.rank,t,s))))}function jI(e,t=1){if(t!==1)throw new ae(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return An(e)}function VI(e){return N(()=>J(e,Je(e).add(1)))}function dd(e,t,s,n){return N(()=>jh(e,t,s,n))}function GI(e){return N(()=>{const t=W(.5,C(.2,e));return Dt(t,0,1)})}function Ui(e,t,s=!1){return s?e():t()}const HI=["fanIn","fanOut","fanAvg"],qI=["normal","uniform","truncatedNormal"];function qM(e){_i(HI,"FanMode",e)}function YM(e){_i(qI,"Distribution",e)}class fn extends P.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}}class md extends fn{apply(e,t){return Ie(e,t)}}md.className="Zeros";P.registerClass(md);class Ta extends fn{apply(e,t){return es(e,t)}}Ta.className="Ones";P.registerClass(Ta);class fd extends fn{constructor(e){super();if(typeof e!="object")throw new _(`Expected argument of type ConstantConfig but got ${e}`);if(e.value===void 0)throw new _(`config must have value set but got ${e}`);this.value=e.value}apply(e,t){return N(()=>C(j(this.value),es(e,t)))}getConfig(){return{value:this.value}}}fd.className="Constant";P.registerClass(fd);class gd extends fn{constructor(e){super();this.DEFAULT_MINVAL=-.05,this.DEFAULT_MAXVAL=.05,this.minval=e.minval||this.DEFAULT_MINVAL,this.maxval=e.maxval||this.DEFAULT_MAXVAL,this.seed=e.seed}apply(e,t){return Gs(e,this.minval,this.maxval,t)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}}gd.className="RandomUniform";P.registerClass(gd);class yd extends fn{constructor(e){super();this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if(t=t||"float32",t!=="float32"&&t!=="int32")throw new ae(`randomNormal does not support dType ${t}.`);return va(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}}yd.className="RandomNormal";P.registerClass(yd);class bd extends fn{constructor(e){super();this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if(t=t||"float32",t!=="float32"&&t!=="int32")throw new ae(`truncatedNormal does not support dType ${t}.`);return Oi(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}}bd.className="TruncatedNormal";P.registerClass(bd);class wd extends fn{constructor(e){super();this.gain=e.gain!=null?e.gain:1}apply(e,t){return N(()=>{if(e.length!==2||e[0]!==e[1])throw new _("Identity matrix initializer can only be used for 2D square matrices.");return C(this.gain,ar(e[0]))})}getConfig(){return{gain:this.gain}}}wd.className="Identity";P.registerClass(wd);function KM(e,t="channelsLast"){let s,n;if(dt(t),e.length===2)s=e[0],n=e[1];else if([3,4,5].indexOf(e.length)!==-1){if(t==="channelsFirst"){const i=dn(e,2);s=e[1]*i,n=e[0]*i}else if(t==="channelsLast"){const i=dn(e,0,e.length-2);s=e[e.length-2]*i,n=e[e.length-1]*i}}else{const i=dn(e);s=Math.sqrt(i),n=Math.sqrt(i)}return[s,n]}class ys extends fn{constructor(e){super();if(e.scale<0)throw new _(`scale must be a positive float. Got: ${e.scale}`);this.scale=e.scale==null?1:e.scale,this.mode=e.mode==null?"fanIn":e.mode,qM(this.mode),this.distribution=e.distribution==null?"normal":e.distribution,YM(this.distribution),this.seed=e.seed}apply(e,t){const s=KM(e),n=s[0],i=s[1];let r=this.scale;if(this.mode==="fanIn"?r/=Math.max(1,n):this.mode==="fanOut"?r/=Math.max(1,i):r/=Math.max(1,(n+i)/2),this.distribution==="normal"){const o=Math.sqrt(r);if(t=t||"float32",t!=="float32"&&t!=="int32")throw new ae(`${this.getClassName()} does not support dType ${t}.`);return Oi(e,0,o,t,this.seed)}else{const o=Math.sqrt(3*r);return Gs(e,-o,o,t)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}}ys.className="VarianceScaling";P.registerClass(ys);class su extends ys{constructor(e){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return ys.className}}su.className="GlorotUniform";P.registerClass(su);class nu extends ys{constructor(e){super({scale:1,mode:"fanAvg",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return ys.className}}nu.className="GlorotNormal";P.registerClass(nu);class iu extends ys{constructor(e){super({scale:2,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return ys.className}}iu.className="HeNormal";P.registerClass(iu);class ru extends ys{constructor(e){super({scale:2,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return ys.className}}ru.className="HeUniform";P.registerClass(ru);class ou extends ys{constructor(e){super({scale:1,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return ys.className}}ou.className="LeCunNormal";P.registerClass(ou);class au extends ys{constructor(e){super({scale:1,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return ys.className}}au.className="LeCunNormal";P.registerClass(au);class xd extends fn{constructor(e){super();if(this.DEFAULT_GAIN=1,this.gain=e.gain==null?this.DEFAULT_GAIN:e.gain,this.seed=e.seed,this.seed!=null)throw new ae("Random seed is not implemented for Orthogonal Initializer yet.")}apply(e,t){return N(()=>{if(e.length!==2)throw new ae("The Orthogonal Initializer does not support non-2D shapes yet.");e[0]*e[1]>2e3&&console.warn(`Orthogonal initializer is being called on a matrix with more than 2000 (${e[0]*e[1]}) elements: Slowness may result.`);const s=e[0]>e[1]?[e[1],e[0]]:e,n=va(s,0,1,"float32");let i=Zh.gramSchmidt(n);return e[0]>e[1]&&(i=i.transpose()),C(this.gain,i)})}getConfig(){return{gain:this.gain,seed:this.seed}}}xd.className="Orthogonal";P.registerClass(xd);const YI={constant:"Constant",glorotNormal:"GlorotNormal",glorotUniform:"GlorotUniform",heNormal:"HeNormal",heUniform:"HeUniform",identity:"Identity",leCunNormal:"LeCunNormal",leCunUniform:"LeCunUniform",ones:"Ones",orthogonal:"Orthogonal",randomNormal:"RandomNormal",randomUniform:"RandomUniform",truncatedNormal:"TruncatedNormal",varianceScaling:"VarianceScaling",zeros:"Zeros"};function KI(e,t={}){return si(e,P.SerializationMap.getMap().classNameMap,t,"initializer")}function Me(e){return La(e)}function je(e){if(typeof e=="string"){const t=e in YI?YI[e]:e;if(t==="GlorotNormal")return new nu();if(t==="GlorotUniform")return new su();if(t==="HeNormal")return new iu();if(t==="HeUniform")return new ru();if(t==="LeCunNormal")return new ou();if(t==="LeCunUniform")return new au();{const s={};return s.className=t,s.config={},KI(s)}}else return e instanceof fn?e:KI(e)}const $b={};Re($b,{constant:()=>ZM,glorotNormal:()=>rU,glorotUniform:()=>iU,heNormal:()=>oU,heUniform:()=>aU,identity:()=>sU,leCunNormal:()=>lU,leCunUniform:()=>cU,ones:()=>JM,orthogonal:()=>pU,randomNormal:()=>eU,randomUniform:()=>QM,truncatedNormal:()=>tU,varianceScaling:()=>nU,zeros:()=>XM});function XM(){return new md()}function JM(){return new Ta()}function ZM(e){return new fd(e)}function QM(e){return new gd(e)}function eU(e){return new yd(e)}function tU(e){return new bd(e)}function sU(e){return new wd(e)}function nU(e){return new ys(e)}function iU(e){return new su(e)}function rU(e){return new nu(e)}function oU(e){return new iu(e)}function aU(e){return new ru(e)}function lU(e){return new ou(e)}function cU(e){return new au(e)}function pU(e){return new xd(e)}let uU=0;function Ld(){return uU++}const Sd={};function dr(e=""){return e in Sd||(Sd[e]=0),Sd[e]+=1,e+Sd[e].toString()}function vd(e){return Array.isArray(e)&&Array.isArray(e[0])}function Ia(e){return e.length===0?[]:Array.isArray(e[0])?e:[e]}function fe(e){let t;if(Array.isArray(e)){if(e.length!==1)throw new _(`Expected Tensor length to be 1; got ${e.length}`);t=e[0]}else t=e;return t}function Ue(e){if(Array.isArray(e)&&Array.isArray(e[0])){if(e.length===1)return e=e,e[0];throw new _(`Expected exactly 1 Shape; got ${e.length}`)}else return e}function Aa(e){let t=0;for(const s of e)s.shape.length===0?t+=1:t+=s.shape.reduce((n,i)=>n*i);return t}const XI="Variable";class Td{constructor(e,t="float32",s=XI,n=!0,i=null){this.dtype=t==null?"float32":t,this.shape=e.shape,this.id=Ld(),s=s==null?XI:s,this.originalName=ld(s),this.name=cd(this.originalName),this.trainable_=n,this.constraint=i,this.val=Gp(e,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(e){return this.assertNotDisposed(),hU(this.val,e),this.val.id!==e.id&&(this.val.assign(e),this.constraint!=null&&this.val.assign(this.constraint.apply(this.val))),this}dispose(){this.assertNotDisposed(),this.val.dispose()}assertNotDisposed(){if(this.val.isDisposed)throw new Error(`LayersVariable ${this.name} is already disposed.`)}get trainable(){return this.trainable_}set trainable(e){this.trainable_=e,this.val.trainable=e}}function hU(e,t){if(e.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(e.shape)+" vs. "+JSON.stringify(t.shape))}function lu(e){return e.map(t=>t.read())}function Na(e){e.forEach(t=>{const s=t[0];s.write(t[1])})}class rt{constructor(e){this.dtype=e.dtype,this.shape=e.shape,e.shape!=null?this.ndim=e.shape.length:this.ndim=e.ndim,this.maxNDim=e.maxNDim,this.minNDim=e.minNDim,this.axes=e.axes||{}}}class bs{constructor(e,t,s,n,i,r,o){this.dtype=e,this.shape=t,this.sourceLayer=s,this.inputs=n,this.callArgs=i,this.outputTensorIndex=o,this.id=Ld(),r!=null&&(this.originalName=ld(r),this.name=cd(this.originalName)),this.rank=t.length}}let dU=0;class Ao{constructor(e,t){this.callArgs=t,this.id=dU++,this.outboundLayer=e.outboundLayer,this.inboundLayers=e.inboundLayers,this.nodeIndices=e.nodeIndices,this.tensorIndices=e.tensorIndices,this.inputTensors=e.inputTensors,this.outputTensors=e.outputTensors,this.inputMasks=e.inputMasks,this.outputMasks=e.outputMasks,this.inputShapes=e.inputShapes,this.outputShapes=e.outputShapes;for(const s of e.inboundLayers)s!=null&&s.outboundNodes.push(this);e.outboundLayer.inboundNodes.push(this)}getConfig(){const e=[];for(const t of this.inboundLayers)t!=null?e.push(t.name):e.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:e,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}}let mU=0;class be extends P.Serializable{constructor(e={}){super();this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=mU++,this.activityRegularizer=null,this.inputSpec=null,this.supportsMasking=!1,this._trainableWeights=[],this._nonTrainableWeights=[],this._losses=[],this._updates=[],this._built=!1,this.inboundNodes=[],this.outboundNodes=[];let t=e.name;if(!t){const s=this.getClassName();t=pn(s)+"_"+dr(s)}if(this.name=t,this.trainable_=e.trainable==null?!0:e.trainable,e.inputShape!=null||e.batchInputShape!=null){let s;if(e.batchInputShape!=null)s=e.batchInputShape;else if(e.inputShape!=null){let i=null;e.batchSize!=null&&(i=e.batchSize),s=[i].concat(e.inputShape)}this.batchInputShape=s;let n=e.dtype;n==null&&(n=e.inputDType),n==null&&(n="float32"),this.dtype=n}e.weights!=null?this.initialWeights=e.weights:this.initialWeights=null,this._refCount=null,this.fastWeightInitDuringBuild=!1}static nodeKey(e,t){return e.name+"_ib-"+t.toString()}getNodeAtIndex(e,t){if(this.inboundNodes.length===0)throw new Is(`The layer has never been called and thus has no defined ${t}.`);if(this.inboundNodes.length<=e)throw new _(`Asked to get ${t} at node ${e}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[e]}getInputAt(e){return Pt(this.getNodeAtIndex(e,"input").inputTensors)}getOutputAt(e){return Pt(this.getNodeAtIndex(e,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new ti(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer input" is ill-defined. Use \`getInputAt(nodeIndex)\` instead.`);if(this.inboundNodes.length===0)throw new ti(`Layer ${this.name} is not connected, no input to return.`);return Pt(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new ti(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new ti(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return Pt(this.getNodeAtIndex(0,"output").outputTensors)}get losses(){return this._losses}calculateLosses(){return this.losses.map(e=>e())}get updates(){return this._updates}get built(){return this._built}set built(e){this._built=e}get trainable(){return this.trainable_}set trainable(e){this._trainableWeights.forEach(t=>t.trainable=e),this.trainable_=e}get trainableWeights(){return this.trainable_?this._trainableWeights.filter(e=>e.trainable):[]}set trainableWeights(e){this._trainableWeights=e}get nonTrainableWeights(){return this.trainable?this._trainableWeights.filter(e=>!e.trainable).concat(this._nonTrainableWeights):this._trainableWeights.concat(this._nonTrainableWeights)}set nonTrainableWeights(e){this._nonTrainableWeights=e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}get stateful(){return this._stateful}resetStates(){if(!this.stateful)throw new Error("Cannot call the resetStates() method of a non-stateful Layer object.")}assertInputCompatibility(e){if(e=qe(e),this.inputSpec==null||this.inputSpec.length===0)return;const t=qe(this.inputSpec);if(e.length!==t.length)throw new _(`Layer ${this.name} expects ${t.length} inputs, but it received ${e.length} input tensors. Input received: ${e}`);for(let s=0;si.maxNDim)throw new _(`Input ${s} is incompatible with layer ${this.name}: expected max_ndim=${i.maxNDim}, found ndim=${r}`);if(i.minNDim!=null&&r=0?o[l]:o[o.length+l];if(c!=null&&[c,null].indexOf(p)===-1)throw new _(`Input ${s} is incompatible with layer ${this.name}: expected axis ${l} of input shape to have value ${c} but got shape ${o}.`)}}if(i.shape!=null)for(let o=0;o{if(!this.built){this.assertInputCompatibility(e);const r=[];for(const o of qe(e))r.push(o.shape);this.build(Pt(r)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),this._refCount===null&&i&&(this._refCount=1)}if(this.assertInputCompatibility(e),i){let r=this.call(e,t);const o=qe(r),a=[];for(let l of o)s.indexOf(l)!==-1&&(l=l.clone()),a.push(l);if(r=Pt(a),this.activityRegularizer!=null)throw new ae("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return r}else{const r=fU(e),o=this.computeOutputShape(r);let a;const l=gU(e);if(this.warnOnIncompatibleInputShape(Array.isArray(e)?r[0]:r),o!=null&&o.length>0&&Array.isArray(o[0])?a=o.map((c,p)=>new bs(l,c,this,qe(e),t,this.name,p)):a=new bs(l,o,this,qe(e),t,this.name),this.addInboundNode(e,a,null,null,r,o,t),this._refCount++,this.activityRegularizer!=null)throw new ae("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return a}})}warnOnIncompatibleInputShape(e){if(this.batchInputShape==null)return;if(e.length!==this.batchInputShape.length)console.warn(`The rank of the input tensor provided (shape: ${JSON.stringify(e)}) does not match that of the batchInputShape (${JSON.stringify(this.batchInputShape)}) of the layer ${this.name}`);else{let t=!1;this.batchInputShape.forEach((s,n)=>{s!=null&&e[n]!=null&&e[n]!==s&&(t=!0)}),t&&console.warn(`The shape of the input tensor (${JSON.stringify(e)}) does not match the expectation of layer ${this.name}: ${JSON.stringify(this.batchInputShape)}`)}}get outputShape(){if(this.inboundNodes==null||this.inboundNodes.length===0)throw new ti(`The layer ${this.name} has never been called and thus has no defined output shape.`);const e=[];for(const t of this.inboundNodes){const s=JSON.stringify(t.outputShapes);e.indexOf(s)===-1&&e.push(s)}if(e.length===1){const t=this.inboundNodes[0].outputShapes;return Array.isArray(t)&&Array.isArray(t[0])&&t.length===1?t[0]:t}else throw new ti(`The layer ${this.name} has multiple inbound nodes with different output shapes. Hence the notion of "output shape" is ill-defined for the layer.`)}countParams(){if(!this.built)throw new Is(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return Aa(this.weights)}build(e){this.built=!0}getWeights(e=!1){return lu(e?this.trainableWeights:this.weights)}setWeights(e){N(()=>{const t=this.weights;if(t.length!==e.length)throw new _(`You called setWeights(weights) on layer "${this.name}" with a weight list of length ${e.length}, but the layer was expecting ${t.length} weights. Provided weights: ${e}...`);if(t.length===0)return;const s=[],n=lu(t);for(let i=0;ii.apply(l.read())),r==null&&(r=!0),r?this._trainableWeights.push(l):this._nonTrainableWeights.push(l),l}setFastWeightInitDuringBuild(e){this.fastWeightInitDuringBuild=e}addLoss(e){if(e==null||Array.isArray(e)&&e.length===0)return;e=qe(e),this._losses!==void 0&&this._losses!==null&&this.losses.push(...e)}computeOutputShape(e){return e}computeMask(e,t){if(!this.supportsMasking){if(t!=null)if(Array.isArray(t))t.forEach(s=>{if(s!=null)throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`)});else throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`);return null}return t}addInboundNode(e,t,s,n,i,r,o=null){const a=qe(e);t=qe(t),s=qe(s),n=qe(n),i=Ia(i),r=Ia(r);const l=[],c=[],p=[];for(const u of a)l.push(u.sourceLayer),c.push(u.nodeIndex),p.push(u.tensorIndex);new Ao({outboundLayer:this,inboundLayers:l,nodeIndices:c,tensorIndices:p,inputTensors:a,outputTensors:t,inputMasks:s,outputMasks:n,inputShapes:i,outputShapes:r},o);for(let u=0;ue.dispose()),this.weights.length}assertNotDisposed(){if(this._refCount===0)throw new Error(`Layer '${this.name}' is already disposed.`)}dispose(){if(!this.built)throw new Error(`Cannot dispose Layer ${this.name} because it has not been built yet.`);if(this._refCount===null)throw new Error(`Cannot dispose Layer ${this.name} because it has not been used yet.`);this.assertNotDisposed();let e=0;return--this._refCount===0&&(e=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables:e}}}function fU(e){e=qe(e);const t=[];for(const s of e)t.push(s.shape);return Pt(t)}function gU(e){return"float32"}function Wb(e,t,s){if((t==null||s!=null&&s>0)&&(t=e.sourceLayer,s=e.nodeIndex),t.inboundNodes.length===0)return[e];{const n=t.inboundNodes[s];if(n.inboundLayers.length===0)return n.inputTensors;{const i=[];for(let r=0;r0){const i=await Promise.all(t);for(let r=0;rW(this.totals[n],C(i,s)));this.totals[n]=o,r!=null&&r.dispose()}}}async onEpochEnd(e,t){if(t!=null)for(const s of this.params.metrics){if(this.totals[s]==null)continue;typeof this.totals[s]=="number"?t[s]=this.totals[s]/this.seen:N(()=>{const n=C(J(1,this.seen),this.totals[s]);t[s]=n,this.totals[s].dispose(),gt(t[s])})}}}class Bb extends No{async onTrainBegin(e){this.epoch=[],this.history={}}async onEpochEnd(e,t){t==null&&(t={}),this.epoch.push(e);for(const s in t)this.history[s]==null&&(this.history[s]=[]),this.history[s].push(t[s])}async syncData(){const e=[],t=[],s=[];for(const i in this.history){const r=this.history[i];for(let o=0;onew Pb(n,t))}class Ks{constructor(){}static registerCallbackConstructor(e,t){E.assert(e>=0&&Number.isInteger(e),()=>`Verbosity level is expected to be an integer >= 0, but got ${e}`),Ks.checkForDuplicate(t),Ks.constructors[e]==null&&(Ks.constructors[e]=[]),Ks.constructors[e].push(t)}static checkForDuplicate(e){for(const t in Ks.constructors){const s=Ks.constructors[+t];s.forEach(n=>{if(n===e)throw new _("Duplicate callback constructor.")})}}static clear(){Ks.constructors={}}static createCallbacks(e){const t=[];for(const s in Ks.constructors){const n=+s;e>=n&&t.push(...Ks.constructors[n])}return t.map(s=>new s())}}Ks.constructors={};function Cd(e,t,s,n,i,r,o,a,l){const c=new Bb(),p=[new bU(),...Ks.createCallbacks(t)];e!=null&&p.push(...e),p.push(c);const u=new zb(p);return u.setParams({epochs:s,initialEpoch:n,samples:i,steps:r,batchSize:o,verbose:t,doValidation:a,metrics:l}),{callbackList:u,history:c}}function ws(e,t={},s=!1){return si(e,P.SerializationMap.getMap().classNameMap,t,"layer",s)}function cu(e,t){return N(()=>{e.dtype!=="float32"&&(e=e.asType("float32"));const s=te(Io(e),t,!0),n=Ft(s.shape,vt()),i=He(Wt(s,n));return J(e,i)})}function ii(e,t){return N(()=>Ge(Io(X(t,e)),-1))}function Ca(e,t){return N(()=>Ge(Je(X(t,e)),-1))}function mr(e,t){return N(()=>{const s=X(e,t),n=Dt(Je(e),vt(),Number.MAX_VALUE),i=Je(J(s,n));return C(100,Ge(i,-1))})}function wU(e,t){return N(()=>{const s=Dt(t,vt(),Number.MAX_VALUE),n=Mt(W(1,s)),i=Dt(e,vt(),Number.MAX_VALUE),r=Mt(W(1,i));return Ge(Io(X(n,r)),-1)})}function xU(e,t){return N(()=>{const s=Wt(0,X(1,C(e,t)));return Ge(Io(s),-1)})}function LU(e,t){return N(()=>{const s=Wt(0,X(1,C(e,t)));return Ge(s,-1)})}function SU(e,t){return N(()=>{const s=te(C(e,t),-1),n=st(C(X(1,e),t),-1);return Wt(0,W(1,X(n,s)))})}function vU(e,t){return N(()=>{const s=Math.log(2),n=X(t,e),i=X(W(n,Rn(C(-2,n))),s);return Ge(i,-1)})}function Co(e,t,s=!1){return N(()=>{if(s)t=Yt(t);else{const n=te(t,t.shape.length-1,!0);t=J(t,n)}return t=Dt(t,vt(),1-vt()),Oe(te(C(e.toFloat(),Mt(t)),t.shape.length-1))})}function Ra(e,t,s=!1){return N(()=>{const n=Nn(BI(e)).toInt();t=Dt(t,vt(),1-vt());const i=t.shape,r=On(n,i[i.length-1]).reshape(i);return Co(r,t,s)})}function TU(e,t){if(!E.arraysEqual(e.shape,t.shape))throw new _(`logits and labels must have the same shape, but got shapes ${JSON.stringify(e.shape)} and ${JSON.stringify(t.shape)}`);return N(()=>{const s=t.relu(),n=t.abs().neg();return s.sub(t.mul(e)).add(n.exp().log1p())})}function Oa(e,t){return N(()=>{let s;return s=Dt(t,vt(),1-vt()),s=Mt(J(s,X(1,s))),Ge(TU(e,s),-1)})}function IU(e,t){return N(()=>{const s=Dt(e,vt(),1),n=Dt(t,vt(),1);return te(C(e,Mt(J(s,n))),-1)})}function AU(e,t){return N(()=>{const s=Mt(W(vt(),t));return Ge(X(t,C(e,s)),-1)})}function pu(e,t){return N(()=>{const s=cu(e,-1),n=cu(t,-1),i=C(s,n);return Oe(te(i,-1))})}const uu={meanSquaredError:ii,meanAbsoluteError:Ca,meanAbsolutePercentageError:mr,meanSquaredLogarithmicError:wU,squaredHinge:xU,hinge:LU,categoricalHinge:SU,logcosh:vU,categoricalCrossentropy:Co,sparseCategoricalCrossentropy:Ra,binaryCrossentropy:Oa,kullbackLeiblerDivergence:IU,poisson:AU,cosineProximity:pu};function Rd(e){if(typeof e=="string"){if(e in uu)return uu[e];let t=`Unknown loss ${e}`;throw e.toLowerCase().includes("softmaxcrossentropy")&&(t=`Unknown loss ${e}. Use "categoricalCrossentropy" as the string name for tf.losses.softmaxCrossEntropy`),new _(t)}else return e}function hu(e,t){return N(()=>{const s=C(.5,Bt(t)),n=Di(Ct(t,s),e.dtype);return Ge(Qt(e,n),-1)})}function du(e,t){return N(()=>Di(Qt(nr(e,-1),nr(t,-1)),"float32"))}function ZI(e,t){return N(()=>zt(e.equal(1),t.equal(1)).sum().cast("float32"))}function NU(e,t){return N(()=>zt(e.equal(1),t.equal(0)).sum().cast("float32"))}function CU(e,t){return N(()=>zt(e.equal(0),t.equal(1)).sum().cast("float32"))}function jb(e,t){return N(()=>{const s=ZI(e,t),n=CU(e,t),i=s.add(n);return at(Ct(i,0),s.div(i),0).cast("float32")})}function QI(e,t){return N(()=>{const s=ZI(e,t),n=NU(e,t),i=s.add(n);return at(Ct(i,0),s.div(i),0).cast("float32")})}function Od(e,t){return Oa(e,t)}function Ed(e,t){return e.rank===t.rank&&(e=e.squeeze([e.rank-1])),t=t.argMax(-1),t.dtype!==e.dtype&&(t=t.asType(e.dtype)),Qt(e,t).asType("float32")}const RU=ii,OU=ii,EU=Ca,kU=Ca,_U=mr,DU=mr,mu=Co,FU=pu,Vb=Ra,kd={binaryAccuracy:hu,categoricalAccuracy:du,precision:jb,categoricalCrossentropy:mu,sparseCategoricalCrossentropy:Vb,mse:RU,MSE:OU,mae:EU,MAE:kU,mape:_U,MAPE:DU,cosine:FU};function eA(e){if(typeof e=="string"&&e in kd)return kd[e];if(typeof e!="string"&&e!=null)return e;throw new _(`Unknown metric ${e}`)}function fu(e){if(qs(e!==null,`Unknown LossOrMetricFn ${e}`),typeof e=="string")return e;{let t;for(const s of Object.keys(uu))if(uu[s]===e){t=s;break}if(t!==void 0)return t;for(const s of Object.keys(kd))if(kd[s]===e){t=s;break}return t!==void 0?t:e.name}}function tA(e){const t={Adagrad:()=>hr.adagrad(.01),Adadelta:()=>hr.adadelta(1,.95,vt()),Adam:()=>hr.adam(.001,.9,.999,vt()),Adamax:()=>hr.adamax(.002,.9,.999,vt(),0),RMSProp:()=>hr.rmsprop(.001,.9,0,vt()),SGD:()=>hr.sgd(.01)};if(t.adagrad=t.Adagrad,t.adadelta=t.Adadelta,t.adam=t.Adam,t.adamax=t.Adamax,t.rmsprop=t.RMSProp,t.sgd=t.SGD,e in t)return t[e]();throw new _(`Unknown Optimizer ${e}`)}const sA=1*1024*1024;function Hb(e,t,s=!1){if(e==null||typeof e!="object"||Object.getPrototypeOf(e)!==Object.prototype||!Gb(e))throw new Error("User-defined metadata is expected to be a JSON object, but is not.");if(s){const n=JSON.stringify(e);n.length>sA&&console.warn(`User-defined metadata of model "${t}" is too large in size (length=${n.length} when serialized). It is not recommended to store such large objects in user-defined metadata. Please make sure its serialized length is <= ${sA}.`)}}function Gb(e){if(e===null)return!0;if(typeof e=="object")if(Object.getPrototypeOf(e)===Object.prototype){const t=Object.keys(e);for(const s of t){if(typeof s!="string")return!1;if(!Gb(e[s]))return!1}return!0}else if(Array.isArray(e)){for(const t of e)if(!Gb(t))return!1;return!0}else return!1;else{const t=typeof e;return t==="string"||t==="number"||t==="boolean"}}function nA(e,t,s,n=console.log){const i=UU(e),r=["Layer (type)","Output shape","Param #"];i?(t=t||65,s=s||[.45,.85,1]):(t=t||98,s=s||[.33,.55,.67,1]),s[s.length-1]<=1&&(s=s.map(p=>Math.floor(t*p)));let o;if(!i){r.push("Receives inputs"),o=[];for(const p in e.nodesByDepth)o.push(...e.nodesByDepth[p])}n("_".repeat(t)),_d(r,s,n),n("=".repeat(t));const a=e.layers;for(let p=0;p1||i.length===1&&i[0].inboundLayers.length>1){t=!1;break}n.push(...i)}if(t)for(const i of e.layers){let r=!1;for(const o of i.inboundNodes)if(n.indexOf(o)!==-1)if(r){t=!1;break}else r=!0;if(!t)break}return t}function _d(e,t,s=console.log){let n="";for(let i=0;i0&&(n=n.slice(0,n.length-1)+" "),n+=e[i],n=n.slice(0,t[i]),n+=" ".repeat(t[i]-n.length);s(n)}function $U(e,t,s){let n;try{n=JSON.stringify(e.outputShape)}catch(a){n="multiple"}const i=e.name,r=e.getClassName(),o=[`${i} (${r})`,n,e.countParams().toString()];_d(o,t,s)}function WU(e,t,s,n){let i;try{i=JSON.stringify(e.outputShape)}catch(p){i="multiple"}const r=[];for(const p of e.inboundNodes){if(s!=null&&s.length>0&&s.indexOf(p)===-1)continue;for(let u=0;um.name),l=[],c=t.names();for(const m of a)c.indexOf(m)!==-1?l.push(t.getValue(m)):l.push(null);n!=null&&(n.maxNumTensors=-Infinity,n.minNumTensors=Infinity);const p=a.join(",")+"|"+t.names().join(",");let u,h;if(qb[p]==null){const m=BU(o,t);u=m.sorted,h=m.recipientCounts,qb[p]=u,rA[p]=h}u=qb[p],h={},i||Object.assign(h,rA[p]);const d=new Wi(t);for(let m=0;mn.maxNumTensors&&(n.maxNumTensors=F),F0,()=>"Expected at least one fetch, got none");let s=[],n={};if(e.length===1){const i=oA(e[0],t);s=i.sorted,n=i.recipientMap}else{const i=new Set();for(const r of e){const{sorted:o,recipientMap:a}=oA(r,t);for(const l of o)i.has(l.name)||(s.push(l),i.add(l.name));for(const l in a)n[l]==null&&(n[l]=new Set()),a[l].forEach(c=>n[l].add(c))}}return{sorted:s,recipientCounts:jU(n)}}function jU(e){const t={};for(const s in e)t[s]=e[s].size;return t}function oA(e,t){const s=new Set(),n=[],i={};for(const a of t.names())s.add(a);const r=[],o=[];for(r.push(e);r.length>0;){const a=r[r.length-1];if(s.has(a.name)){r.pop();continue}const l=o[o.length-1]===r.length-1;if(a.inputs.length===0||l)r.pop(),n.push(a),s.add(a.name),l&&o.pop();else{o.push(r.length-1);for(const c of a.inputs){if(i[c.name]==null&&(i[c.name]=new Set()),i[c.name].add(a.name),s.has(c.name))continue;r.push(c)}}}return{sorted:n,recipientMap:i}}function PU(e){let t;if(e.sourceLayer.inboundNodes.length===1)t=e.sourceLayer.output;else{let s=null;for(let n=0;nb.name)}`);hn(this.outputs).length!==this.outputs.length&&console.warn(`The list of outputs passed to the model is redundant. All outputs should only appear once. Found: ${this.outputs.map(b=>b.name)}`),this.inputLayers=[],this.inputLayersNodeIndices=[],this.inputLayersTensorIndices=[],this.outputLayers=[],this.outputLayersNodeIndices=[],this.outputLayersTensorIndices=[],this.layers=[],this.internalContainerRefs=[];for(const b of this.outputs){const S=b.sourceLayer,x=b.nodeIndex,I=b.tensorIndex;this.outputLayers.push(S),this.outputLayersNodeIndices.push(x),this.outputLayersTensorIndices.push(I)}for(const b of this.inputs){const S=b.sourceLayer,x=b.nodeIndex,I=b.tensorIndex;qs(x===0,"input layer has >1 nodes"),qs(I===0,"input layer has >1 tensors"),this.inputLayers.push(S),this.inputLayersNodeIndices.push(x),this.inputLayersTensorIndices.push(I)}this.inputNames=[],this.outputNames=[],this.feedInputShapes=[],this.feedInputNames=[],this.feedOutputNames=[];for(let b=0;bb.shape),this.internalOutputShapes=this.outputs.map(b=>b.shape);const t={},s={},n={},i={},r={},o=[],a=(b,S,x,I,A,k)=>{(I==null||A==null||k==null)&&(I=b.sourceLayer,A=b.nodeIndex,k=b.tensorIndex);const R=I.inboundNodes[A];if(x.indexOf(R)!==-1)throw new Is(`The tensor ${b.name} at layer "${I.name}" is part of a cycle.`);if(S.indexOf(R)!==-1)return;this.containerNodes.add(Mn.nodeKey(I,A)),I.id in r||(r[I.id]=Object.keys(r).length),x.indexOf(R)===-1&&x.push(R);const D=R.inboundLayers.length;for(let F=0;F=0;)x.splice(x.indexOf(R),1);o.push(R)},l=[],c=[];for(const b of this.outputs)a(b,l,c);const p=o.slice().reverse();for(const b of p){s[b.id]=b,b.id in t||(t[b.id]=0);let S=t[b.id];const x=n[b.outboundLayer.id]==null?0:n[b.outboundLayer.id];S=Math.max(S,x),n[b.outboundLayer.id]=S,i[b.outboundLayer.id]=b.outboundLayer,t[b.id]=S;for(let I=0;IparseInt(b,10)).sort(Zp);this.layers=[];for(const b of d){const S=h[b];S.sort((x,I)=>{const A=r[x.id],k=r[I.id];return Ak?1:0});for(const x of S)x instanceof Mn&&this.internalContainerRefs.push(x),this.layers.push(x)}this.layersByDepth=h,d=Object.keys(u).map(b=>parseInt(b,10)).sort(Zp);const m=this.inputs.slice(),f=[];for(const b of d)for(const S of u[b]){const x=S.outboundLayer;if(x!=null){for(const I of S.inputTensors)if(m.indexOf(I)===-1)throw new Is(`Graph disconnected: cannot obtain value for tensor ${I} at layer "${x.name}". The following previous layers were accessed without issue: ${f}`);for(const I of S.outputTensors)m.push(I);f.push(x.name)}}this.nodesByDepth=u;const y=this.layers.map(b=>b.name);for(const b of y){const S=y.filter(x=>x===b).length;if(S!==1)throw new Is(`The name "${b}" is used ${S} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(y))}this.outboundNodes=[],this.inboundNodes=[],new Ao({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:this.inputs.map(b=>null),outputMasks:this.outputs.map(b=>null),inputShapes:this.inputs.map(b=>b.shape),outputShapes:this.outputs.map(b=>b.shape)}),this.built=!0,this._refCount=1}assertNotDisposed(){if(this._refCount===0)throw new Error(`Container '${this.name}' is already disposed.`)}dispose(){this.assertNotDisposed();const e={refCountAfterDispose:null,numDisposedVariables:0};if(--this._refCount===0){for(const t of this.layers)e.numDisposedVariables+=t.dispose().numDisposedVariables;for(const t of this.internalContainerRefs)e.numDisposedVariables+=t.dispose().numDisposedVariables}return e.refCountAfterDispose=this._refCount,e}get trainable(){return this.trainable_}set trainable(e){this.layers.forEach(t=>{t._trainableWeights.forEach(s=>s.trainable=e)}),this.trainable_=e}get trainableWeights(){if(this._trainableWeights.length>0)throw new _("Container instance unexpectedly contains _trainableWeights.The trainable weights of a Container are a union of the trainable weights of its consituent Layers. Its own _trainableWeights must remain an empty Array.");if(!this.trainable)return[];let e=[];for(const t of this.layers)e=e.concat(t.trainableWeights);return e}get nonTrainableWeights(){const e=[];for(const t of this.layers)e.push(...t.nonTrainableWeights);if(!this.trainable){const t=[];for(const s of this.layers)t.push(...s.trainableWeights);return t.concat(e)}return e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(e,t=!0){const s={};let n=0;for(const r of this.layers)for(const o of r.weights){if(s[o.originalName]!=null)throw new _(`Duplicate weight name: ${o.originalName}`);s[o.originalName]=o,n++}const i=[];for(const r in e){let o=r;if(s[r]==null){const a=r.split("/"),l=a.slice(0,-2).concat([a[a.length-1]]);o=l.join("/")}if(s[o]!=null)i.push([s[o],e[r]]);else if(t)throw new _(`Provided weight data has no target variable: ${r}`);delete s[o]}if(t){const r=[];for(const o in s)r.push(o);if(r.length>0)throw new _(`${r.length} of ${n} weights are not set: ${r}`)}Na(i)}updatedConfig(){const e=this.getConfig(),t={};return t.className=this.getClassName(),t.config=e,t.kerasVersion=`tfjs-layers ${fr}`,t.backend="TensorFlow.js",t}toJSON(e,t=!0){const s=Dd(this.updatedConfig());return t?JSON.stringify(s):s}call(e,t){return N(()=>{e=qe(e);const s=new Wi();for(let n=0;n{e=qe(e);let s;return t==null?s=cn(null,e.length):s=qe(t),this.runInternalGraph(e,s)[1]})}computeOutputShape(e){const t=Ia(e);if(t.length!==this.inputLayers.length)throw new _(`Invalid inputShape argument ${e}: model has ${this.inputLayers.length} tensor inputs.`);const s={};for(let o=0;oparseInt(o,10)).sort(Zp);if(n.length>1)for(const o of n){const a=this.nodesByDepth[o];for(const l of a){const c=l.outboundLayer;if(this.inputLayers.map(m=>m.id).indexOf(c.id)!==-1)continue;const p=[];for(let m=0;mparseInt(a,10)).sort(Zp);for(const a of n){const l=this.nodesByDepth[a];for(const c of l){const p=c.outboundLayer,u=c.inputTensors,h=c.outputTensors,d=new Array();for(const m of u)m.id in s&&d.push(s[m.id]);if(d.length===u.length){let m={},f,y,b,S;if(c.callArgs!=null&&(m=c.callArgs),d.length===1){const[x,I]=d[0];m.mask==null&&(m.mask=I),b=qe(p.call(x,m)),S=qe(p.computeMask(x,I)),f=[x],y=[I]}else f=d.map(x=>x[0]),y=d.map(x=>x[1]),m.mask==null&&(m.mask=y),b=qe(p.call(f,m)),S=qe(p.computeMask(f,y));if(p.activityRegularizer)throw new ae("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let x=0;x{const e=[];for(const t of this.layers)for(let s=0;s0){const m=[];for(let f=0;f0&&f.apply(Pt(b),S)}function l(f){const y=f.name,b=ws(f,t.customObjects!=null?t.customObjects:{});b.setFastWeightInitDuringBuild(n),i[y]=b;const S=f.inboundNodes;S.forEach(x=>{if(!(x instanceof Array))throw new _(`Corrupted configuration, expected array for nodeData: ${x}`);o(b,x)})}const c=t.name,p=t.layers;for(const f of p)l(f);for(;!NI(r);)for(const f of p){const y=i[f.name];if(y.name in r){const b=r[y.name];delete r[y.name];for(const S of b)a(y,S)}}const u=[],h=[],d=t.inputLayers;for(const f of d){const y=f[0],b=f[1],S=f[2];qs(y in i);const x=i[y],I=x.inboundNodes[b].outputTensors;u.push(I[S])}const m=t.outputLayers;for(const f of m){const y=f[0],b=f[1],S=f[2];qs(y in i);const x=i[y],I=x.inboundNodes[b].outputTensors;h.push(I[S])}return new e({inputs:u,outputs:h,name:c})}get stateful(){if(this._stateful)throw new _("Container instance unexpectedly has _stateful = true. The statefulness of a Container is determined by the Layers it contains. Its _stateful property must remain the default false.");for(const e of this.layers)if(e.stateful)return!0;return!1}resetStates(){N(()=>{this.layers.forEach(e=>{e.stateful&&e.resetStates()})})}}function VU(e,t,s){const n=t.length;if(e==null||Array.isArray(e)&&e.length===0)return t.map(i=>null);if(n===1)return Array.isArray(e)&&e.length===1?e:typeof e=="object"&&t[0]in e?[e[t[0]]]:[e];if(Array.isArray(e)){if(e.length!==n)throw new Error(`Provided ${s} is an array of ${e.length} element(s), but the model has ${n} outputs. Make sure a set of weights is provided for each model output.`);return e}else if(typeof e=="object"&&Object.keys(e).length>0&&typeof e[Object.keys(e)[0]]=="object"){const i=[];return t.forEach(r=>{r in e?i.push(e[r]):i.push(null)}),i}else throw new Error(`The model has multiple (${n}) outputs, so ${s} must be either an array with ${n} elements or an object with ${t} keys. Provided ${s} not understood: ${JSON.stringify(e)}`)}function Fd(e,t){return VU(e,t,"classWeight")}async function Md(e,t,s,n){if(t!=null||n!=null)throw new Error("Support sampleWeight is not implemented yet");if(s!=null){const i=N(()=>{if(e.shape.length===1)return e.clone();if(e.shape.length===2)if(e.shape[1]>1){const a=1;return e.argMax(a)}else{if(e.shape[1]===1)return e.reshape([e.shape[0]]);throw new Error(`Encountered unexpected last-dimension size (${e.shape[1]}) during handling of class weights. The size is expected to be >= 1.`)}else throw new Error(`Unexpected rank of target (y) tensor (${e.rank}) during handling of class weights. The rank is expected to be 1 or 2.`)}),r=Array.from(await i.data());ce(i);const o=[];return r.forEach(a=>{if(s[a]==null)throw new Error(`classWeight must contain all classes in the training data. The class ${a} exists in the data but not in classWeight`);o.push(s[a])}),Fe(o,"float32")}else return null}function aA(e,t){return C(e,t)}const GU=32;function cA(e,t){let s,n;const i=t;s=i.xs,n=i.ys,E.assert(s!=null&&n!=null,()=>`A Dataset iterator for fitDataset() is expected to generate objects of the form \`{xs: xVal, ys: yVal}\`, where the two values may be \`tf.Tensor\`, an array of Tensors, or a map of string to Tensor. The provided Dataset instead generates ${t}`);const r=lA("input",e.inputNames,s),o=lA("output",e.outputNames,n),a=r[0].shape[0];E.assert(r.length===e.inputs.length,()=>`LayersModel has ${e.inputs.length} inputs, but the dataset provides ${r.length} inputs. (Expected input keys: ${JSON.stringify(e.inputNames)})`),E.assert(o.length===e.outputs.length,()=>`LayersModel has ${e.outputs.length} outputs, but the dataset provides ${o.length} outputs. (Expected output keys: ${JSON.stringify(e.outputNames)})`);for(let l=0;l`Batch size mismatch: input ${e.inputNames[l]} has ${r[l].shape[0]}; expected ${a} based on input ${e.inputNames[0]}.`);for(let l=0;l`Batch size mismatch: output ${e.outputNames[l]} has ${o[l].shape[0]}; expected ${a} based on input ${e.inputNames[0]}.`);return{xs:r,ys:o}}function lA(e,t,s){if(s instanceof ue)return[s];if(Array.isArray(s))return E.assert(s.length===t.length,()=>`Received an array of ${s.length} Tensors, but expected ${t.length} to match the ${e} keys ${t}.`),s;{const n=[];for(const i of t){if(s[i]==null)throw new _(`The feature data generated by the dataset lacks the required ${e} key '${i}'.`);n.push(s[i])}return n}}function HU(e){if(e.length===3)throw new ae("Validation with sample weights is not implemented yet.");return{xs:e[0],ys:e[1]}}async function uA(e,t,s){const n=s.batchesPerEpoch!=null;if(E.assert(e.optimizer!=null,()=>"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig)."),E.assert(s!=null,()=>"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call."),E.assert(s.epochs!=null&&s.epochs>0&&Number.isInteger(s.epochs),()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${s.epochs}`),E.assert(!n||s.batchesPerEpoch>0&&Number.isInteger(s.batchesPerEpoch),()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${s.batchesPerEpoch}`),E.assert(s.validationSplit==null,()=>"`validationSplit` is not supported by `fitDataset()`. Use validationData instead."),e.isTraining)throw new Error("Cannot start training because another fit() call is ongoing.");e.isTraining=!0;try{const i=s.validationData!=null;let r,o;if(i)if(pA(s.validationData))E.assert(s.validationBatches==null||s.validationBatches>0&&Number.isInteger(s.validationBatches),()=>`For fitDataset() with dataset-based validation, config.validationBatches is expected not to be provided, or to be a positive integer, but got ${s.validationBatches}`);else{const y=HU(s.validationData);r=y.xs,o=y.ys}const a=e.makeTrainFunction(),l=e.getDedupedMetricsNames();let c;i?c=l.slice().concat(l.map(y=>"val_"+y)):c=l.slice();const p=Nd(s.callbacks,s.yieldEvery),u=s.verbose==null?1:s.verbose,{callbackList:h,history:d}=Cd(p,u,s.epochs,null,null,qU(t,s),null,i,c);h.setModel(e),e.history=d,await h.onTrainBegin(),e.stopTraining_=!1;let m=s.initialEpoch==null?0:s.initialEpoch,f=await t.iterator();for(;m=s.batchesPerEpoch:x.done){if(i){let I;pA(s.validationData)?I=qe(await e.evaluateDataset(s.validationData,{batches:s.validationBatches})):I=qe(e.evaluate(r,o,{batchSize:s.validationBatchSize==null?GU:s.validationBatchSize,verbose:0}));for(let A=0;A0)throw new ae("Verbose mode is not implemented yet.");E.assert(!n||s.batches>0&&Number.isInteger(s.batches),()=>`Test loop expects \`batches\` to be a positive integer, but received ${JSON.stringify(s.batches)}`);const o=YU(t)?t:await t.iterator();let a=0,l=0;for(;n?l{if(c.value){const{xs:p,ys:u}=cA(e,c.value),h=p.concat(u),d=N(()=>i(h));if(ce(h),l===0)for(let f=0;fW(r[f],C(m,y))),l>0&&ce(b)}ce(d),a+=m,++l}return r}),c.done){n&&console.warn(`Your dataset iterator ran out of data during evaluateDataset(). Interrupting evalution. Make sure that your dataset can generate at least \`batches\` batches (in this case, ${s.batches} batches). You may need to use the repeat() function when building your dataset.`);break}}for(let c=0;c0&&Number.isInteger(e),()=>`batchSize is required to be a positive integer, but got ${e}`)}function Ea(e,t,s){return e==null?[null]:Array.isArray(e)?e.map(n=>Mi(n,t,s-t)):Mi(e,t,s-t)}function $d(e,t){return N(()=>e==null?null:Array.isArray(e)?e.map(s=>$d(s,t)):hd(e,t.dtype==="int32"?t:t.toInt()))}function Wd(e,t){const s=[];let n=0,i=null;for(;n=e&&(i=e),s.push([n,i]),n=i;return s}async function KU(e,t,s,n,i,r,o,a,l,c,p,u,h,d,m){i==null&&(i=32),r==null&&(r=1),p==null&&(p=!0),h==null&&(h=0);let f=!1;if(l!=null&&c!=null&&(f=!0),m!=null&&(f=!0,d==null))throw new _("Can only use `validationSteps` when doing step-wise training, i.e., `stepsPerEpoch` must be set.");const y=e.checkNumSamples(s,i,d,"steps_per_epoch");let b;y!=null&&(b=ps(0,y)),o==null&&(o=1);const{callbackList:S,history:x}=Cd(a,o,r,h,y,d,i,f,u);S.setModel(e),e.history=x,await S.onTrainBegin(),e.stopTraining_=!1;for(let I=h;I{const M=R[D][0],B=R[D][1],V=Mi(k,M,B-M);F.batch=D,F.size=B-M;const Y=$d(s,V),G=t(Y);for(let Z=0;Z0){if(m=!0,n.validationData.length===2)o=n.validationData[0],a=n.validationData[1];else throw n.validationData.length===3?new ae("validationData including sample weights is not supported yet."):new _(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${n.validationData} is invalid.`);const R=!0,D=await e.standardizeUserData(o,a,null,null,R,u);l=D[0],c=D[1],f=l.concat(c)}else if(n.validationSplit!=null&&n.validationSplit>0&&n.validationSplit<1){m=!0;const R=Math.floor(i[0].shape[0]*(1-n.validationSplit)),D=i[0].shape[0];l=Ea(i,R,D),i=Ea(i,0,R),c=Ea(r,R,D),r=Ea(r,0,R),f=l.concat(c)}else n.validationSteps!=null&&(m=!0);const y=i.concat(r).concat(p);e.checkTrainableWeightsConsistency();const b=e.makeTrainFunction(),S=e.getDedupedMetricsNames();let x,I;m?(e.makeTestFunction(),x=e.testFunction,I=S.slice().concat(S.map(R=>"val_"+R))):(x=null,f=[],I=S.slice());const A=Nd(n.callbacks,n.yieldEvery),k=await KU(e,b,y,S,u,n.epochs,n.verbose,A,x,f,n.shuffle,I,n.initialEpoch,null,null);return k}finally{e.isTraining=!1,gr(i,t),gr(r,s),gr(l,o),gr(c,a),p!=null&&ce(p)}}function Yb(e){const t=[];e instanceof ue&&(e=[e]);for(let s=0;ss.push(i.id));else if(t!=null)for(const i in t){const r=t[i];s.push(r.id)}const n=[];if(e instanceof ue)s.indexOf(e.id)===-1&&n.push(e);else if(Array.isArray(e))e.forEach(i=>{s.indexOf(i.id)===-1&&n.push(i)});else if(e!=null)for(const i in e){const r=e[i];s.indexOf(r.id)===-1&&n.push(r)}n.forEach(i=>{i.isDisposed||i.dispose()})}function XU(e){return e instanceof ue}function Kb(e){return Array.isArray(e)}function mA(e){return!XU(e)&&!Kb(e)}function fA(e,t,s,n=!0,i=""){if(t==null||t.length===0){if(e!=null){let o=!1;if(Kb(e)&&e.length>0)o=!0;else if(mA(e)){for(const a in e)if(e.hasOwnProperty(a)){o=!0;break}}else o=!0;if(o)throw new _(`Error when checking model ${i} expected no data, but got ${e}`)}return[]}if(e==null)return t.map(o=>null);let r;if(mA(e)){e=e,r=[];for(const o of t){if(e[o]==null)throw new _(`No data provided for "${o}". Need data for each key in: ${t}`);r.push(e[o])}}else if(Kb(e)){if(e=e,e.length!==t.length)throw new _(`Error when checking model ${i}: the Array of Tensors that you are passing to your model is not the size the model expected. Expected to see ${t.length} Tensor(s), but instead got the following list of Tensor(s): ${e}`);r=e}else{if(e=e,t.length>1)throw new _(`The model ${i} expects ${t.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${e.shape}`);r=[e]}if(r=Yb(r),s!=null)for(let o=0;o=0&&c!==p)throw new _(`Error when checking ${i}: expected ${t[o]} to have shape [${s[o]}], but got array with shape [${a.shape}].`)}}return r}function JU(e,t,s){const n=hn(e.map(r=>r.shape[0]));n.sort();const i=hn(t.map(r=>r.shape[0]));if(i.sort(),n.length>1)throw new _(`All input Tensors (x) should have the same number of samples. Got array shapes: ${JSON.stringify(e.map(r=>r.shape))}`);if(i.length>1)throw new _(`All target Tensors (y) should have the same number of samples. Got array shapes: ${JSON.stringify(t.map(r=>r.shape))}`);if(n.length>0&&i.length>0&&!E.arraysEqual(n,i))throw new _(`Input Tensors should have the same number of samples as target Tensors. Found ${n[0]} input sample(s) and ${i[0]} target sample(s).`)}function ZU(e,t,s){const n=[ii,Oa,Co];for(let i=0;i1)throw new _(`The model expects ${t.length} ${i} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(e.shape)}.`);r=[e]}if(s!=null)for(let o=0;o[]);let s;if(typeof e=="string"||typeof e=="function")s=[e];else if(Array.isArray(e)||typeof e=="object")s=e;else throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${e}`);if(Array.isArray(s))return t.map(n=>s);{const n=[];for(const i of t){let r=s.hasOwnProperty(i)?s[i]:[];Array.isArray(r)||(r=[r]),n.push(r)}return n}}const e$="layers-model";class gn extends Mn{constructor(e){super(e);this.isTraining=!1}summary(e,t,s=console.log){if(!this.built)throw new _("This model has never been called, thus its weights have not been created yet. So no summary can be displayed. Build the model first (e.g., by calling it on some test data).");nA(this,e,t,s)}compile(e){if(e.loss==null&&(e.loss=[]),this.loss=e.loss,typeof e.optimizer=="string")this.optimizer_=tA(e.optimizer),this.isOptimizerOwned=!0;else{if(!(e.optimizer instanceof fs))throw new _("User-defined optimizer must be an instance of tf.Optimizer.");this.optimizer_=e.optimizer,this.isOptimizerOwned=!1}let t=[];if(!Array.isArray(e.loss)&&typeof e.loss!="string"&&typeof e.loss!="function"){e.loss=e.loss;for(const r in e.loss)if(this.outputNames.indexOf(r)===-1)throw new _(`Unknown entry in loss dictionary: "${r}". Only expected the following keys: ${this.outputNames}`);for(const r of this.outputNames)e.loss[r]==null&&console.warn(`Output "${r}" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to ${r} during training`),t.push(Rd(e.loss[r]))}else if(Array.isArray(e.loss)){if(e.loss.length!==this.outputs.length)throw new _(`When passing an Array as loss, it should have one entry per model output. The model has ${this.outputs.length} output(s), but you passed loss=${e.loss}.`);const r=e.loss;t=r.map(o=>Rd(o))}else{const r=Rd(e.loss);this.outputs.forEach(o=>{t.push(r)})}this.lossFunctions=t,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let r=0;r{for(let r=0;r1&&(this.metricsTensors.push([o,r]),this.metricsNames.push(this.outputNames[r]+"_loss"))}});const n=QU(e.metrics,this.outputNames),i=(r,o,a)=>{this.outputNames.length>1&&(o=this.outputNames[r]+"_"+o),this.metricsNames.push(o),this.metricsTensors.push([a,r])};Dn("metric",()=>{for(let r=0;r{const c="";let p,u,h;for(const d of l){if(typeof d=="string"&&["accuracy","acc","crossentropy","ce"].indexOf(d)!==-1){const f=this.internalOutputShapes[r];f[f.length-1]===1||this.lossFunctions[r]===Oa?["accuracy","acc"].indexOf(d)!==-1?u=hu:["crossentropy","ce"].indexOf(d)!==-1&&(u=Od):this.lossFunctions[r]===Ra?["accuracy","acc"].indexOf(d)!==-1?u=Ed:["crossentropy","ce"].indexOf(d)!==-1&&(u=Vb):["accuracy","acc"].indexOf(d)!==-1?u=du:["crossentropy","ce"].indexOf(d)!==-1&&(u=mu);let y;["accuracy","acc"].indexOf(d)!==-1?y="acc":["crossentropy","ce"].indexOf(d)!==-1&&(y="ce"),h=u,p=c+y}else{const f=eA(d);h=f,p=c+fu(d)}let m;Dn(p,()=>{m=h}),i(r,p,m)}};a(o)}}),this.collectedTrainableWeights=this.trainableWeights}checkTrainableWeightsConsistency(){if(this.collectedTrainableWeights==null)return;this.trainableWeights.length!==this.collectedTrainableWeights.length&&console.warn("Discrepancy between trainableweights and collected trainable weights. Did you set `model.trainable` without calling `model.compile()` afterwards?")}evaluate(e,t,s={}){const n=s.batchSize==null?32:s.batchSize;Ud(n);const i=!0,r=this.standardizeUserDataXY(e,t,i,n);try{const o=r[0].concat(r[1]);this.makeTestFunction();const a=this.testFunction,l=this.testLoop(a,o,n,s.verbose,s.steps);return Pt(l)}finally{gr(r[0],e),gr(r[1],t)}}async evaluateDataset(e,t){return this.makeTestFunction(),hA(this,e,t)}checkNumSamples(e,t,s,n="steps"){let i;if(s!=null){if(i=null,t!=null)throw new _(`If ${n} is set, batchSize must be null or undefined.Got batchSize = ${t}`)}else if(e!=null)Array.isArray(e)?i=e[0].shape[0]:i=e.shape[0];else throw new _(`Either the input data should have a defined shape, or ${n} shoud be specified.`);return i}execute(e,t){if(Array.isArray(t)&&t.length===0)throw new _("`outputs` is an empty Array, which is not allowed.");const s=Array.isArray(t),n=s?t:[t],i=this.retrieveSymbolicTensors(n),r=new Wi();if(e instanceof ue&&(e=[e]),Array.isArray(e)){if(e.length!==this.inputs.length)throw new _(`The number of inputs provided (${e.length}) does not match the number of inputs of this model (${this.inputs.length}).`);for(let a=0;ao.name);for(let o=0;o0){const n=[];throw t.forEach((i,r)=>{i==null&&n.push(e[r])}),new _(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(n)}`)}return t}predictLoop(e,t=32,s=!1){return N(()=>{const n=this.checkNumSamples(e);if(s)throw new ae("Verbose predictLoop() is not implemented yet.");const i=Wd(n,t),r=this.outputs.map(o=>[]);for(let o=0;o{const l=i[o][0],c=i[o][1],p=Ea(e,l,c),u=[];if(Array.isArray(p))for(let d=0;dr[c].push(l))}return Pt(r.map(o=>ge(o,0)))})}predict(e,t={}){const s=Yb(e);gA(s,this.inputNames,this.feedInputShapes,!1);try{const n=t.batchSize==null?32:t.batchSize;return Ud(n),this.predictLoop(s,n)}finally{gr(s,e)}}predictOnBatch(e){gA(e,this.inputNames,this.feedInputShapes,!0);const t=(Array.isArray(e)?e[0]:e).shape[0];return this.predictLoop(e,t)}standardizeUserDataXY(e,t,s=!0,n){if(this.optimizer_==null)throw new Is("You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).");const i=[];for(let r=0;r0&&e[0].shape[0]%n!==0)throw new _(`In a stateful network, you should only pass inputs with a number of samples that is divisible by the batch size ${n}. Found: ${e[0].shape[0]} sample(s).`);return[e,t]}async standardizeUserData(e,t,s,n,i=!0,r){const[o,a]=this.standardizeUserDataXY(e,t,i,r);if(s!=null)throw new Error("sample weight is not supported yet.");let l=null;if(n!=null){const c=Fd(n,this.outputNames);l=[];for(let p=0;p{const r=this.checkNumSamples(t,s,i,"steps"),o=[];if(n>0)throw new ae("Verbose mode is not implemented yet.");if(i!=null)throw new ae("steps mode in testLoop() is not implemented yet");{const a=Wd(r,s),l=Fe(ps(0,r));for(let c=0;c1){const r=Ob(e.slice(0,s),n);i+=`_${r}`}t.push(i)}return t}makeTrainFunction(){return e=>{const t=[],s=e.slice(0,this.inputs.length),n=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),i=e.slice(this.inputs.length+this.outputs.length,this.inputs.length+this.outputs.length*2),r=[],o=()=>{const p=[];for(let m=0;m1&&m{d=W(d,m)}),d},a=this.collectedTrainableWeights.map(p=>p.read()),l=!0,c=this.optimizer_.minimize(o,l,a);return[c].concat(r)}}makeTestFunction(){this.testFunction=e=>N(()=>{const t=[];let s;const n=e.slice(0,this.inputs.length),i=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),r=[];for(let l=0;lpn(t))}else{const t=Object.keys(this.loss);e={};const s=this.loss;for(const n of t)if(typeof s[n]=="string")e[n]=pn(s[n]);else throw new Error("Serialization of non-string loss is not supported.")}return e}getMetricIdentifiers(){if(typeof this.metrics=="string"||typeof this.metrics=="function")return[pn(fu(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(e=>pn(fu(e)));{const e={};for(const t in this.metrics)e[t]=pn(fu(this.metrics[t]));return e}}getTrainingConfig(){return{loss:this.getLossIdentifiers(),metrics:this.getMetricIdentifiers(),optimizer_config:{class_name:this.optimizer.getClassName(),config:this.optimizer.getConfig()}}}loadTrainingConfig(e){if(e.weighted_metrics!=null)throw new Error("Loading weight_metrics is not supported yet.");if(e.loss_weights!=null)throw new Error("Loading loss_weights is not supported yet.");if(e.sample_weight_mode!=null)throw new Error("Loading sample_weight_mode is not supported yet.");const t=Ro(e.optimizer_config),s=ws(t);let n;if(typeof e.loss=="string")n=ki(e.loss);else if(Array.isArray(e.loss))n=e.loss.map(r=>ki(r));else if(e.loss!=null){n={};for(const r in e.loss)n[r]=ki(e.loss[r])}let i;if(Array.isArray(e.metrics))i=e.metrics.map(r=>ki(r));else if(e.metrics!=null){i={};for(const r in e.metrics)i[r]=ki(e.metrics[r])}this.compile({loss:n,metrics:i,optimizer:s})}async save(e,t){if(typeof e=="string"){const l=Ot.getSaveHandlers(e);if(l.length===0)throw new _(`Cannot find any save handlers for URL '${e}'`);if(l.length>1)throw new _(`Found more than one (${l.length}) save handlers for URL '${e}'`);e=l[0]}if(e.save==null)throw new _("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");const s=await Ot.encodeWeights(this.getNamedWeights(t)),n=!1,i=null,r=this.toJSON(i,n),o={modelTopology:r,format:e$,generatedBy:`TensorFlow.js tfjs-layers v${fr}`,convertedBy:null},a=t==null?!1:t.includeOptimizer;if(a&&this.optimizer!=null){o.trainingConfig=this.getTrainingConfig();const l="optimizer",{data:c,specs:p}=await Ot.encodeWeights(await this.optimizer.getWeights(),l);s.specs.push(...p),s.data=Ot.concatenateArrayBuffers([s.data,c])}if(this.userDefinedMetadata!=null){const l=!0;Hb(this.userDefinedMetadata,this.name,l),o.userDefinedMetadata=this.userDefinedMetadata}return o.weightData=s.data,o.weightSpecs=s.specs,e.save(o)}setUserDefinedMetadata(e){Hb(e,this.name),this.userDefinedMetadata=e}getUserDefinedMetadata(){return this.userDefinedMetadata}}gn.className="Model";P.registerClass(gn);async function yA(e,t){"modelTopology"in e||(e={modelTopology:e}),e=e;let s=e.modelTopology;s.model_config!=null&&(s=s.model_config);const n=Ro(s),i=ws(n,t);if(e.weightsManifest!=null){const r=await Ot.loadWeights(e.weightsManifest,e.pathPrefix,i.weights.map(a=>a.originalName)),o={};for(const a of i.weights)o[a.originalName]=r[a.originalName];i.loadWeights(o),ce(r)}return i}async function bA(e,t){if(t==null&&(t={}),typeof e=="string"){const s=Ot.getLoadHandlers(e,t);if(s.length===0)s.push(Ot.browserHTTPRequest(e,t));else if(s.length>1)throw new _(`Found more than one (${s.length}) load handlers for URL '${e}'`);e=s[0]}return t$(e,void 0,t)}async function t$(e,t,s){if(s==null&&(s={}),e.load==null)throw new _("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");const n=await e.load();let i=n.modelTopology;i.model_config!=null&&(i=i.model_config);const r=s.strict==null?!0:s.strict,o=n.weightData!=null&&n.weightSpecs!=null&&r,a=ws(Ro(i),t,o),l=n.trainingConfig;if(l!=null&&a.loadTrainingConfig(l),n.userDefinedMetadata!=null&&a.setUserDefinedMetadata(n.userDefinedMetadata),n.weightData!=null){if(n.weightSpecs==null)throw new _("LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.");const{modelWeights:c,optimizerWeights:p}=s$(n.weightData,n.weightSpecs);a.loadWeights(c,r),a.optimizer!=null&&p.length>0&&await a.optimizer.setWeights(p),ce(c),ce(p.map(u=>u.tensor))}return a}function s$(e,t){const s=Ot.decodeWeights(e,t),n={},i=[];return t.forEach(r=>{r.group==="optimizer"?i.push({name:r.name,tensor:s[r.name]}):n[r.name]=s[r.name]}),{modelWeights:n,optimizerWeights:i}}class yr extends gn{constructor(e){super({inputs:[],outputs:[]});if(e=e||{},this.trainable=!0,this.built=!1,this.name=e.name!=null?e.name:dr("sequential_"),e.layers!=null)for(const t of e.layers)this.add(t)}checkShape(e){const t=e.inboundNodes[0].outputTensors[0].shape;if(t.some(s=>s<0))throw new _(`Negative dimension size caused by adding layer ${e.name} with input shape [${e.inboundNodes[0].inputTensors[0].shape}]`)}add(e){const t=e instanceof yr||e instanceof gn;let s;if(t){if(s=e,s.outputs.length!==1)throw new _("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");if(s.inputs.length!==1)throw new _("All layers in a Sequential model should have a single input tensor. For multi-input layers, use the functional API.")}if(this.outputs.length===0){if(e.inboundNodes.length===0){if(e.batchInputShape==null)throw new _("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");const n=Id({batchShape:e.batchInputShape,dtype:e.dtype,name:e.name+"_input"});e.apply(n)}if(t)this.outputs=s.outputs,this.inputs=s.inputs;else{if(e.inboundNodes.length!==1)throw new _(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${e.name} which has ${e.inboundNodes.length} pre-existing inbound connections.`);if(e.inboundNodes[0].outputTensors.length!==1)throw new _("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[e.inboundNodes[0].outputTensors[0]],this.inputs=Wb(this.outputs[0])}this.inboundNodes=[],new Ao({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:cn(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map(n=>n.shape),outputShapes:this.outputs[0].shape})}else{const n=e.apply(this.outputs[0]);if(Array.isArray(n))throw new TypeError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[n],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(e),this.built=!1}pop(){if(this.layers.length===0)throw new TypeError("There are no layers in the model.");if(this.layers.pop(),this.layers.length===0)this.outputs=[],this.inboundNodes=[],this.outboundNodes=[];else{const e=this.layers.length-1;this.layers[e].outboundNodes=[],this.outputs=[this.layers[e].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(e,t){return this.model==null&&this.build(),this.model.call(e,t)}build(e){if(Ue(e),this.inputs.length===0||this.outputs.length===0)throw new TypeError("Sequential model cannot be built: model is empty. Add some layers first.");this.model=new gn({inputs:this.inputs,outputs:this.outputs[0],name:this.name+"_model"}),this.model.trainable=this.trainable,this.supportsMasking=this.model.supportsMasking,this.inputLayers=this.model.inputLayers,this.inputLayersNodeIndices=this.model.inputLayersNodeIndices,this.inputLayersTensorIndices=this.model.inputLayersTensorIndices,this.outputLayers=this.model.outputLayers,this.outputLayersNodeIndices=this.model.outputLayersNodeIndices,this.outputLayersTensorIndices=this.model.outputLayersTensorIndices,this.nodesByDepth=this.model.nodesByDepth,this.containerNodes=this.model.containerNodes,this.outputNames=this.model.outputNames,this.inputNames=this.model.inputNames,this.built=!0}countParams(){return this.built||this.build(),super.countParams()}summary(e,t,s=console.log){this.built||this.build(),super.summary(e,t,s)}setWeights(e){this.model==null&&this.build(),this.model.setWeights(e)}evaluate(e,t,s={}){if(!this.built)throw new Is("The model needs to be compiled before being used.");return this.model.evaluate(e,t,s)}async evaluateDataset(e,t){if(!this.built)throw new Is("The model needs to be compiled before being used.");return this.model.evaluateDataset(e,t)}predict(e,t={}){return this.model==null&&this.build(),this.model.predict(e,t)}predictOnBatch(e){return this.model==null&&this.build(),this.model.predictOnBatch(e)}compile(e){this.build(),this.model.compile(e),this.optimizer_=this.model.optimizer,this.isOptimizerOwned=this.model.isOptimizerOwned,this.loss=this.model.loss,this.metrics=this.model.metrics,this.metricsTensors=this.model.metricsTensors,this.metricsNames=this.model.metricsNames}get optimizer(){return this.model==null?void 0:this.model.optimizer}set optimizer(e){this.model.optimizer=e}async fit(e,t,s={}){if(!this.built)throw new Is("The model needs to be compiled before being used.");return this.model.fit(e,t,s)}async fitDataset(e,t){if(!this.built)throw new Is("The model needs to be compiled before being used.");return this.model.fitDataset(e,t)}async trainOnBatch(e,t){return this.model.trainOnBatch(e,t)}static fromConfig(e,t,s={},n=!1){let i,r={};if(t instanceof Array){if(!(t[0].className!=null)||t[0].className==="Merge")throw new _("Legacy serialization format not supported yet.");i=t}else E.assert(t.layers!=null,()=>"When the config data for a Sequential model is not an Array, it must be an Object that contains the 'layers' field."),i=t.layers,delete t.layers,r=t;const o=new e(r);if(!(o instanceof yr))throw new ae(`Sequential.fromConfig called on non-Sequential input: ${o}`);for(const a of i){const l=void 0,c=ws(a,l,n);n&&c.setFastWeightInitDuringBuild(!0),o.add(c)}return o}set stopTraining(e){if(this.model==null)throw new _("Cannot set the stopTraining property of a sequential model before it is compiled.");this.model.stopTraining=e}get stopTraining(){if(this.model==null)throw new _("Cannot get the stopTraining property of a sequential model before it is compiled.");return this.model.stopTraining}getConfig(){const e=[];for(const t of this.layers){const s={};s.className=t.getClassName(),s.config=t.getConfig(),e.push(s)}return{name:this.name,layers:e}}}yr.className="Sequential";P.registerClass(yr);function wA(e){return new gn(e)}function xA(e){return new yr(e)}function LA(e,t){return t==null&&(t={}),bA(e,t)}function zd(e){return Id(e)}function SA(e,t){Ks.registerCallbackConstructor(e,t)}class Xs extends P.Serializable{getConfig(){return{}}}class vA extends Xs{apply(e,t=1){return jI(e,t)}}vA.className="elu";P.registerClass(vA);class TA extends Xs{apply(e){return ao(e)}}TA.className="selu";P.registerClass(TA);class IA extends Xs{apply(e){return ke(e)}}IA.className="relu";P.registerClass(IA);class AA extends Xs{apply(e){return N(()=>Vs(6,ke(e)))}}AA.className="relu6";P.registerClass(AA);class NA extends Xs{apply(e){return e}}NA.className="linear";P.registerClass(NA);class CA extends Xs{apply(e){return Ss(e)}}CA.className="sigmoid";P.registerClass(CA);class RA extends Xs{apply(e){return GI(e)}}RA.className="hardSigmoid";P.registerClass(RA);class OA extends Xs{apply(e){return Rn(e)}}OA.className="softplus";P.registerClass(OA);class EA extends Xs{apply(e){return VI(e)}}EA.className="softsign";P.registerClass(EA);class kA extends Xs{apply(e){return Zn(e)}}kA.className="tanh";P.registerClass(kA);class Bd extends Xs{apply(e,t=-1){return Yt(e,t)}}Bd.className="softmax";P.registerClass(Bd);class _A extends Xs{apply(e,t=-1){return to(e,t)}}_A.className="logSoftmax";P.registerClass(_A);function xs(e){return e.getClassName()}function Xb(e,t={}){return si(e,P.SerializationMap.getMap().classNameMap,t,"activation")}function Un(e){if(e==null){const t={};return t.className="linear",t.config={},Xb(t)}if(typeof e=="string"){const t={};return t.className=e,t.config={},Xb(t)}else return e instanceof Xs?e:Xb(e)}function Jb(e){if(e!=null&&typeof e!="object")throw new Error(`Argument to L1L2 regularizer's constructor is expected to be an object, but received: ${e}`)}class DA extends P.Serializable{}class ka extends DA{constructor(e){super();Jb(e),this.l1=e==null||e.l1==null?.01:e.l1,this.l2=e==null||e.l2==null?.01:e.l2,this.hasL1=this.l1!==0,this.hasL2=this.l2!==0}apply(e){return N(()=>{let t=Ie([1]);return this.hasL1&&(t=W(t,te(C(this.l1,Je(e))))),this.hasL2&&(t=W(t,te(C(this.l2,Io(e))))),t.asScalar()})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(e,t){return new e({l1:t.l1,l2:t.l2})}}ka.className="L1L2";P.registerClass(ka);function FA(e){return Jb(e),new ka({l1:e!=null?e.l1:null,l2:0})}function MA(e){return Jb(e),new ka({l2:e!=null?e.l2:null,l1:0})}const UA={l1l2:"L1L2"};function Ae(e){return La(e)}function $A(e,t={}){return si(e,P.SerializationMap.getMap().classNameMap,t,"regularizer")}function Ye(e){if(e==null)return null;if(typeof e=="string"){const t=e in UA?UA[e]:e,s={className:t,config:{}};return $A(s)}else return e instanceof DA?e:$A(e)}class Pd extends be{constructor(e){super(e==null?{}:e);this.supportsMasking=!0,e!=null&&(this.maxValue=e.maxValue)}call(e,t){e=fe(e);let s=ke(e);return this.maxValue!=null&&(s=Dt(s,0,this.maxValue)),s}computeOutputShape(e){return e}getConfig(){const e={maxValue:this.maxValue},t=super.getConfig();return Object.assign(e,t),e}}Pd.className="ReLU";P.registerClass(Pd);class jd extends be{constructor(e){super(e==null?{}:e);this.DEFAULT_ALPHA=.3,e==null&&(e={}),this.alpha=e.alpha==null?this.DEFAULT_ALPHA:e.alpha}call(e,t){const s=fe(e);return Qr(s,this.alpha)}computeOutputShape(e){return e}getConfig(){const e={alpha:this.alpha},t=super.getConfig();return Object.assign(e,t),e}}jd.className="LeakyReLU";P.registerClass(jd);class Vd extends be{constructor(e){super(e==null?{}:e);if(this.DEFAULT_ALPHA_INITIALIZER="zeros",e==null&&(e={}),this.supportsMasking=!0,this.alphaInitializer=je(e.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=Ye(e.alphaRegularizer),this.alphaConstraint=it(e.alphaConstraint),e.sharedAxes==null)this.sharedAxes=null;else if(Array.isArray(e.sharedAxes))this.sharedAxes=e.sharedAxes;else if(typeof e.sharedAxes=="number")this.sharedAxes=[e.sharedAxes];else throw new _(`Expected sharedAxes to be a number or an array of numbers, but got ${e.sharedAxes}`)}build(e){e=Ue(e);const t=e.slice(1);if(this.sharedAxes!=null)for(const n of this.sharedAxes)t[n-1]=1;this.alpha=this.addWeight("alpha",t,"float32",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);const s={};if(this.sharedAxes!=null)for(let n=1;n(dt(t),t==="channelsFirst"?se(e,[0,2,3,1]):e))}function Zb(e,t){return N(()=>(dt(t),t==="channelsFirst"?se(e,[0,2,3,4,1]):e))}function n$(e,t,s,n=1,i="valid",r,o=1){return N(()=>{if(r==null&&(r=gs()),dt(r),e.shape.length!==3)throw new _(`The input of a conv1dWithBias operation should be 3, but is ${e.shape.length} instead.`);if(t.shape.length!==3)throw new _(`The kernel for a conv1dWithBias operation should be 3, but is ${t.shape.length} instead`);if(s!=null&&s.shape.length!==1)throw new _(`The bias for a conv1dWithBias operation should be 1, but is ${t.shape.length} instead`);if(r==="channelsFirst"&&(e=se(e,[0,2,1])),i==="causal")throw new ae("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let a=Hr(e,t,n,i==="same"?"same":"valid","NWC",o);return s!=null&&(a=Ys(a,s)),a})}function WA(e,t,s,n=[1,1],i="valid",r,o,a=null){return N(()=>{if(r==null&&(r=gs()),dt(r),e.rank!==3&&e.rank!==4)throw new _(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${e.rank}.`);if(t.rank!==3&&t.rank!==4)throw new _(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${e.rank}.`);let l=yu(e,r);if(i==="causal")throw new ae("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return l=Hs.conv2d({x:l,filter:t,strides:n,pad:i==="same"?"same":"valid",dilations:o,dataFormat:"NHWC",bias:s,activation:a}),r==="channelsFirst"&&(l=se(l,[0,3,1,2])),l})}function i$(e,t,s,n=[1,1,1],i="valid",r,o){return N(()=>{if(r==null&&(r=gs()),dt(r),e.rank!==4&&e.rank!==5)throw new _(`conv3dWithBias expects input to be of rank 4 or 5, but received ${e.rank}.`);if(t.rank!==4&&t.rank!==5)throw new _(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${e.rank}.`);let a=Zb(e,r);if(i==="causal")throw new ae("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return a=Yr(a,t,n,i==="same"?"same":"valid","NDHWC",o),s!=null&&(a=Ys(a,s)),r==="channelsFirst"&&(a=se(a,[0,4,1,2,3])),a})}class Kd extends be{constructor(e,t){super(t);if(this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",Kd.verifyArgs(t),this.rank=e,jt(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new ae(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=Yd(t.kernelSize,e,"kernelSize"),this.strides=Yd(t.strides==null?1:t.strides,e,"strides"),this.padding=t.padding==null?"valid":t.padding,_s(this.padding),this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,dt(this.dataFormat),this.activation=Un(t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.biasInitializer=je(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=it(t.biasConstraint),this.biasRegularizer=Ye(t.biasRegularizer),this.activityRegularizer=Ye(t.activityRegularizer),this.dilationRate=Yd(t.dilationRate==null?1:t.dilationRate,e,"dilationRate"),this.rank===1&&Array.isArray(this.dilationRate)&&this.dilationRate.length!==1)throw new _(`dilationRate must be a number or an array of a single number for 1D convolution, but received ${JSON.stringify(this.dilationRate)}`);if(this.rank===2){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==2)throw new _(`dilationRate must be a number or array of two numbers for 2D convolution, but received ${JSON.stringify(this.dilationRate)}`)}else if(this.rank===3){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==3)throw new _(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}}static verifyArgs(e){if(qs("kernelSize"in e,"required key 'kernelSize' not in config"),typeof e.kernelSize!="number"&&!sd(e.kernelSize,"number",1,3))throw new _(`BaseConv expects config.kernelSize to be number or number[] with length 1, 2, or 3, but received ${JSON.stringify(e.kernelSize)}.`)}getConfig(){const e={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:xs(this.activation),useBias:this.useBias,biasInitializer:Me(this.biasInitializer),biasRegularizer:Ae(this.biasRegularizer),activityRegularizer:Ae(this.activityRegularizer),biasConstraint:Be(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}}class bu extends Kd{constructor(e,t){super(e,t);this.kernel=null,bu.verifyArgs(t),this.filters=t.filters,jt(this.filters,"filters"),this.kernelInitializer=je(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=it(t.kernelConstraint),this.kernelRegularizer=Ye(t.kernelRegularizer)}build(e){e=Ue(e);const t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new _(`The channel dimension of the input should be defined. Found ${e[t]}`);const s=e[t],n=this.kernelSize.concat([s,this.filters]);this.kernel=this.addWeight("kernel",n,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[{ndim:this.rank+2,axes:{[t]:s}}],this.built=!0}call(e,t){return N(()=>{e=fe(e);let s;const n=this.bias==null?null:this.bias.read(),i=nd(this.activation.getClassName());if(i!=null&&this.rank===2)s=WA(e,this.kernel.read(),n,this.strides,this.padding,this.dataFormat,this.dilationRate,i);else{if(this.rank===1)s=n$(e,this.kernel.read(),n,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)s=WA(e,this.kernel.read(),n,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)s=i$(e,this.kernel.read(),n,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new ae("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(s=this.activation.apply(s))}return s})}computeOutputShape(e){e=Ue(e);const t=[],s=this.dataFormat==="channelsLast"?e.slice(1,e.length-1):e.slice(2);for(let i=0;i 0 but got ${JSON.stringify(e.filters)}`)}}class _a extends bu{constructor(e){super(2,e);_a.verifyArgs(e)}getConfig(){const e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!sd(e.kernelSize,"number",1,2))throw new _(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(e.kernelSize)}.`)}}_a.className="Conv2D";P.registerClass(_a);class wu extends bu{constructor(e){super(3,e);wu.verifyArgs(e)}getConfig(){const e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!(Array.isArray(e.kernelSize)&&(e.kernelSize.length===1||e.kernelSize.length===3)))throw new _(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(e.kernelSize)}.`)}}wu.className="Conv3D";P.registerClass(wu);class Xd extends _a{constructor(e){super(e);if(this.inputSpec=[new rt({ndim:4})],this.padding!=="same"&&this.padding!=="valid")throw new _(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(e=Ue(e),e.length!==4)throw new _("Input should have rank 4; Received input shape: "+JSON.stringify(e));const t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new _("The channel dimension of the inputs should be defined. Found `None`.");const s=e[t],n=this.kernelSize.concat([this.filters,s]);this.kernel=this.addWeight("kernel",n,"float32",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],"float32",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new rt({ndim:4,axes:{[t]:s}})],this.built=!0}call(e,t){return N(()=>{let s=fe(e);if(s.shape.length!==4)throw new _(`Conv2DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${s.shape.length}`);const n=s.shape,i=n[0];let r,o;this.dataFormat==="channelsFirst"?(r=2,o=3):(r=1,o=2);const a=n[r],l=n[o],c=this.kernelSize[0],p=this.kernelSize[1],u=this.strides[0],h=this.strides[1],d=gu(a,u,c,this.padding),m=gu(l,h,p,this.padding),f=[i,d,m,this.filters];this.dataFormat!=="channelsLast"&&(s=se(s,[0,2,3,1]));let y=qr(s,this.kernel.read(),f,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(y=se(y,[0,3,1,2])),this.bias!=null&&(y=Ys(y,this.bias.read(),this.dataFormat)),this.activation!=null&&(y=this.activation.apply(y)),y})}computeOutputShape(e){e=Ue(e);const t=e.slice();let s,n,i;this.dataFormat==="channelsFirst"?(s=1,n=2,i=3):(s=3,n=1,i=2);const r=this.kernelSize[0],o=this.kernelSize[1],a=this.strides[0],l=this.strides[1];return t[s]=this.filters,t[n]=gu(t[n],a,r,this.padding),t[i]=gu(t[i],l,o,this.padding),t}getConfig(){const e=super.getConfig();return delete e.dilationRate,e}}Xd.className="Conv2DTranspose";P.registerClass(Xd);class zA extends bu{constructor(e,t){super(e,t);if(this.DEFAULT_DEPTHWISE_INITIALIZER="glorotUniform",this.DEFAULT_POINTWISE_INITIALIZER="glorotUniform",this.depthwiseKernel=null,this.pointwiseKernel=null,t.filters==null)throw new _("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(t.kernelInitializer!=null||t.kernelRegularizer!=null||t.kernelConstraint!=null)throw new _("Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.");if(t.padding!=null&&t.padding!=="same"&&t.padding!=="valid")throw new _(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(t.padding)}`);this.depthMultiplier=t.depthMultiplier==null?1:t.depthMultiplier,this.depthwiseInitializer=je(t.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=Ye(t.depthwiseRegularizer),this.depthwiseConstraint=it(t.depthwiseConstraint),this.pointwiseInitializer=je(t.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=Ye(t.pointwiseRegularizer),this.pointwiseConstraint=it(t.pointwiseConstraint)}build(e){if(e=Ue(e),e.length{e=fe(e);let s;if(this.rank===1)throw new ae("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(e=se(e,[0,2,3,1])),s=Ni(e,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(s=Ys(s,this.bias.read(),this.dataFormat)),this.activation!=null&&(s=this.activation.apply(s)),this.dataFormat==="channelsFirst"&&(s=se(s,[0,3,1,2])),s})}getConfig(){const e=super.getConfig();return delete e.rank,delete e.kernelInitializer,delete e.kernelRegularizer,delete e.kernelConstraint,e.depthwiseInitializer=Me(this.depthwiseInitializer),e.pointwiseInitializer=Me(this.pointwiseInitializer),e.depthwiseRegularizer=Ae(this.depthwiseRegularizer),e.pointwiseRegularizer=Ae(this.pointwiseRegularizer),e.depthwiseConstraint=Be(this.depthwiseConstraint),e.pointwiseConstraint=Be(this.pointwiseConstraint),e}}zA.className="SeparableConv";class Jd extends zA{constructor(e){super(2,e)}}Jd.className="SeparableConv2D";P.registerClass(Jd);class xu extends bu{constructor(e){super(1,e);xu.verifyArgs(e),this.inputSpec=[{ndim:3}]}getConfig(){const e=super.getConfig();return delete e.rank,delete e.dataFormat,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!sd(e.kernelSize,"number",1,1))throw new _(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(e.kernelSize)}.`)}}xu.className="Conv1D";P.registerClass(xu);class Zd extends be{constructor(e){super(e);typeof e.cropping=="number"?this.cropping=[[e.cropping,e.cropping],[e.cropping,e.cropping]]:typeof e.cropping[0]=="number"?this.cropping=[[e.cropping[0],e.cropping[0]],[e.cropping[1],e.cropping[1]]]:this.cropping=e.cropping,this.dataFormat=e.dataFormat===void 0?"channelsLast":e.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(e){return this.dataFormat==="channelsFirst"?[e[0],e[1],e[2]-this.cropping[0][0]-this.cropping[0][1],e[3]-this.cropping[1][0]-this.cropping[1][1]]:[e[0],e[1]-this.cropping[0][0]-this.cropping[0][1],e[2]-this.cropping[1][0]-this.cropping[1][1],e[3]]}call(e,t){return N(()=>{if(e=fe(e),this.dataFormat==="channelsLast"){const s=tu(e,this.cropping[0][0],e.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return tu(s,this.cropping[1][0],e.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{const s=tu(e,this.cropping[0][0],e.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return tu(s,this.cropping[1][0],e.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}})}getConfig(){const e={cropping:this.cropping,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}Zd.className="Cropping2D";P.registerClass(Zd);class Qd extends be{constructor(e){super(e);this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=e.size==null?this.DEFAULT_SIZE:e.size,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat}computeOutputShape(e){if(this.dataFormat==="channelsFirst"){const t=e[2]==null?null:this.size[0]*e[2],s=e[3]==null?null:this.size[1]*e[3];return[e[0],e[1],t,s]}else{const t=e[1]==null?null:this.size[0]*e[1],s=e[2]==null?null:this.size[1]*e[2];return[e[0],t,s,e[3]]}}call(e,t){return N(()=>{let s=fe(e);const n=s.shape;if(this.dataFormat==="channelsFirst"){s=se(s,[0,2,3,1]);const i=this.size[0]*n[2],r=this.size[1]*n[3],o=s.resizeNearestNeighbor([i,r]);return se(o,[0,3,1,2])}else{const i=this.size[0]*n[1],r=this.size[1]*n[2];return s.resizeNearestNeighbor([i,r])}})}getConfig(){const e={size:this.size,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}Qd.className="UpSampling2D";P.registerClass(Qd);function r$(e,t,s=[1,1],n="valid",i,r){return N(()=>{i==null&&(i=gs()),dt(i);let o=yu(e,i);if(e.rank!==4)throw new _(`Input for depthwiseConv2d is required to be 4-D, but is instead ${e.rank}-D`);if(t.rank!==4)throw new _(`depthwiseKernel is required to be 4-D, but is instead ${t.rank}-D`);return o=In(o,t,s,n==="same"?"same":"valid","NHWC",r),i==="channelsFirst"&&(o=se(o,[0,3,1,2])),o})}class em extends Kd{constructor(e){super(2,e);this.depthwiseKernel=null,this.depthMultiplier=e.depthMultiplier==null?1:e.depthMultiplier,this.depthwiseInitializer=je(e.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=it(e.depthwiseConstraint),this.depthwiseRegularizer=Ye(e.depthwiseRegularizer)}build(e){if(e=Ue(e),e.length<4)throw new _(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(e)}.`);const t=this.dataFormat==="channelsFirst"?1:3;if(e[t]==null||e[t]<0)throw new _(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${e[t]}).`);const s=e[t],n=[this.kernelSize[0],this.kernelSize[1],s,this.depthMultiplier];this.depthwiseKernel=this.addWeight("depthwise_kernel",n,null,this.depthwiseInitializer,this.depthwiseRegularizer,!0,this.depthwiseConstraint),this.useBias?this.bias=this.addWeight("bias",[s*this.depthMultiplier],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return N(()=>{e=fe(e);let s=r$(e,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(s=Ys(s,this.bias.read(),this.dataFormat)),this.activation!=null&&(s=this.activation.apply(s)),s})}computeOutputShape(e){e=Ue(e);const t=this.dataFormat==="channelsFirst"?e[2]:e[1],s=this.dataFormat==="channelsFirst"?e[3]:e[2],n=this.dataFormat==="channelsFirst"?e[1]*this.depthMultiplier:e[3]*this.depthMultiplier,i=yn(t,this.kernelSize[0],this.padding,this.strides[0]),r=yn(s,this.kernelSize[1],this.padding,this.strides[1]);return this.dataFormat==="channelsFirst"?[e[0],n,i,r]:[e[0],i,r,n]}getConfig(){const e=super.getConfig();return e.depthMultiplier=this.depthMultiplier,e.depthwiseInitializer=Me(this.depthwiseInitializer),e.depthwiseRegularizer=Ae(this.depthwiseRegularizer),e.depthwiseConstraint=Be(this.depthwiseRegularizer),e}}em.className="DepthwiseConv2D";P.registerClass(em);class Lu extends be{constructor(e){super(e);this.rate=Math.max(Math.min(e.rate,1),0),this.noiseShape=e.noiseShape,this.seed=e.seed,this.supportsMasking=!0}getNoiseShape(e){if(this.noiseShape==null)return this.noiseShape;const t=e.shape,s=[];for(let n=0;n{this.invokeCallHook(e,t);const s=fe(e);if(0dd(s,this.rate,i,this.seed),()=>s,n);return r}return e})}getConfig(){const e={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},t=super.getConfig();return Object.assign(e,t),e}dispose(){return super.dispose()}}Lu.className="Dropout";P.registerClass(Lu);class tm extends Lu{constructor(e){super(e);this.inputSpec=[{ndim:3}]}getNoiseShape(e){const t=e.shape;return[t[0],1,t[2]]}}tm.className="SpatialDropout1D";P.registerClass(tm);class sm extends be{constructor(e){super(e);if(this.activation=null,this.useBias=!0,this.kernel=null,this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",e.batchInputShape==null&&e.inputShape==null&&e.inputDim!=null){let t=null;e.batchSize!=null&&(t=e.batchSize),this.batchInputShape=[t,e.inputDim]}this.units=e.units,jt(this.units,"units"),this.activation=Un(e.activation),e.useBias!=null&&(this.useBias=e.useBias),this.kernelInitializer=je(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=je(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=it(e.kernelConstraint),this.biasConstraint=it(e.biasConstraint),this.kernelRegularizer=Ye(e.kernelRegularizer),this.biasRegularizer=Ye(e.biasRegularizer),this.activityRegularizer=Ye(e.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(e){e=Ue(e);const t=e[e.length-1];this.kernel==null&&(this.kernel=this.addWeight("kernel",[t,this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint))),this.inputSpec=[{minNDim:2,axes:{[-1]:t}}],this.built=!0}computeOutputShape(e){e=Ue(e);const t=e.slice();return t[t.length-1]=this.units,t}call(e,t){return N(()=>{this.invokeCallHook(e,t);const s=fe(e),n=nd(this.activation.getClassName());let i;return n!=null?i=mn(s,this.kernel.read(),n,this.bias?this.bias.read():null):(i=mn(s,this.kernel.read()),this.bias!=null&&(i=Ys(i,this.bias.read())),this.activation!=null&&(i=this.activation.apply(i))),i})}getConfig(){const e={units:this.units,activation:xs(this.activation),useBias:this.useBias,kernelInitializer:Me(this.kernelInitializer),biasInitializer:Me(this.biasInitializer),kernelRegularizer:Ae(this.kernelRegularizer),biasRegularizer:Ae(this.biasRegularizer),activityRegularizer:Ae(this.activityRegularizer),kernelConstraint:Be(this.kernelConstraint),biasConstraint:Be(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}}sm.className="Dense";P.registerClass(sm);class nm extends be{constructor(e){e=e||{},super(e),this.inputSpec=[{minNDim:3}],this.dataFormat=e.dataFormat}computeOutputShape(e){e=Ue(e);for(const t of e.slice(1))if(t==null)throw new _(`The shape of the input to "Flatten" is not fully defined (got ${e.slice(1)}). Make sure to pass a complete "input_shape" or "batch_input_shape" argument to the first layer in your model.`);return[e[0],dn(e,1)]}call(e,t){return N(()=>{this.invokeCallHook(e,t);let s=fe(e);if(this.dataFormat==="channelsFirst"&&s.rank>1){const n=[0];for(let i=2;i{this.invokeCallHook(e,t);const s=fe(e);return this.activation.apply(s)})}getConfig(){const e={activation:xs(this.activation)},t=super.getConfig();return Object.assign(e,t),e}}im.className="Activation";P.registerClass(im);class rm extends be{constructor(e){super(e);this.n=e.n,this.inputSpec=[{ndim:2}]}computeOutputShape(e){return[e[0],this.n,e[1]]}call(e,t){return N(()=>(e=fe(e),zI(e,this.n)))}getConfig(){const e={n:this.n},t=super.getConfig();return Object.assign(e,t),e}}rm.className="RepeatVector";P.registerClass(rm);class om extends be{constructor(e){super(e);this.targetShape=e.targetShape;for(let t=0;t{this.invokeCallHook(e,t);const s=fe(e),n=s.shape,i=n.slice(0,1).concat(this.fixUnknownDimension(n.slice(1),this.targetShape));return s.reshape(i)})}getConfig(){const e={targetShape:this.targetShape},t=super.getConfig();return Object.assign(e,t),e}}om.className="Reshape";P.registerClass(om);class am extends be{constructor(e){super(e);if(e.dims==null)throw new Error("Required configuration field `dims` is missing during Permute constructor call.");if(!Array.isArray(e.dims))throw new Error(`Permute constructor requires \`dims\` to be an Array, but received ${e.dims} instead.`);const t=ps(1,e.dims.length+1);if(!E.arraysEqual(e.dims.slice().sort(),t))throw new Error("Invalid permutation `dims`: "+JSON.stringify(e.dims)+" `dims` must contain consecutive integers starting from 1.");this.dims=e.dims,this.dimsIncludingBatch=[0].concat(this.dims),this.inputSpec=[new rt({ndim:this.dims.length+1})]}computeOutputShape(e){e=Ue(e);const t=e.slice();return this.dims.forEach((s,n)=>{t[n+1]=e[s]}),t}call(e,t){return se(fe(e),this.dimsIncludingBatch)}getConfig(){const e={dims:this.dims},t=super.getConfig();return Object.assign(e,t),e}}am.className="Permute";P.registerClass(am);class lm extends be{constructor(e){super(e==null?{}:e);this.supportsMasking=!0,e!=null?this.maskValue=e.maskValue==null?0:e.maskValue:this.maskValue=0}computeOutputShape(e){return e}getConfig(){const e=super.getConfig(),t={maskValue:this.maskValue};return Object.assign(t,e),t}computeMask(e,t){const s=fe(e),n=-1;return sr(Es(s,this.maskValue),n)}call(e,t){return N(()=>{this.invokeCallHook(e,t);const s=fe(e),n=-1,i=!0,r=sr(Es(s,this.maskValue),n,i),o=s.mul(r.asType(s.dtype));return o})}}lm.className="Masking";P.registerClass(lm);class cm extends be{constructor(e){super(e);if(this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER="randomUniform",e.batchInputShape==null&&e.inputShape==null){let t=null;e.batchSize!=null&&(t=e.batchSize),e.inputLength==null?this.batchInputShape=[t,null]:this.batchInputShape=[t].concat(qe(e.inputLength))}this.inputDim=e.inputDim,jt(this.inputDim,"inputDim"),this.outputDim=e.outputDim,jt(this.outputDim,"outputDim"),this.embeddingsInitializer=je(e.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=Ye(e.embeddingsRegularizer),this.activityRegularizer=Ye(e.activityRegularizer),this.embeddingsConstraint=it(e.embeddingsConstraint),this.maskZero=e.maskZero,this.supportsMasking=e.maskZero,this.inputLength=e.inputLength}build(e){this.embeddings=this.addWeight("embeddings",[this.inputDim,this.outputDim],this.dtype,this.embeddingsInitializer,this.embeddingsRegularizer,!0,this.embeddingsConstraint),this.built=!0}warnOnIncompatibleInputShape(e){}computeMask(e,t){return N(()=>this.maskZero?(e=fe(e),Es(e,ne(e))):null)}computeOutputShape(e){if(e=Ue(e),this.inputLength==null)return[...e,this.outputDim];const t=qe(this.inputLength);if(t.length!==e.length-1)throw new _(`"inputLength" is ${this.inputLength}, but received input shape has shape ${e}`);{let s=0;for(let n=0;n{this.invokeCallHook(e,t);let s=fe(e);s.dtype!=="int32"&&(s=Di(s,"int32"));const n=hd(this.embeddings.read(),s.as1D());return n.reshape(Ue(this.computeOutputShape(s.shape)))})}getConfig(){const e={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:Me(this.embeddingsInitializer),embeddingsRegularizer:Ae(this.embeddingsRegularizer),activityRegularizer:Ae(this.activityRegularizer),embeddingsConstraint:Be(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},t=super.getConfig();return Object.assign(e,t),e}}cm.className="Embedding";P.registerClass(cm);class Eo extends be{constructor(e){super(e||{});this.supportsMasking=!0}mergeFunction(e){throw new ae()}computeElementwiseOpOutputShape(e,t){if(e==null||t==null)return null;if(e.length1)throw new _(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(e)}.`);let s=e[0]==null?null:e[0].slice(1);for(let i=1;ii.length);e.indexOf(null)===-1&&hn(n).length===1?this.reshapeRequired=!1:this.reshapeRequired=!0}call(e,t){return N(()=>{if(e=e,this.reshapeRequired){const s=[],n=e.map(i=>i.rank);if(n.indexOf(null)===-1){const i=Fn(n);for(let r of e){const o=r.rank;for(let a=0;a1){const c=ps(1,l).concat([0]);s.push(se(a,c)),i=!0}else s.push(a)}let r=this.mergeFunction(s);const o=r.rank;if(i){if(o==null){const a=r.shape,l=a.length,c=a[l-1],p=[c].concat(a.slice(0,a.length-1));r=se(r.reshape([-1,c]),[1,0]).reshape(p)}else if(o>1){const a=[o-1].concat(ps(0,o-1));r=se(r,a)}}return r}}else return this.mergeFunction(e)})}computeOutputShape(e){e=e;let t;e[0]==null?t=null:t=e[0].slice(1);for(let n=1;n{if(t==null)return null;if(!Array.isArray(t))throw new _("`mask` should be an Array");if(!Array.isArray(e))throw new _("`inputs` should be an Array");if(t.length!==e.length)throw new _(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${e.length} vs ${t.length})`);if(t.every(n=>n==null))return null;t=t.map(n=>n==null?n:Nt(n,0));let s=t[0];for(let n=1;n{let t=e[0].clone();for(let s=1;s{let t=e[0].clone();for(let s=1;s{let t=e[0].clone();for(let s=1;s{let t=e[0];for(let s=1;s{let t=e[0];for(let s=1;s1)throw new _("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(e))}mergeFunction(e){return N(()=>ud(e,this.axis))}computeOutputShape(e){if(!(Array.isArray(e)&&Array.isArray(e[0])))throw new _("A `Concatenate` layer should be called on a list of inputs.");const t=e,s=t[0].slice(),n=this.axis<0?s.length+this.axis:this.axis;for(const i of t.slice(1)){if(s[n]==null||i[n]==null){s[n]=null;break}s[n]+=i[n]}return s}computeMask(e,t){if(t==null)return null;if(!Array.isArray(t))throw new _("`mask` should be an array for Concatenate");if(!Array.isArray(e))throw new _("`inputs` should be an array for Concatenate");if(t.length!==e.length)throw new _(`Mismatch in the length of mask (${t.length}) and the legnth of inputs (${e.length})`);return N(()=>{let s=!0;if(t.forEach(r=>{if(r!=null){s=!1;return}}),s)return null;const n=[];for(let r=0;r3||t.shape.length>3)throw new ae("batchDot is not implemented for tensors of 4D or higher rank yet");if(E.assert(e.shape.length>=2,()=>`batchDot requires the rank of x to be >= 2, but got ${e.shape.length}`),E.assert(e.shape.length>=2,()=>`batchDot requires the rank of y to be >= 2, but got ${t.shape.length}`),typeof s=="number"&&(s=[s,s]),e.dtype==="complex64"||t.dtype==="complex64")throw new ae("batchDot is not implemented for complex64-type Tensors yet.");const n=e.shape.length,i=t.shape.length;s==null&&(s=[n-1,i-2]);const r=s;return N(()=>{let o;if(n>i){o=n-i;const l=[];for(let c=0;cn){o=i-n;const l=[];for(let c=0;c0){let l;n>i?l=n+i-3:l=n-1;const c=[];for(let p=l;p"A `Dot` layer should be called on a list of exactly 2 inputs.");const t=e[0],s=e[1];if(t.length>3||s.length>3)throw new ae("Dot layer does not support tensors of 4D or higher rank yet.");const n=this.interpretAxes(t,s);if(t[n[0]]!==s[n[1]])throw new _(`Dimension incompatibility: ${t[n[0]]} !== ${s[n[1]]}`)}mergeFunction(e){if(e.length!==2)throw new _(`A \`Dot\` layer must be called on exactly 2 inputs, but received ${e.length} input(s).`);let t=e[0],s=e[1],n;return Array.isArray(this.axes)?n=this.axes.map((i,r)=>Su(i,e[r].shape.length)):n=[Su(this.axes,t.shape.length),Su(this.axes,s.shape.length)],this.normalize&&(t=cu(t,n[0]),s=cu(s,n[1])),o$(t,s,n)}interpretAxes(e,t){let s;return Array.isArray(this.axes)?s=this.axes:s=[Su(this.axes,e.length),Su(this.axes,t.length)],s}computeOutputShape(e){E.assert(Array.isArray(e)&&e.length===2&&Array.isArray(e[0])&&Array.isArray(e[1]),()=>"A `Dot` layer should be called on a list of exactly 2 inputs.");const t=e[0].slice(),s=e[1].slice();if(t.length>3||s.length>3)throw new ae("Dot layer does not support tensors of 4D or higher rank yet.");const n=this.interpretAxes(t,s);t.splice(n[0],1),s.splice(n[1],1),s.splice(0,1);const i=t.concat(s);return i.length===1&&i.push(1),i}computeMask(e,t){return null}getConfig(){const e={axes:this.axes,normalize:this.normalize},t=super.getConfig();return Object.assign(e,t),e}}gm.className="Dot";P.registerClass(gm);class ym extends be{constructor(e){super(e);this.supportsMasking=!0,this.stddev=e.stddev}computeOutputShape(e){return e}getConfig(){const e=super.getConfig(),t={stddev:this.stddev};return Object.assign(t,e),t}call(e,t){return N(()=>{this.invokeCallHook(e,t);const s=fe(e),n=()=>va(s.shape,0,this.stddev).add(s),i=Ui(n,()=>s,t.training||!1);return i})}}ym.className="GaussianNoise";P.registerClass(ym);class bm extends be{constructor(e){super(e);this.supportsMasking=!0,this.rate=e.rate}computeOutputShape(e){return e}getConfig(){const e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return N(()=>{this.invokeCallHook(e,t);const s=fe(e);if(this.rate>0&&this.rate<1){const n=()=>{const i=Math.sqrt(this.rate/(1-this.rate));return s.mul(va(s.shape,1,i))};return Ui(n,()=>s,t.training||!1)}return s})}}bm.className="GaussianDropout";P.registerClass(bm);class wm extends be{constructor(e){super(e);this.supportsMasking=!0,this.rate=e.rate,this.noiseShape=e.noiseShape}_getNoiseShape(e){return this.noiseShape||fe(e).shape}computeOutputShape(e){return e}getConfig(){const e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return N(()=>{if(this.rate<1&&this.rate>0){const s=this._getNoiseShape(e),n=()=>{const i=fe(e),r=1.6732632423543772,o=1.0507009873554805,a=-r*o;let l=as(Gs(s),this.rate);l=Di(l,"float32");const c=((1-this.rate)*(1+this.rate*a**2))**-.5,p=-c*a*this.rate,u=i.mul(l).add(l.add(-1).mul(a));return u.mul(c).add(p)};return Ui(n,()=>fe(e),t.training||!1)}return e})}}wm.className="AlphaDropout";P.registerClass(wm);function vu(e,t,s,n,i,r=.001){let o;if(e.rank===2)o=gp(e,t,s,n,i,r);else if(e.rank===3)o=yp(e,t,s,n,i,r);else if(e.rank===4)o=bp(e,t,s,n,i,r);else throw new ae(`batchNormalization is not implemented for array of rank ${e.rank} yet`);return o}function a$(e,t,s,n,i=.001){return N(()=>{const r=lr(e,n),o=r.mean,a=r.variance,l=vu(e,o,a,s,t,i);return[l,o,a]})}function l$(e,t,s,n,i=.001){return N(()=>{const r=lr(e,n),o=r.mean,a=r.variance,l=[];for(const m of ps(0,e.rank))n.indexOf(m)!==-1?l.push(1):l.push(e.shape[m]);const c=o.reshape(l),p=a.reshape(l),u=t==null?null:t.reshape(l),h=s==null?null:s.reshape(l),d=vu(e,c,p,h,u,i);return[d,o,a]})}function c$(e,t,s,n,i=.001){return E.arraysEqual(n.slice().sort(),ps(0,e.rank-1))?a$(e,t,s,n,i):l$(e,t,s,n,i)}class xm extends be{constructor(e){e==null&&(e={}),super(e),this.supportsMasking=!0,this.axis=e.axis==null?-1:e.axis,this.momentum=e.momentum==null?.99:e.momentum,this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=je(e.betaInitializer||"zeros"),this.gammaInitializer=je(e.gammaInitializer||"ones"),this.movingMeanInitializer=je(e.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=je(e.movingVarianceInitializer||"ones"),this.betaConstraint=it(e.betaConstraint),this.gammaConstraint=it(e.gammaConstraint),this.betaRegularizer=Ye(e.betaRegularizer),this.gammaRegularizer=Ye(e.gammaRegularizer)}build(e){e=Ue(e);const t=this.axis>=0?this.axis:this.axis+e.length,s=e[t];if(s==null)throw new _(`Axis ${t} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(e)}.`);this.inputSpec=[new rt({ndim:e.length,axes:{[t]:s}})];const n=[s];this.scale&&(this.gamma=this.addWeight("gamma",n,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight("beta",n,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight("moving_mean",n,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight("moving_variance",n,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(e,t){return N(()=>{const s=t.training==null?!1:t.training,n=fe(e),i=n.shape,r=i.length,o=ps(0,r),a=this.axis>=0?this.axis:this.axis+r;o.splice(a,1);const l=cn(1,r);l[a]=i[a];const c=o.slice();c.sort();const p=!E.arraysEqual(c,ps(0,r).slice(0,r-1)),u=()=>{if(p){const b=this.movingMean.read().reshape(l),S=this.movingVariance.read().reshape(l),x=this.center?this.beta.read().reshape(l):null,I=this.scale?this.gamma.read().reshape(l):null;return vu(n,b,S,x,I,this.epsilon)}else return vu(n,this.movingMean.read(),this.movingVariance.read(),this.beta==null?null:this.beta.read(),this.gamma==null?null:this.gamma.read(),this.epsilon)};if(!s)return u();const[h,d,m]=c$(n,this.gamma.read(),this.beta.read(),o,this.epsilon),f=(b,S,x)=>{N(()=>{const I=1-x,A=b.read(),k=A.sub(S).mul(I);b.write(A.sub(k))})},y=()=>{f(this.movingMean,d,this.momentum),f(this.movingVariance,m,this.momentum)};return y(),h})}getConfig(){const e={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:Me(this.betaInitializer),gammaInitializer:Me(this.gammaInitializer),movingMeanInitializer:Me(this.movingMeanInitializer),movingVarianceInitializer:Me(this.movingVarianceInitializer),betaRegularizer:Ae(this.betaRegularizer),gammaRegularizer:Ae(this.gammaRegularizer),betaConstraint:Be(this.betaConstraint),gammaConstraint:Be(this.gammaConstraint)},t=super.getConfig();return Object.assign(e,t),e}}xm.className="BatchNormalization";P.registerClass(xm);class Lm extends be{constructor(e){if(e==null&&(e={}),super(e),this.axis=e.axis==null?-1:e.axis,typeof this.axis=="number"){if(!Number.isInteger(this.axis))throw new Error(`Expected axis to be an integer, but received ${this.axis}`)}else if(Array.isArray(this.axis)){for(const t of this.axis)if(!Number.isInteger(t))throw new Error(`Expected axis to be an array of integers, but received ${JSON.stringify(this.axis)}`)}else throw new Error(`Expected axis to be an integer or an array of integers, but received ${JSON.stringify(this.axis)}`);this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=je(e.betaInitializer||"zeros"),this.gammaInitializer=je(e.gammaInitializer||"ones"),this.betaRegularizer=Ye(e.betaRegularizer),this.gammaRegularizer=Ye(e.gammaRegularizer),this.supportsMasking=!0}build(e){e=Ue(e);const t=e.length;typeof this.axis=="number"&&(this.axis=[this.axis]);for(let i=0;i=t)throw new Error(`Invalid axis: ${i}`);if(this.axis.length!==hn(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);const s=this.axis.map(i=>e[i]),n=!0;this.scale?this.gamma=this.addWeight("gamma",s,"float32",this.gammaInitializer,this.gammaRegularizer,n):this.gamma=null,this.center?this.beta=this.addWeight("beta",s,"float32",this.betaInitializer,this.betaRegularizer,n):this.beta=null,this.built=!0}call(e,t){const s=fe(e),n=s.shape,i=n.length;return N(()=>{const r=!0;let{mean:o,variance:a}=lr(s,this.axis,r);const l=cn(1,i);for(const m of this.axis)l[m]=n[m];const c=m=>m!=null&&m.shape.length!==i&&this.axis!==[i-1]?m.reshape(l):m;let p=c(this.gamma.read()),u=c(this.beta.read());const h=[],d=[];for(let m=0;m{if(e.rank!==4)throw new _(`temporalPadding expects input tensor to be 4-D, but received a ${e.rank}-D tensor.`);if(t==null&&(t=[[1,1],[1,1]]),t.length!==2||t[0].length!==2||t[1].length!==2)throw new _("spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.");if(s==null&&(s=gs()),s!=="channelsLast"&&s!=="channelsFirst")throw new _(`Unknown data format: ${s}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let n;return s==="channelsFirst"?n=[[0,0],[0,0],t[0],t[1]]:n=[[0,0],t[0],t[1],[0,0]],Ut(e,n)})}class Sm extends be{constructor(e){if(e==null&&(e={}),super(e),this.dataFormat=e.dataFormat==null?gs():e.dataFormat,e.padding==null)this.padding=[[1,1],[1,1]];else if(typeof e.padding=="number")this.padding=[[e.padding,e.padding],[e.padding,e.padding]];else{if(e.padding=e.padding,e.padding.length!==2)throw new _(`ZeroPadding2D expects padding to be a length-2 array, but received a length-${e.padding.length} array.`);let t,s;if(typeof e.padding[0]=="number")t=[e.padding[0],e.padding[0]],s=[e.padding[1],e.padding[1]];else{if(e.padding=e.padding,e.padding[0].length!==2)throw new _(`ZeroPadding2D expects height padding to be a length-2 array, but received a length-${e.padding[0].length} array.`);if(t=e.padding[0],e.padding[1].length!==2)throw new _(`ZeroPadding2D expects width padding to be a length-2 array, but received a length-${e.padding[1].length} array.`);s=e.padding[1]}this.padding=[t,s]}this.inputSpec=[new rt({ndim:4})]}computeOutputShape(e){e=Ue(e);let t,s;return this.dataFormat==="channelsFirst"?(e[2]!=null&&e[2]>=0?t=e[2]+this.padding[0][0]+this.padding[0][1]:t=null,e[3]!=null&&e[3]>=0?s=e[3]+this.padding[1][0]+this.padding[1][1]:s=null,[e[0],e[1],t,s]):(e[1]!=null&&e[1]>=0?t=e[1]+this.padding[0][0]+this.padding[0][1]:t=null,e[2]!=null&&e[2]>=0?s=e[2]+this.padding[1][0]+this.padding[1][1]:s=null,[e[0],t,s,e[3]])}call(e,t){return N(()=>p$(fe(e),this.padding,this.dataFormat))}getConfig(){const e={padding:this.padding,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}Sm.className="ZeroPadding2D";P.registerClass(Sm);function vm(e,t,s,n,i,r){return N(()=>{dt(i),Db(r),_s(n),s==null&&(s=[1,1]),n==null&&(n="valid"),i==null&&(i=gs()),r==null&&(r="max"),e=yu(e,i);let o;const a=n==="same"?"same":"valid";return r==="max"?o=lt(e,t,s,a):o=rs(e,t,s,a),i==="channelsFirst"&&(o=se(o,[0,3,1,2])),o})}function BA(e,t,s,n,i,r){return N(()=>{dt(i),Db(r),_s(n),s==null&&(s=[1,1,1]),n==null&&(n="valid"),i==null&&(i=gs()),r==null&&(r="max"),e=Zb(e,i);let o;const a=n==="same"?"same":"valid";return r==="max"?o=no(e,t,s,a):o=Gr(e,t,s,a),i==="channelsFirst"&&(o=se(o,[0,4,1,2,3])),o})}class PA extends be{constructor(e){if(e.poolSize==null&&(e.poolSize=2),super(e),typeof e.poolSize=="number")this.poolSize=[e.poolSize];else if(Array.isArray(e.poolSize)&&e.poolSize.length===1&&typeof e.poolSize[0]=="number")this.poolSize=e.poolSize;else throw new _(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.poolSize)}`);if(jt(this.poolSize,"poolSize"),e.strides==null)this.strides=this.poolSize;else if(typeof e.strides=="number")this.strides=[e.strides];else if(Array.isArray(e.strides)&&e.strides.length===1&&typeof e.strides[0]=="number")this.strides=e.strides;else throw new _(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.strides)}`);jt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,_s(this.padding),this.inputSpec=[new rt({ndim:3})]}computeOutputShape(e){e=Ue(e);const t=yn(e[1],this.poolSize[0],this.padding,this.strides[0]);return[e[0],t,e[2]]}call(e,t){return N(()=>{this.invokeCallHook(e,t),e=Fi(fe(e),2);const s=this.poolingFunction(fe(e),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return En(s,[2])})}getConfig(){const e={poolSize:this.poolSize,padding:this.padding,strides:this.strides},t=super.getConfig();return Object.assign(e,t),e}}class Tm extends PA{constructor(e){super(e)}poolingFunction(e,t,s,n,i){return dt(i),_s(n),vm(e,t,s,n,i,"max")}}Tm.className="MaxPooling1D";P.registerClass(Tm);class Im extends PA{constructor(e){super(e)}poolingFunction(e,t,s,n,i){return dt(i),_s(n),vm(e,t,s,n,i,"avg")}}Im.className="AveragePooling1D";P.registerClass(Im);class jA extends be{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==2)throw new _(`If the strides property of a 2D pooling layer is an Array, it is expected to have a length of 2, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides];jt(this.poolSize,"poolSize"),jt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,dt(this.dataFormat),_s(this.padding),this.inputSpec=[new rt({ndim:4})]}computeOutputShape(e){e=Ue(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],s=this.dataFormat==="channelsFirst"?e[3]:e[2];return t=yn(t,this.poolSize[0],this.padding,this.strides[0]),s=yn(s,this.poolSize[1],this.padding,this.strides[1]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,s]:[e[0],t,s,e[3]]}call(e,t){return N(()=>(this.invokeCallHook(e,t),this.poolingFunction(fe(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){const e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}class Am extends jA{constructor(e){super(e)}poolingFunction(e,t,s,n,i){return dt(i),_s(n),vm(e,t,s,n,i,"max")}}Am.className="MaxPooling2D";P.registerClass(Am);class Nm extends jA{constructor(e){super(e)}poolingFunction(e,t,s,n,i){return dt(i),_s(n),vm(e,t,s,n,i,"avg")}}Nm.className="AveragePooling2D";P.registerClass(Nm);class VA extends be{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==3)throw new _(`If the strides property of a 3D pooling layer is an Array, it is expected to have a length of 3, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides,e.strides];jt(this.poolSize,"poolSize"),jt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,dt(this.dataFormat),_s(this.padding),this.inputSpec=[new rt({ndim:5})]}computeOutputShape(e){e=Ue(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],s=this.dataFormat==="channelsFirst"?e[3]:e[2],n=this.dataFormat==="channelsFirst"?e[4]:e[3];return t=yn(t,this.poolSize[0],this.padding,this.strides[0]),s=yn(s,this.poolSize[1],this.padding,this.strides[1]),n=yn(n,this.poolSize[2],this.padding,this.strides[2]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,s,n]:[e[0],t,s,n,e[4]]}call(e,t){return N(()=>(this.invokeCallHook(e,t),this.poolingFunction(fe(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){const e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}class Cm extends VA{constructor(e){super(e)}poolingFunction(e,t,s,n,i){return dt(i),_s(n),BA(e,t,s,n,i,"max")}}Cm.className="MaxPooling3D";P.registerClass(Cm);class Rm extends VA{constructor(e){super(e)}poolingFunction(e,t,s,n,i){return dt(i),_s(n),BA(e,t,s,n,i,"avg")}}Rm.className="AveragePooling3D";P.registerClass(Rm);class GA extends be{constructor(e){super(e);this.inputSpec=[new rt({ndim:3})]}computeOutputShape(e){return[e[0],e[2]]}call(e,t){throw new ae()}}class Om extends GA{constructor(e){super(e||{})}call(e,t){return N(()=>{const s=fe(e);return Ge(s,1)})}}Om.className="GlobalAveragePooling1D";P.registerClass(Om);class Em extends GA{constructor(e){super(e||{})}call(e,t){return N(()=>{const s=fe(e);return st(s,1)})}}Em.className="GlobalMaxPooling1D";P.registerClass(Em);class HA extends be{constructor(e){super(e);this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,dt(this.dataFormat),this.inputSpec=[new rt({ndim:4})]}computeOutputShape(e){return e=e,this.dataFormat==="channelsLast"?[e[0],e[3]]:[e[0],e[1]]}call(e,t){throw new ae()}getConfig(){const e={dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}class km extends HA{call(e,t){return N(()=>{const s=fe(e);return this.dataFormat==="channelsLast"?Ge(s,[1,2]):Ge(s,[2,3])})}}km.className="GlobalAveragePooling2D";P.registerClass(km);class _m extends HA{call(e,t){return N(()=>{const s=fe(e);return this.dataFormat==="channelsLast"?st(s,[1,2]):st(s,[2,3])})}}_m.className="GlobalMaxPooling2D";P.registerClass(_m);function Qb(e,t,s,n){if(Array.isArray(e)){if(t!=null||s!=null)throw new _("When inputs is an array, neither initialState or constants should be provided");n!=null&&(s=e.slice(e.length-n,e.length),e=e.slice(0,e.length-n)),e.length>1&&(t=e.slice(1,e.length)),e=e[0]}function i(r){return r==null||Array.isArray(r)?r:[r]}return t=i(t),s=i(s),{inputs:e,initialState:t,constants:s}}function ew(e,t,s,n=!1,i,r,o=!1,a=!1){return N(()=>{const l=t.shape.length;if(l<3)throw new _(`Input should be at least 3D, but is ${l}D.`);const c=[1,0].concat(ps(2,l));if(t=se(t,c),r!=null)throw new ae("The rnn() functoin of the deeplearn.js backend does not support constants yet.");o&&console.warn("Backend rnn(): the unroll = true option is not applicable to the imperative deeplearn.js backend."),i!=null&&(i=i.asType("bool").asType("float32"),i.rank===l-1&&(i=Nt(i,-1)),i=se(i,c)),n&&(t=Lt(t,0),i!=null&&(i=Lt(i,0)));const p=[];let u,h=s;const d=t.shape[0],m=nt(t);let f;i!=null&&(f=nt(i));for(let b=0;be(S,h));if(i==null)u=x[0],h=x[1];else{const I=N(()=>{const A=f[b],k=Bt(A).sub(A),R=x[0].mul(A).add(h[0].mul(k)),D=h.map((F,M)=>x[1][M].mul(A).add(F.mul(k)));return{output:R,newStates:D}});u=I.output,h=I.newStates}a&&p.push(u)}let y;if(a){const b=1;y=Xe(p,b)}return[u,y,h]})}class ri extends be{constructor(e){super(e);let t;if(e.cell==null)throw new _("cell property is missing for the constructor of RNN.");if(Array.isArray(e.cell)?t=new Tu({cells:e.cell}):t=e.cell,t.stateSize==null)throw new _("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");this.cell=t,this.returnSequences=e.returnSequences==null?!1:e.returnSequences,this.returnState=e.returnState==null?!1:e.returnState,this.goBackwards=e.goBackwards==null?!1:e.goBackwards,this._stateful=e.stateful==null?!1:e.stateful,this.unroll=e.unroll==null?!1:e.unroll,this.supportsMasking=!0,this.inputSpec=[new rt({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(this.states_==null){const e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;return ps(0,e).map(t=>null)}else return this.states_}setStates(e){this.states_=e}computeOutputShape(e){vd(e)&&(e=e[0]),e=e;let t=this.cell.stateSize;Array.isArray(t)||(t=[t]);const s=t[0];let n;if(this.returnSequences?n=[e[0],e[1],s]:n=[e[0],s],this.returnState){const i=[];for(const r of t)i.push([e[0],r]);return[n].concat(i)}else return n}computeMask(e,t){return N(()=>{Array.isArray(t)&&(t=t[0]);const s=this.returnSequences?t:null;if(this.returnState){const n=this.states.map(i=>null);return[s].concat(n)}else return s})}get states(){if(this.states_==null){const e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,t=[];for(let s=0;so.shape[o.shape.length-1]),r))throw new _(`An initialState was passed that is not compatible with cell.stateSize. Received stateSpec=${this.stateSpec}; However cell.stateSize is ${this.cell.stateSize}`)}else this.stateSpec=r.map(o=>new rt({shape:[null,o]}));this.stateful&&this.resetStates()}resetStates(e,t=!1){N(()=>{if(!this.stateful)throw new ti("Cannot call resetStates() on an RNN Layer that is not stateful.");const s=this.inputSpec[0].shape[0];if(s==null)throw new _("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.states_==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(n=>Ie([s,n])):this.states_=[Ie([s,this.cell.stateSize])];else if(e==null)ce(this.states_),this.keptStates!=null&&(ce(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(n=>Ie([s,n])):this.states_[0]=Ie([s,this.cell.stateSize]);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new _(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t===!0?this.keptStates.push(this.states_.slice()):ce(this.states_);for(let n=0;ngt(n.clone()))})}apply(e,t){let s=t==null?null:t.initialState,n=t==null?null:t.constants;t==null&&(t={});const i=Qb(e,s,n,this.numConstants);e=i.inputs,s=i.initialState,n=i.constants;let r=[],o=[];if(s!=null){t.initialState=s,r=r.concat(s),this.stateSpec=[];for(const l of s)this.stateSpec.push(new rt({shape:l.shape}));o=o.concat(this.stateSpec)}n!=null&&(t.constants=n,r=r.concat(n),this.numConstants=n.length);const a=r[0]instanceof bs;if(a){const l=[e].concat(r),c=this.inputSpec.concat(o),p=this.inputSpec;this.inputSpec=c;const u=super.apply(l,t);return this.inputSpec=p,u}else return super.apply(e,t)}call(e,t){return N(()=>{const s=t==null?null:t.mask,n=t==null?null:t.training;let i=t==null?null:t.initialState;e=fe(e),i==null&&(this.stateful?i=this.states_:i=this.getInitialState(e));const r=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(i.length!==r)throw new _(`RNN Layer has ${r} state(s) but was passed ${i.length} initial state(s).`);this.unroll&&console.warn("Ignoring unroll = true for RNN layer, due to imperative backend.");const o={training:n},a=(d,m)=>{const f=this.cell.call([d].concat(m),o);return[f[0],f.slice(1)]},l=ew(a,e,i,this.goBackwards,s,null,this.unroll,this.returnSequences),c=l[0],p=l[1],u=l[2];this.stateful&&this.resetStates(u,n);const h=this.returnSequences?p:c;return this.returnState?[h].concat(u):h})}getInitialState(e){return N(()=>{let t=Ie(e.shape);return t=te(t,[1,2]),t=Fi(t),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(s=>s>1?pd(t,[1,s]):t):this.cell.stateSize>1?[pd(t,[1,this.cell.stateSize])]:[t]})}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.cell!=null&&this.cell.setFastWeightInitDuringBuild(e)}getConfig(){const e={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};this.numConstants!=null&&(e.numConstants=this.numConstants);const t=this.cell.getConfig();e.cell={className:this.cell.getClassName(),config:t};const s=super.getConfig();return Object.assign(e,s),e}static fromConfig(e,t,s={}){const n=t.cell,i=ws(n,s);return new e(Object.assign(t,{cell:i}))}}ri.className="RNN";P.registerClass(ri);class Da extends be{}class Iu extends Da{constructor(e){super(e);this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,jt(this.units,"units"),this.activation=Un(e.activation==null?this.DEFAULT_ACTIVATION:e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=je(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=je(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=je(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Ye(e.kernelRegularizer),this.recurrentRegularizer=Ye(e.recurrentRegularizer),this.biasRegularizer=Ye(e.biasRegularizer),this.kernelConstraint=it(e.kernelConstraint),this.recurrentConstraint=it(e.recurrentConstraint),this.biasConstraint=it(e.biasConstraint),this.dropout=To([1,Fn([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=To([1,Fn([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=Ue(e),this.kernel=this.addWeight("kernel",[e[e.length-1],this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return N(()=>{if(e=e,e.length!==2)throw new _(`SimpleRNNCell expects 2 input Tensors, got ${e.length}.`);let s=e[1];e=e[0];const n=t.training==null?!1:t.training;0Bt(e),this.dropout,n)),0Bt(s),this.recurrentDropout,n));let i;const r=this.dropoutMask,o=this.recurrentDropoutMask;r!=null?i=mn(C(e,r),this.kernel.read()):i=mn(e,this.kernel.read()),this.bias!=null&&(i=Ys(i,this.bias.read())),o!=null&&(s=C(s,o));let a=W(i,mn(s,this.recurrentKernel.read()));return this.activation!=null&&(a=this.activation.apply(a)),[a,a]})}getConfig(){const e={units:this.units,activation:xs(this.activation),useBias:this.useBias,kernelInitializer:Me(this.kernelInitializer),recurrentInitializer:Me(this.recurrentInitializer),biasInitializer:Me(this.biasInitializer),kernelRegularizer:Ae(this.kernelRegularizer),recurrentRegularizer:Ae(this.recurrentRegularizer),biasRegularizer:Ae(this.biasRegularizer),activityRegularizer:Ae(this.activityRegularizer),kernelConstraint:Be(this.kernelConstraint),recurrentConstraint:Be(this.recurrentConstraint),biasConstraint:Be(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout},t=super.getConfig();return Object.assign(e,t),e}}Iu.className="SimpleRNNCell";P.registerClass(Iu);class Dm extends ri{constructor(e){e.cell=new Iu(e),super(e)}call(e,t){return N(()=>{this.cell.dropoutMask!=null&&(ce(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(ce(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);const s=t==null?null:t.mask,n=t==null?null:t.training,i=t==null?null:t.initialState;return super.call(e,{mask:s,training:n,initialState:i})})}get units(){return this.cell.units}get activation(){return this.cell.activation}get useBias(){return this.cell.useBias}get kernelInitializer(){return this.cell.kernelInitializer}get recurrentInitializer(){return this.cell.recurrentInitializer}get biasInitializer(){return this.cell.biasInitializer}get kernelRegularizer(){return this.cell.kernelRegularizer}get recurrentRegularizer(){return this.cell.recurrentRegularizer}get biasRegularizer(){return this.cell.biasRegularizer}get kernelConstraint(){return this.cell.kernelConstraint}get recurrentConstraint(){return this.cell.recurrentConstraint}get biasConstraint(){return this.cell.biasConstraint}get dropout(){return this.cell.dropout}get recurrentDropout(){return this.cell.recurrentDropout}getConfig(){const e={units:this.units,activation:xs(this.activation),useBias:this.useBias,kernelInitializer:Me(this.kernelInitializer),recurrentInitializer:Me(this.recurrentInitializer),biasInitializer:Me(this.biasInitializer),kernelRegularizer:Ae(this.kernelRegularizer),recurrentRegularizer:Ae(this.recurrentRegularizer),biasRegularizer:Ae(this.biasRegularizer),activityRegularizer:Ae(this.activityRegularizer),kernelConstraint:Be(this.kernelConstraint),recurrentConstraint:Be(this.recurrentConstraint),biasConstraint:Be(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout},t=super.getConfig();return delete t.cell,Object.assign(e,t),e}static fromConfig(e,t){return new e(t)}}Dm.className="SimpleRNN";P.registerClass(Dm);class Au extends Da{constructor(e){super(e);if(this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",e.resetAfter)throw new _("GRUCell does not support reset_after parameter set to true.");this.units=e.units,jt(this.units,"units"),this.activation=Un(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=Un(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=je(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=je(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=je(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Ye(e.kernelRegularizer),this.recurrentRegularizer=Ye(e.recurrentRegularizer),this.biasRegularizer=Ye(e.biasRegularizer),this.kernelConstraint=it(e.kernelConstraint),this.recurrentConstraint=it(e.recurrentConstraint),this.biasConstraint=it(e.biasConstraint),this.dropout=To([1,Fn([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=To([1,Fn([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.implementation=e.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=Ue(e);const t=e[e.length-1];this.kernel=this.addWeight("kernel",[t,this.units*3],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*3],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units*3],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return N(()=>{if(e=e,e.length!==2)throw new _(`GRUCell expects 2 input Tensors (inputs, h, c), got ${e.length}.`);const s=t.training==null?!1:t.training;let n=e[1];e=e[0],0Bt(e),this.dropout,s,3)),0Bt(n),this.recurrentDropout,s,3));const i=this.dropoutMask,r=this.recurrentDropoutMask;let o,a,l;0{this.cell.dropoutMask!=null&&(ce(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(ce(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);const s=t==null?null:t.mask,n=t==null?null:t.training,i=t==null?null:t.initialState;return super.call(e,{mask:s,training:n,initialState:i})})}get units(){return this.cell.units}get activation(){return this.cell.activation}get recurrentActivation(){return this.cell.recurrentActivation}get useBias(){return this.cell.useBias}get kernelInitializer(){return this.cell.kernelInitializer}get recurrentInitializer(){return this.cell.recurrentInitializer}get biasInitializer(){return this.cell.biasInitializer}get kernelRegularizer(){return this.cell.kernelRegularizer}get recurrentRegularizer(){return this.cell.recurrentRegularizer}get biasRegularizer(){return this.cell.biasRegularizer}get kernelConstraint(){return this.cell.kernelConstraint}get recurrentConstraint(){return this.cell.recurrentConstraint}get biasConstraint(){return this.cell.biasConstraint}get dropout(){return this.cell.dropout}get recurrentDropout(){return this.cell.recurrentDropout}get implementation(){return this.cell.implementation}getConfig(){const e={units:this.units,activation:xs(this.activation),recurrentActivation:xs(this.recurrentActivation),useBias:this.useBias,kernelInitializer:Me(this.kernelInitializer),recurrentInitializer:Me(this.recurrentInitializer),biasInitializer:Me(this.biasInitializer),kernelRegularizer:Ae(this.kernelRegularizer),recurrentRegularizer:Ae(this.recurrentRegularizer),biasRegularizer:Ae(this.biasRegularizer),activityRegularizer:Ae(this.activityRegularizer),kernelConstraint:Be(this.kernelConstraint),recurrentConstraint:Be(this.recurrentConstraint),biasConstraint:Be(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout,implementation:this.implementation,resetAfter:!1},t=super.getConfig();return delete t.cell,Object.assign(e,t),e}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}}Fm.className="GRU";P.registerClass(Fm);class Nu extends Da{constructor(e){super(e);this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,jt(this.units,"units"),this.activation=Un(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=Un(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=je(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=je(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=je(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=e.unitForgetBias,this.kernelRegularizer=Ye(e.kernelRegularizer),this.recurrentRegularizer=Ye(e.recurrentRegularizer),this.biasRegularizer=Ye(e.biasRegularizer),this.kernelConstraint=it(e.kernelConstraint),this.recurrentConstraint=it(e.recurrentConstraint),this.biasConstraint=it(e.biasConstraint),this.dropout=To([1,Fn([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=To([1,Fn([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.implementation=e.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){var t;e=Ue(e);const s=e[e.length-1];this.kernel=this.addWeight("kernel",[s,this.units*4],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*4],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint);let n;if(this.useBias){if(this.unitForgetBias){const i=this.biasInitializer,r=this.units;n=new(t=class extends fn{apply(a,l){const c=i.apply([r]),p=new Ta().apply([r]),u=i.apply([r*2]);return Mb(Mb(c,p),u)}},t.className="CustomInit",t)()}else n=this.biasInitializer;this.bias=this.addWeight("bias",[this.units*4],null,n,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(e,t){return N(()=>{const s=t.training==null?!1:t.training;if(e=e,e.length!==3)throw new _(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let n=e[1];const i=e[2];e=e[0],0Bt(e),this.dropout,s,4)),0Bt(n),this.recurrentDropout,s,4));const r=this.dropoutMask,o=this.recurrentDropoutMask;let a,l,c,p;0{this.cell.dropoutMask!=null&&(ce(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(ce(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);const s=t==null?null:t.mask,n=t==null?null:t.training,i=t==null?null:t.initialState;return super.call(e,{mask:s,training:n,initialState:i})})}get units(){return this.cell.units}get activation(){return this.cell.activation}get recurrentActivation(){return this.cell.recurrentActivation}get useBias(){return this.cell.useBias}get kernelInitializer(){return this.cell.kernelInitializer}get recurrentInitializer(){return this.cell.recurrentInitializer}get biasInitializer(){return this.cell.biasInitializer}get unitForgetBias(){return this.cell.unitForgetBias}get kernelRegularizer(){return this.cell.kernelRegularizer}get recurrentRegularizer(){return this.cell.recurrentRegularizer}get biasRegularizer(){return this.cell.biasRegularizer}get kernelConstraint(){return this.cell.kernelConstraint}get recurrentConstraint(){return this.cell.recurrentConstraint}get biasConstraint(){return this.cell.biasConstraint}get dropout(){return this.cell.dropout}get recurrentDropout(){return this.cell.recurrentDropout}get implementation(){return this.cell.implementation}getConfig(){const e={units:this.units,activation:xs(this.activation),recurrentActivation:xs(this.recurrentActivation),useBias:this.useBias,kernelInitializer:Me(this.kernelInitializer),recurrentInitializer:Me(this.recurrentInitializer),biasInitializer:Me(this.biasInitializer),unitForgetBias:this.unitForgetBias,kernelRegularizer:Ae(this.kernelRegularizer),recurrentRegularizer:Ae(this.recurrentRegularizer),biasRegularizer:Ae(this.biasRegularizer),activityRegularizer:Ae(this.activityRegularizer),kernelConstraint:Be(this.kernelConstraint),recurrentConstraint:Be(this.recurrentConstraint),biasConstraint:Be(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout,implementation:this.implementation},t=super.getConfig();return delete t.cell,Object.assign(e,t),e}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}}Mm.className="LSTM";P.registerClass(Mm);class Tu extends Da{constructor(e){super(e);this.cells=e.cells}get stateSize(){const e=[];for(const t of this.cells.slice().reverse())Array.isArray(t.stateSize)?e.push(...t.stateSize):e.push(t.stateSize);return e}call(e,t){return N(()=>{e=e;let s=e.slice(1);const n=[];for(const o of this.cells.slice().reverse())Array.isArray(o.stateSize)?n.push(s.splice(0,o.stateSize.length)):n.push(s.splice(0,1));n.reverse();const i=[];let r;for(let o=0;o{Dn(`RNNCell_${n}`,()=>{s.build(e),Array.isArray(s.stateSize)?t=s.stateSize[0]:t=s.stateSize,e=[e[0],t]})}),this.built=!0}getConfig(){const e=[];for(const n of this.cells)e.push({className:n.getClassName(),config:n.getConfig()});const t={cells:e},s=super.getConfig();return Object.assign(t,s),t}static fromConfig(e,t,s={}){const n=[];for(const i of t.cells)n.push(ws(i,s));return new e({cells:n})}get trainableWeights(){if(!this.trainable)return[];const e=[];for(const t of this.cells)e.push(...t.trainableWeights);return e}get nonTrainableWeights(){const e=[];for(const t of this.cells)e.push(...t.nonTrainableWeights);if(!this.trainable){const t=[];for(const s of this.cells)t.push(...s.trainableWeights);return t.concat(e)}return e}getWeights(){const e=[];for(const t of this.cells)e.push(...t.weights);return lu(e)}setWeights(e){const t=[];for(const s of this.cells){const n=s.weights.length,i=e.splice(n);for(let r=0;r1){const r=[];for(let o=0;ogt(o.clone()))}else return gt(Ui(i,e,s).clone())}class qA extends be{constructor(e){super(e);this.layer=e.layer}build(e){this.built=!0}get trainable(){return this.layer!=null?this.layer.trainable:!1}set trainable(e){this.layer!=null&&(this.layer.trainable=e)}get trainableWeights(){return this.layer.trainableWeights}get nonTrainableWeights(){return this.layer.nonTrainableWeights}get updates(){return this.layer._updates}get losses(){return this.layer.losses}getWeights(){return this.layer.getWeights()}setWeights(e){this.layer.setWeights(e)}getConfig(){const e={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},t=super.getConfig();return Object.assign(e,t),e}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.layer!=null&&this.layer.setFastWeightInitDuringBuild(e)}static fromConfig(e,t,s={}){const n=t.layer,i=ws(n,s);delete t.layer;const r={layer:i};return Object.assign(r,t),new e(r)}}class Um extends qA{constructor(e){super(e);this.supportsMasking=!0}build(e){if(e=Ue(e),e.length<3)throw new _(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(e)}`);this.inputSpec=[{shape:e}];const t=[e[0]].concat(e.slice(2));this.layer.built||(this.layer.build(t),this.layer.built=!0),super.build(e)}computeOutputShape(e){e=Ue(e);const t=[e[0]].concat(e.slice(2)),s=this.layer.computeOutputShape(t),n=e[1];return[s[0],n].concat(s.slice(1))}call(e,t){return N(()=>{e=fe(e);const s=(r,o)=>{const a=fe(this.layer.call(r,t));return[a,[]]},n=ew(s,e,[],!1,null,null,!1,!0),i=n[1];return i})}}Um.className="TimeDistributed";P.registerClass(Um);function u$(e){_i(FI,"BidirectionalMergeMode",e)}const h$="concat";class $m extends qA{constructor(e){super(e);const t=e.layer.getConfig(),s={};s.className=e.layer.getClassName(),s.config=t,this.forwardLayer=ws(s),t.goBackwards=!(t.goBackwards===!0);const n={};if(n.className=e.layer.getClassName(),n.config=t,this.backwardLayer=ws(n),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=e.mergeMode===void 0?h$:e.mergeMode,u$(this.mergeMode),e.weights)throw new ae("weights support is not implemented for Bidirectional layer yet.");this._stateful=e.layer.stateful,this.returnSequences=e.layer.returnSequences,this.returnState=e.layer.returnState,this.supportsMasking=!0,this._trainable=!0,this.inputSpec=e.layer.inputSpec,this.numConstants=null}get trainable(){return this._trainable}set trainable(e){this._trainable=e,this.forwardLayer!=null&&(this.forwardLayer.trainable=e),this.backwardLayer!=null&&(this.backwardLayer.trainable=e)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(e){const t=e.length,s=Math.floor(t/2);this.forwardLayer.setWeights(e.slice(0,s)),this.backwardLayer.setWeights(e.slice(s))}computeOutputShape(e){let t=this.forwardLayer.computeOutputShape(e);Array.isArray(t)&&Array.isArray(t[0])||(t=[t]),t=t;let s,n,i;return this.returnState&&(i=t.slice(1)),s=t[0],s=s,this.mergeMode==="concat"?(s[s.length-1]*=2,n=[s]):this.mergeMode==null?n=[s,s.slice()]:n=[s],this.returnState?this.mergeMode==null?n.concat(i).concat(i.slice()):[s].concat(i).concat(i.slice()):Pt(n)}apply(e,t){let s=t==null?null:t.initialState,n=t==null?null:t.constants;t==null&&(t={});const i=Qb(e,s,n,this.numConstants);if(e=i.inputs,s=i.initialState,n=i.constants,Array.isArray(e)&&(s=e.slice(1),e=e[0]),(s==null||s.length===0)&&n==null)return super.apply(e,t);const r=[],o=[];if(s!=null){const l=s.length;if(l%2>0)throw new _("When passing `initialState` to a Bidrectional RNN, the state should be an Array containing the states of the underlying RNNs.");t.initialState=s,r.push(...s);const c=s.map(p=>new rt({shape:p.shape}));this.forwardLayer.stateSpec=c.slice(0,l/2),this.backwardLayer.stateSpec=c.slice(l/2),o.push(...c)}if(n!=null)throw new ae("Support for constants in Bidirectional layers is not implemented yet.");const a=r[0]instanceof bs;for(const l of r)if(l instanceof bs!==a)throw new _("The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors");if(a){const l=[e].concat(r),c=this.inputSpec.concat(o),p=this.inputSpec;this.inputSpec=c;const u=super.apply(l,t);return this.inputSpec=p,u}else return super.apply(e,t)}call(e,t){return N(()=>{const s=t.initialState;let n,i;if(s==null)n=this.forwardLayer.call(e,t),i=this.backwardLayer.call(e,t);else{const a=s.slice(0,s.length/2),l=s.slice(s.length/2);n=this.forwardLayer.call(e,Object.assign(t,{initialState:a})),i=this.backwardLayer.call(e,Object.assign(t,{initialState:l}))}let r;this.returnState&&(Array.isArray(n)&&(r=n.slice(1).concat(i.slice(1))),n=n[0],i=i[0]),this.returnSequences&&(i=Lt(i,1));let o;return this.mergeMode==="concat"?o=ud([n,i]):this.mergeMode==="sum"?o=W(n,i):this.mergeMode==="ave"?o=C(.5,W(n,i)):this.mergeMode==="mul"?o=C(n,i):this.mergeMode==null&&(o=[n,i]),this.returnState?this.mergeMode==null?o.concat(r):[o].concat(r):o})}resetStates(e){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(e){Dn(this.forwardLayer.name,()=>{this.forwardLayer.build(e)}),Dn(this.backwardLayer.name,()=>{this.backwardLayer.build(e)}),this.built=!0}computeMask(e,t){Array.isArray(t)&&(t=t[0]);let s;if(this.returnSequences?this.mergeMode==null?s=[t,t]:s=t:this.mergeMode==null?s=[null,null]:s=null,this.returnState){const n=this.forwardLayer.states,i=n.map(r=>null);return Array.isArray(s)?s.concat(i).concat(i):[s].concat(i).concat(i)}else return s}get trainableWeights(){return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights)}get nonTrainableWeights(){return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights)}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.forwardLayer!=null&&this.forwardLayer.setFastWeightInitDuringBuild(e),this.backwardLayer!=null&&this.backwardLayer.setFastWeightInitDuringBuild(e)}getConfig(){const e={mergeMode:this.mergeMode},t=super.getConfig();return Object.assign(e,t),e}static fromConfig(e,t){const s=ws(t.layer);if(delete t.layer,t.numConstants!=null)throw new ae("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");const n=t;return n.layer=s,new e(n)}}$m.className="Bidirectional";P.registerClass($m);const tw={};Re(tw,{Layer:()=>be,RNN:()=>ri,RNNCell:()=>Da,activation:()=>C$,add:()=>U$,alphaDropout:()=>bW,average:()=>$$,averagePooling1d:()=>sw,averagePooling2d:()=>nw,averagePooling3d:()=>iw,avgPool1d:()=>q$,avgPool2d:()=>K$,avgPool3d:()=>J$,avgPooling1d:()=>Y$,avgPooling2d:()=>X$,avgPooling3d:()=>Z$,batchNormalization:()=>V$,bidirectional:()=>pW,concatenate:()=>W$,conv1d:()=>x$,conv2d:()=>L$,conv2dTranspose:()=>S$,conv3d:()=>v$,cropping2D:()=>I$,dense:()=>R$,depthwiseConv2d:()=>N$,dot:()=>j$,dropout:()=>O$,elu:()=>m$,embedding:()=>M$,flatten:()=>k$,gaussianDropout:()=>yW,gaussianNoise:()=>gW,globalAveragePooling1d:()=>Q$,globalAveragePooling2d:()=>eW,globalMaxPool1d:()=>hW,globalMaxPool2d:()=>dW,globalMaxPooling1d:()=>YA,globalMaxPooling2d:()=>KA,gru:()=>sW,gruCell:()=>nW,input:()=>zd,inputLayer:()=>d$,layerNormalization:()=>G$,leakyReLU:()=>g$,lstm:()=>iW,lstmCell:()=>rW,masking:()=>wW,maxPool1d:()=>mW,maxPool2d:()=>fW,maxPooling1d:()=>XA,maxPooling2d:()=>JA,maxPooling3d:()=>tW,maximum:()=>z$,minimum:()=>B$,multiply:()=>P$,permute:()=>F$,prelu:()=>y$,reLU:()=>f$,repeatVector:()=>_$,reshape:()=>D$,rnn:()=>lW,separableConv2d:()=>T$,simpleRNN:()=>oW,simpleRNNCell:()=>aW,softmax:()=>b$,spatialDropout1d:()=>E$,stackedRNNCells:()=>cW,thresholdedReLU:()=>w$,timeDistributed:()=>uW,upSampling2d:()=>A$,zeroPadding2d:()=>H$});function d$(e){return new $i(e)}function m$(e){return new Gd(e)}function f$(e){return new Pd(e)}function g$(e){return new jd(e)}function y$(e){return new Vd(e)}function b$(e){return new qd(e)}function w$(e){return new Hd(e)}function x$(e){return new xu(e)}function L$(e){return new _a(e)}function S$(e){return new Xd(e)}function v$(e){return new wu(e)}function T$(e){return new Jd(e)}function I$(e){return new Zd(e)}function A$(e){return new Qd(e)}function N$(e){return new em(e)}function C$(e){return new im(e)}function R$(e){return new sm(e)}function O$(e){return new Lu(e)}function E$(e){return new tm(e)}function k$(e){return new nm(e)}function _$(e){return new rm(e)}function D$(e){return new om(e)}function F$(e){return new am(e)}function M$(e){return new cm(e)}function U$(e){return new pm(e)}function $$(e){return new hm(e)}function W$(e){return new fm(e)}function z$(e){return new dm(e)}function B$(e){return new mm(e)}function P$(e){return new um(e)}function j$(e){return new gm(e)}function V$(e){return new xm(e)}function G$(e){return new Lm(e)}function H$(e){return new Sm(e)}function sw(e){return new Im(e)}function q$(e){return sw(e)}function Y$(e){return sw(e)}function nw(e){return new Nm(e)}function K$(e){return nw(e)}function X$(e){return nw(e)}function iw(e){return new Rm(e)}function J$(e){return iw(e)}function Z$(e){return iw(e)}function Q$(e){return new Om(e)}function eW(e){return new km(e)}function YA(e){return new Em(e)}function KA(e){return new _m(e)}function XA(e){return new Tm(e)}function JA(e){return new Am(e)}function tW(e){return new Cm(e)}function sW(e){return new Fm(e)}function nW(e){return new Au(e)}function iW(e){return new Mm(e)}function rW(e){return new Nu(e)}function oW(e){return new Dm(e)}function aW(e){return new Iu(e)}function lW(e){return new ri(e)}function cW(e){return new Tu(e)}function pW(e){return new $m(e)}function uW(e){return new Um(e)}const hW=YA,dW=KA,mW=XA,fW=JA;function gW(e){return new ym(e)}function yW(e){return new bm(e)}function bW(e){return new wm(e)}function wW(e){return new lm(e)}const rw={};Re(rw,{MAPE:()=>OW,MSE:()=>_W,binaryAccuracy:()=>xW,binaryCrossentropy:()=>LW,categoricalAccuracy:()=>vW,categoricalCrossentropy:()=>TW,cosineProximity:()=>NW,mape:()=>EW,meanAbsoluteError:()=>CW,meanAbsolutePercentageError:()=>RW,meanSquaredError:()=>kW,mse:()=>DW,precision:()=>IW,recall:()=>AW,sparseCategoricalAccuracy:()=>SW});function xW(e,t){return hu(e,t)}function LW(e,t){return Od(e,t)}function SW(e,t){return Ed(e,t)}function vW(e,t){return du(e,t)}function TW(e,t){return mu(e,t)}function IW(e,t){return jb(e,t)}function AW(e,t){return QI(e,t)}function NW(e,t){return pu(e,t)}function CW(e,t){return Ca(e,t)}function RW(e,t){return mr(e,t)}function OW(e,t){return mr(e,t)}function EW(e,t){return mr(e,t)}function kW(e,t){return ii(e,t)}function _W(e,t){return ii(e,t)}function DW(e,t){return ii(e,t)}const ow={};Re(ow,{modelFromJSON:()=>yA});const aw={};Re(aw,{l1:()=>MW,l1l2:()=>FW,l2:()=>UW});function FW(e){return new ka(e)}function MW(e){return FA(e)}function UW(e){return MA(e)}class lw extends No{constructor(){super(...arguments);this.model=null}setModel(e){if(!(e instanceof gn))throw new Error("model must be a LayersModel, not some other Container");this.model=e}}function Wm(e,t){return et}class cw extends lw{constructor(e){super();if(e==null&&(e={}),e.restoreBestWeights)throw new ae("restoreBestWeights = True is not implemented in EarlyStopping yet.");this.monitor=e.monitor||"val_loss",this.minDelta=Math.abs(e.minDelta||0),this.patience=e.patience||0,this.verbose=e.verbose||0,this.mode=e.mode||"auto",this.baseline=e.baseline,["auto","min","max"].indexOf(this.mode)===-1&&(console.warn(`EarlyStopping mode '${this.mode}' is invalid. Falling back to mode 'auto'.`),this.mode="auto"),this.mode==="min"?this.monitorFunc=Wm:this.mode==="max"?this.monitorFunc=ZA:this.monitor.indexOf("acc")!==-1?this.monitorFunc=ZA:this.monitorFunc=Wm,this.monitorFunc===Wm&&(this.minDelta*=-1)}async onTrainBegin(e){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===Wm?Infinity:-Infinity}async onEpochEnd(e,t){await ni(t);const s=this.getMonitorValue(t);if(s==null)return;this.monitorFunc(s-this.minDelta,this.best)?(this.best=s,this.wait=0):(this.wait++,this.wait>=this.patience&&(this.stoppedEpoch=e,this.model.stopTraining=!0))}async onTrainEnd(e){this.stoppedEpoch>0&&this.verbose&&console.log(`Epoch ${this.stoppedEpoch}: early stopping.`)}getMonitorValue(e){e==null&&(e={});const t=e[this.monitor];return t==null&&console.warn(`Metric for EarlyStopping ${this.monitor} is not available. Available metrics are: ${Object.keys(e)}`),t}}function $W(e){return new cw(e)}const QA={earlyStopping:$W};var bn;(function(e){e[e.DT_INVALID=0]="DT_INVALID",e[e.DT_FLOAT=1]="DT_FLOAT",e[e.DT_DOUBLE=2]="DT_DOUBLE",e[e.DT_INT32=3]="DT_INT32",e[e.DT_UINT8=4]="DT_UINT8",e[e.DT_INT16=5]="DT_INT16",e[e.DT_INT8=6]="DT_INT8",e[e.DT_STRING=7]="DT_STRING",e[e.DT_COMPLEX64=8]="DT_COMPLEX64",e[e.DT_INT64=9]="DT_INT64",e[e.DT_BOOL=10]="DT_BOOL",e[e.DT_QINT8=11]="DT_QINT8",e[e.DT_QUINT8=12]="DT_QUINT8",e[e.DT_QINT32=13]="DT_QINT32",e[e.DT_BFLOAT16=14]="DT_BFLOAT16",e[e.DT_FLOAT_REF=101]="DT_FLOAT_REF",e[e.DT_DOUBLE_REF=102]="DT_DOUBLE_REF",e[e.DT_INT32_REF=103]="DT_INT32_REF",e[e.DT_UINT8_REF=104]="DT_UINT8_REF",e[e.DT_INT16_REF=105]="DT_INT16_REF",e[e.DT_INT8_REF=106]="DT_INT8_REF",e[e.DT_STRING_REF=107]="DT_STRING_REF",e[e.DT_COMPLEX64_REF=108]="DT_COMPLEX64_REF",e[e.DT_INT64_REF=109]="DT_INT64_REF",e[e.DT_BOOL_REF=110]="DT_BOOL_REF",e[e.DT_QINT8_REF=111]="DT_QINT8_REF",e[e.DT_QUINT8_REF=112]="DT_QUINT8_REF",e[e.DT_QINT32_REF=113]="DT_QINT32_REF",e[e.DT_BFLOAT16_REF=114]="DT_BFLOAT16_REF"})(bn||(bn={}));var eN;(function(e){let t;(function(s){s[s.LEGACY=0]="LEGACY",s[s.V1=1]="V1",s[s.V2=2]="V2"})(t=e.CheckpointFormatVersion||(e.CheckpointFormatVersion={}))})(eN||(eN={}));const pw={};function tN(e,t){const s={tfOpName:e,category:"custom",inputs:[],attrs:[],customExecutor:t};pw[e]=s}function zm(e){return pw[e]}function sN(e){delete pw[e]}function w(e,t,s,n){const i=t.inputParams[e];if(i&&i.inputIndexStart!==void 0){const o=i.inputIndexStart,a=i.inputIndexEnd===0?void 0:i.inputIndexEnd===void 0?o+1:i.inputIndexEnd;if(i.type==="tensor")return Vt(t.inputNames[i.inputIndexStart],s,n);if(i.type==="tensors"){const p=t.inputNames.slice(o,a);return p.map(u=>Vt(u,s,n))}const l=Vt(t.inputNames.slice(o)[0],s,n),c=l.dataSync();return i.type==="number"?c[0]:E.toNestedArray(l.shape,c)}const r=t.attrParams[e];return r&&r.value}function Vt(e,t,s){const[n,i]=As(e),r=s.currentContextIds.find(o=>!!t[Bm(n,o)]);return r!==void 0?t[Bm(n,r)][i]:void 0}function nN(e,t,s){return t[Bm(e,s.currentContextId)]}function $n(e,t){const[s,n]=As(e);return[Bm(s,t&&t.currentContextId),n]}function Bm(e,t){return t?`${e}-${t}`:e}function As(e){const t=e.split(":");if(t.length===1)return[e,0];const s=t[0];return[s,Number(t[t.length-1])]}function Cu(e,t,s){let n=w("pad",e,t,s);if(n==="explicit"){n=w("explicitPaddings",e,t,s);const i=[[0,0],[0,0],[0,0],[0,0]];for(let r=0;r<4;r++)i[r][0]=n[r*2],i[r][1]=n[r*2+1];return i}return n}function Wn(e){return e.kept?e:Ps(e)}const uw={};Re(uw,{json:()=>WW});const WW=[{tfOpName:"Add",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddV2",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddN",category:"arithmetic",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"BiasAdd",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sub",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"RealDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Div",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"DivNoNan",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mul",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Maximum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}]},{tfOpName:"Minimum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}]},{tfOpName:"Pow",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SquaredDifference",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorMod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];const hw={};Re(hw,{json:()=>zW});const zW=[{tfOpName:"Abs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan2",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ceil",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ClipByValue",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"clip_value_min",name:"clipValueMin",type:"number"},{tfName:"clip_value_max",name:"clipValueMax",type:"number"}]},{tfOpName:"Complex",category:"basic_math",inputs:[{start:0,name:"real",type:"tensor"},{start:1,name:"imag",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ComplexAbs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Elu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Exp",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Floor",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Imag",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Neg",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Real",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Prelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"alpha",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu6",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"clipValueMin",name:"clipValueMin",type:"number",defaultValue:0},{tfName:"clipValueMax",name:"clipValueMax",type:"number",defaultValue:6}]},{tfOpName:"Selu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sigmoid",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Rsqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Square",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sign",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Round",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Expm1",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log1p",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Reciprocal",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Softplus",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Erf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Prod",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axes",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LeakyRelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"alpha",name:"alpha",type:"number",defaultValue:.2},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];const dw={};Re(dw,{json:()=>BW});const BW=[{tfOpName:"LoopCond",category:"control",inputs:[{start:0,name:"pred",type:"tensor"}]},{tfOpName:"Switch",category:"control",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"pred",type:"tensor"}]},{tfOpName:"Merge",category:"control",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"Enter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"frame_name",name:"frameName",type:"string"},{tfName:"is_constant",name:"isConstant",type:"bool"}]},{tfOpName:"Exit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NextIteration",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayV3",category:"control",inputs:[{start:0,name:"size",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"dynamic_size",name:"dynamicSize",type:"bool"},{tfName:"clear_after_read",name:"clearAfterRead",type:"bool"},{tfName:"identical_element_shapes",name:"identicalElementShapes",type:"bool"},{tfName:"tensor_array_name",name:"name",type:"string"}]},{tfOpName:"TensorArrayWriteV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayReadV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayGatherV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"}]},{tfOpName:"TensorArrayScatterV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArrayConcatV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape_except0",name:"elementShapeExcept0",type:"shape",notSupported:!0}]},{tfOpName:"TensorArraySplitV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"tensor",type:"tensor"},{start:2,name:"lengths",type:"number[]"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArraySizeV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}]},{tfOpName:"TensorArrayCloseV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"}]},{tfOpName:"StatelessIf",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"If",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"StatelessWhile",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"While",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"TensorListScatter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListScatterV2",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"},{start:3,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGather",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListSetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListReserve",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListFromTensor",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListStack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"},{tfName:"num_elements",name:"numElements",type:"dtype"}]},{tfOpName:"TensorListSplit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"},{start:2,name:"lengths",type:"number[]"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListConcat",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}],attrs:[{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPopBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPushBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]}];const mw={};Re(mw,{json:()=>PW});const PW=[{tfOpName:"AvgPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPoolWithArgmax",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"include_batch_in_index",name:"includeBatchInIndex",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AvgPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Conv1D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"stride",name:"stride",type:"number"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NWC"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"dilation",name:"dilation",type:"number",defaultValue:1}]},{tfOpName:"Conv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"useCudnnOnGpu",name:"useCudnnOnGpu",type:"bool"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"_FusedConv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"use_cudnn_on_gpu",name:"useCudnnOnGpu",type:"bool",defaultValue:!0},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4}]},{tfOpName:"Conv2DBackpropInput",category:"convolution",inputs:[{start:2,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:0,name:"outputShape",type:"number[]"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]}]},{tfOpName:"DepthwiseConv2d",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"DepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"FusedDepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]}]},{tfOpName:"Conv3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"Dilation2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"rates",name:"dilations",type:"number[]"},{tfName:"padding",name:"pad",type:"string"}]}];const fw={};Re(fw,{json:()=>jW});const jW=[{tfOpName:"Fill",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"},{start:1,name:"value",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"LinSpace",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"num",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"OneHot",category:"creation",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"depth",type:"number"},{start:2,name:"onValue",type:"number",defaultValue:1},{start:3,name:"offValue",type:"number",defaultValue:0}],attrs:[{tfName:"axis",name:"axis",type:"number",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ones",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"OnesLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"RandomUniform",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number",defaultValue:0},{tfName:"maxval",name:"maxval",type:"number",defaultValue:1},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Range",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"step",type:"number",defaultValue:0}],attrs:[{tfName:"Tidx",name:"dtype",type:"dtype"}]},{tfOpName:"TruncatedNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"means",name:"mean",type:"number",defaultValue:0},{tfName:"stddev",name:"stdDev",type:"number",defaultValue:1},{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Zeros",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"ZerosLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"Multinomial",category:"creation",inputs:[{start:0,name:"logits",type:"tensor"},{start:1,name:"numSamples",type:"number"}],attrs:[{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number"},{tfName:"T",name:"dtype",type:"dtype"},{tfName:"output_dtype",name:"output_dtype",type:"dtype"}]}];const gw={};Re(gw,{json:()=>VW});const VW=[{tfOpName:"NonMaxSuppressionV2",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV3",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV4",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"T_threshold",name:"threshold",type:"dtype",notSupported:!0},{tfName:"pad_to_max_output_size",name:"padToMaxOutputSize",type:"bool"}]},{tfOpName:"NonMaxSuppressionV5",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"},{start:5,name:"softNmsSigma",type:"number"}]},{tfOpName:"Where",category:"dynamic",inputs:[{start:0,name:"condition",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ListDiff",category:"dynamic",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];const yw={};Re(yw,{json:()=>GW});const GW=[{tfOpName:"TopKV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"k",type:"number"}],attrs:[{tfName:"sorted",name:"sorted",type:"bool"}]}];const bw={};Re(bw,{json:()=>HW});const HW=[{tfOpName:"PlaceholderWithDefault",category:"graph",inputs:[{start:0,name:"default",type:"tensor"}],attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Placeholder",category:"graph",attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Const",category:"graph"},{tfOpName:"Identity",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IdentityN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Snapshot",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Rank",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Size",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Shape",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"ShapeN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Print",category:"graph",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"data",type:"tensors"}],attrs:[{tfName:"message",name:"message",type:"string"},{tfName:"first_n",name:"firstN",type:"number",notSupported:!0},{tfName:"summarize",name:"summarize",type:"number",defaultValue:3}]},{tfOpName:"NoOp",category:"graph",inputs:[]},{tfOpName:"StopGradient",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"FakeQuantWithMinMaxVars",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"min",name:"min",type:"number"},{tfName:"max",name:"max",type:"number"}]}];const ww={};Re(ww,{json:()=>qW});const qW=[{tfOpName:"ResizeBilinear",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ResizeNearestNeighbor",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"CropAndResize",category:"image",inputs:[{start:0,name:"image",type:"tensor"},{start:1,name:"boxes",type:"tensor"},{start:2,name:"boxInd",type:"tensor"},{start:3,name:"cropSize",type:"number[]"}],attrs:[{tfName:"method",name:"method",type:"string"},{tfName:"extrapolation_value",name:"extrapolationValue",type:"number"}]}];const xw={};Re(xw,{json:()=>YW});const YW=[{tfOpName:"Equal",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NotEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Greater",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"GreaterEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Less",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LessEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalAnd",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalNot",category:"logical",inputs:[{start:0,name:"a",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalOr",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Select",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SelectV2",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];const Lw={};Re(Lw,{json:()=>KW});const KW=[{tfOpName:"_FusedMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMulV2",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Transpose",category:"matrices",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"perm",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];const Sw={};Re(Sw,{json:()=>XW});const XW=[{tfOpName:"FusedBatchNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV2",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV3",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"LRN",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"depth_radius",name:"radius",type:"number",defaultValue:5},{tfName:"bias",name:"bias",type:"number",defaultValue:1},{tfName:"alpha",name:"alpha",type:"number",defaultValue:1},{tfName:"beta",name:"beta",type:"number",defaultValue:.5}]},{tfOpName:"Softmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"LogSoftmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"SparseToDense",category:"normalization",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!0,notSupported:!0}]}];const vw={};Re(vw,{json:()=>JW});const JW=[{tfOpName:"Max",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Mean",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Min",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Sum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"All",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Any",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"ArgMax",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"ArgMin",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"Prod",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Cumsum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}],attrs:[{tfName:"exclusive",name:"exclusive",type:"bool"},{tfName:"reverse",name:"reverse",type:"bool"}]}];const Tw={};Re(Tw,{json:()=>ZW});const ZW=[{tfOpName:"ConcatV2",category:"slice_join",inputs:[{start:0,end:-1,name:"tensors",type:"tensors"},{start:-1,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"Concat",category:"slice_join",inputs:[{start:1,end:0,name:"tensors",type:"tensors"},{start:0,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"GatherV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"axis",type:"number",defaultValue:0}]},{tfOpName:"Gather",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0},{tfName:"validate_indices",name:"validateIndices",type:"bool",notSupported:!0}]},{tfOpName:"Reverse",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"dims",type:"bool",notSupported:!0}]},{tfOpName:"ReverseV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}]},{tfOpName:"Slice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"size",type:"number[]"}]},{tfOpName:"StridedSlice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"end",type:"number[]"},{start:3,name:"strides",type:"number[]"}],attrs:[{tfName:"begin_mask",name:"beginMask",type:"number",defaultValue:0},{tfName:"end_mask",name:"endMask",type:"number",defaultValue:0},{tfName:"new_axis_mask",name:"newAxisMask",type:"number",defaultValue:0},{tfName:"ellipsis_mask",name:"ellipsisMask",type:"number",defaultValue:0},{tfName:"shrink_axis_mask",name:"shrinkAxisMask",type:"number",defaultValue:0}]},{tfOpName:"Pack",category:"slice_join",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0}]},{tfOpName:"Unpack",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0},{tfName:"num",name:"num",type:"number",defaultValue:0,notSupported:!0}]},{tfOpName:"Tile",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"reps",type:"number[]"}]},{tfOpName:"Split",category:"slice_join",inputs:[{start:0,name:"axis",type:"number",defaultValue:0},{start:1,name:"x",type:"tensor"}],attrs:[{tfName:"num_split",name:"numOrSizeSplits",type:"number",defaultValue:1}]},{tfOpName:"SplitV",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"numOrSizeSplits",type:"number[]"},{start:2,name:"axis",type:"number",defaultValue:0}]},{tfOpName:"ScatterNd",category:"slice_join",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"shape",type:"number[]"}]},{tfOpName:"GatherNd",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}]},{tfOpName:"SparseToDense",category:"slice_join",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!1,notSupported:!0}]}];const Iw={};Re(Iw,{json:()=>QW});const QW=[{tfOpName:"FFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"RFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]},{tfOpName:"IRFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]}];const Aw={};Re(Aw,{json:()=>ez});const ez=[{tfOpName:"Cast",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"SrcT",name:"sdtype",type:"dtype",notSupported:!0},{tfName:"DstT",name:"dtype",type:"dtype"}]},{tfOpName:"ExpandDims",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"Pad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"constant_value",name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"PadV2",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"},{start:2,name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"Reshape",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}]},{tfOpName:"Squeeze",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"axis",tfDeprecatedName:"squeeze_dims",name:"axis",type:"number[]"}]},{tfOpName:"SpaceToBatchND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"paddings",type:"number[]"}]},{tfOpName:"BatchToSpaceND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"crops",type:"number[]"}]},{tfOpName:"DepthToSpace",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"block_size",name:"blockSize",type:"number"},{tfName:"data_format",name:"dataFormat",type:"string"}]},{tfOpName:"BroadcastTo",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}],attrs:[]}];class rN{static get Instance(){return this._instance||(this._instance=new this())}constructor(){const e=[uw,hw,dw,mw,fw,gw,yw,xw,ww,bw,Lw,Sw,vw,Tw,Iw,Aw],t=[].concat(...e.map(s=>s.json));this.opMappers=t.reduce((s,n)=>(s[n.tfOpName]=n,s),{})}transformGraph(e,t={}){const s=e.node,n=[],i=[],r=s.reduce((h,d)=>(h[d.name]=this.mapNode(d),d.op.startsWith("Placeholder")&&n.push(h[d.name]),d.op==="Const"&&i.push(h[d.name]),h),{});let o=[];const a=[];let l={},c={};t!=null&&(l=this.mapSignatureEntries(t.inputs),c=this.mapSignatureEntries(t.outputs));const p=Object.keys(r);p.forEach(h=>{const d=r[h];d.inputNames.forEach(m=>{const[f]=$n(m);d.inputs.push(r[f]),r[f].children.push(d)})}),Object.keys(c).length===0?p.forEach(h=>{const d=r[h];d.children.length===0&&a.push(d)}):Object.keys(c).forEach(h=>{const[d]=$n(h),m=r[d];m!=null&&(m.signatureKey=c[h],a.push(m))}),Object.keys(l).length>0?Object.keys(l).forEach(h=>{const[d]=$n(h),m=r[d];m&&(m.signatureKey=l[h],o.push(m))}):o=n;let u={};return e.library!=null&&e.library.function!=null&&(u=e.library.function.reduce((h,d)=>(h[d.signature.name]=this.mapFunction(d),h),{})),{nodes:r,inputs:o,outputs:a,weights:i,placeholders:n,signature:t,functions:u}}mapSignatureEntries(e){return Object.keys(e||{}).reduce((t,s)=>(t[e[s].name]=s,t),{})}mapNode(e){const t=zm(e.op)||this.opMappers[e.op]||{};e.attr==null&&(e.attr={});const s={name:e.name,op:e.op,category:t.category,inputNames:(e.input||[]).map(n=>n.startsWith("^")?n.substr(1):n),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:e.attr};return t.inputs!=null&&(s.inputParams=t.inputs.reduce((n,i)=>(n[i.name]={type:i.type,inputIndexStart:i.start,inputIndexEnd:i.end},n),{})),t.attrs!=null&&(s.attrParams=t.attrs.reduce((n,i)=>{const r=i.type;let o;switch(i.type){case"string":o=Pm(e.attr,i.tfName,i.defaultValue),o===void 0&&!!i.tfDeprecatedName&&(o=Pm(e.attr,i.tfDeprecatedName,i.defaultValue));break;case"string[]":o=Km(e.attr,i.tfName,i.defaultValue),o===void 0&&!!i.tfDeprecatedName&&(o=Km(e.attr,i.tfDeprecatedName,i.defaultValue));break;case"number":o=Vm(e.attr,i.tfName,i.defaultValue||0),o===void 0&&!!i.tfDeprecatedName&&(o=Vm(e.attr,i.tfDeprecatedName,i.defaultValue));break;case"number[]":o=Ym(e.attr,i.tfName,i.defaultValue),o===void 0&&!!i.tfDeprecatedName&&(o=Ym(e.attr,i.tfDeprecatedName,i.defaultValue));break;case"bool":o=jm(e.attr,i.tfName,i.defaultValue),o===void 0&&!!i.tfDeprecatedName&&(o=jm(e.attr,i.tfDeprecatedName,i.defaultValue));break;case"bool[]":o=Jm(e.attr,i.tfName,i.defaultValue),o===void 0&&!!i.tfDeprecatedName&&(o=Jm(e.attr,i.tfDeprecatedName,i.defaultValue));break;case"shape":o=qm(e.attr,i.tfName,i.defaultValue),o===void 0&&!!i.tfDeprecatedName&&(o=qm(e.attr,i.tfDeprecatedName,i.defaultValue));break;case"shape[]":o=Xm(e.attr,i.tfName,i.defaultValue),o===void 0&&!!i.tfDeprecatedName&&(o=Xm(e.attr,i.tfDeprecatedName,i.defaultValue));break;case"dtype":o=Gm(e.attr,i.tfName,i.defaultValue),o===void 0&&!!i.tfDeprecatedName&&(o=Gm(e.attr,i.tfDeprecatedName,i.defaultValue));break;case"dtype[]":o=Hm(e.attr,i.tfName,i.defaultValue),o===void 0&&!!i.tfDeprecatedName&&(o=Hm(e.attr,i.tfDeprecatedName,i.defaultValue));break;case"func":o=iN(e.attr,i.tfName,i.defaultValue),o===void 0&&!!i.tfDeprecatedName&&(o=iN(e.attr,i.tfDeprecatedName,i.defaultValue));break;case"tensor":case"tensors":break;default:throw new Error(`Unsupported param type: ${i.type} for op: ${e.op}`)}return n[i.name]={value:o,type:r},n},{})),s}mapFunction(e){const t=e.nodeDef,s=[],n=[];let i={};t!=null&&(i=t.reduce((p,u)=>(p[u.name]=this.mapNode(u),u.op==="Const"&&n.push(p[u.name]),p),{}));const r=[],o=[];e.signature.inputArg.forEach(p=>{const[u]=$n(p.name),h={name:u,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:Nw(p.type),type:"dtype"}},children:[]};h.signatureKey=p.name,r.push(h),i[u]=h});const a=Object.keys(i);a.forEach(p=>{const u=i[p];u.inputNames.forEach(h=>{const[d]=$n(h);u.inputs.push(i[d]),i[d].children.push(u)})});const l=e.ret;e.signature.outputArg.forEach(p=>{const[u,h]=$n(l[p.name]),d=i[u];d!=null&&(d.defaultOutput=h,o.push(d))});const c=this.mapArgsToSignature(e);return{nodes:i,inputs:r,outputs:o,weights:n,placeholders:s,signature:c}}mapArgsToSignature(e){return{methodName:e.signature.name,inputs:e.signature.inputArg.reduce((t,s)=>(t[s.name]=this.mapArgToTensorInfo(s),t),{}),outputs:e.signature.outputArg.reduce((t,s)=>(t[s.name]=this.mapArgToTensorInfo(s,e.ret),t),{})}}mapArgToTensorInfo(e,t){let s=e.name;return t!=null&&(s=t[s]),{name:s,dtype:e.type}}}function tz(e){const t=$().global;if(typeof t.atob!="undefined")return t.atob(e);if(typeof Buffer!="undefined")return new Buffer(e,"base64").toString();throw new Error("Unable to decode base64 in this environment. Missing built-in atob() or Buffer()")}function oN(e,t){const s=Array.isArray(e)?String.fromCharCode.apply(null,e):tz(e);return t?s:s.toLowerCase()}function Pm(e,t,s,n=!1){const i=e[t];return i!=null?oN(i.s,n):s}function jm(e,t,s){const n=e[t];return n?n.b:s}function Vm(e,t,s){const n=e[t]||{},i=n.i!=null?n.i:n.f!=null?n.f:s;return typeof i=="number"?i:parseInt(i,10)}function Nw(e){typeof e=="string"&&(e=bn[e]);switch(e){case bn.DT_FLOAT:return"float32";case bn.DT_INT32:case bn.DT_INT64:case bn.DT_INT8:case bn.DT_UINT8:return"int32";case bn.DT_BOOL:return"bool";case bn.DT_DOUBLE:return"float32";case bn.DT_STRING:return"string";default:return null}}function iN(e,t,s){const n=e[t];return n&&n.func?n.func.name:s}function Gm(e,t,s){const n=e[t];return n&&n.type?Nw(n.type):s}function Hm(e,t,s){const n=e[t];return n&&n.list&&n.list.type?n.list.type.map(i=>Nw(i)):s}function aN(e){return e.unknownRank?void 0:e.dim!=null?e.dim.map(t=>typeof t.size=="number"?t.size:parseInt(t.size,10)):[]}function qm(e,t,s){const n=e[t];return n&&n.shape?aN(n.shape):s}function Ym(e,t,s){const n=e[t];return n?((n.list.f&&n.list.f.length?n.list.f:n.list.i)||[]).map(i=>typeof i=="number"?i:parseInt(i,10)):s}function Km(e,t,s,n=!1){const i=e[t];return i&&i.list&&i.list.s?i.list.s.map(r=>oN(r,n)):s}function Xm(e,t,s){const n=e[t];return n&&n.list&&n.list.shape?n.list.shape.map(i=>aN(i)):s}function Jm(e,t,s){const n=e[t];return n&&n.list&&n.list.b?n.list.b:s}class lN{constructor(e,t,s){this.node=e,this.tensorMap=t,this.context=s,this.inputs=[],this.attrs={},this.inputs=e.inputNames.map(n=>this.getInput(n)),e.rawAttrs!=null&&(this.attrs=Object.keys(e.rawAttrs).reduce((n,i)=>(n[i]=this.getAttr(i),n),{}))}getInput(e){return Vt(e,this.tensorMap,this.context)}getAttr(e,t){const s=this.node.rawAttrs[e];if(s.tensor!=null)return Vt(e,this.tensorMap,this.context);if(s.i!=null||s.f!=null)return Vm(this.node.rawAttrs,e,t);if(s.s!=null)return Pm(this.node.rawAttrs,e,t);if(s.b!=null)return jm(this.node.rawAttrs,e,t);if(s.shape!=null)return qm(this.node.rawAttrs,e,t);if(s.type!=null)return Gm(this.node.rawAttrs,e,t);if(s.list!=null){if(s.list.i!=null||s.list.f!=null)return Ym(this.node.rawAttrs,e,t);if(s.list.s!=null)return Km(this.node.rawAttrs,e,t);if(s.list.shape!=null)return Xm(this.node.rawAttrs,e,t);if(s.list.b!=null)return Jm(this.node.rawAttrs,e,t);if(s.list.type!=null)return Hm(this.node.rawAttrs,e,t)}return t}}const cN=(e,t,s)=>{switch(e.op){case"BiasAdd":case"AddV2":case"Add":return[W(w("a",e,t,s),w("b",e,t,s))];case"AddN":return[op(w("tensors",e,t,s))];case"FloorMod":case"Mod":return[io(w("a",e,t,s),w("b",e,t,s))];case"Mul":return[C(w("a",e,t,s),w("b",e,t,s))];case"RealDiv":case"Div":return[J(w("a",e,t,s),w("b",e,t,s))];case"DivNoNan":return[Ap(w("a",e,t,s),w("b",e,t,s))];case"FloorDiv":return[Jr(w("a",e,t,s),w("b",e,t,s))];case"Sub":return[X(w("a",e,t,s),w("b",e,t,s))];case"Minimum":return[Vs(w("a",e,t,s),w("b",e,t,s))];case"Maximum":return[Wt(w("a",e,t,s),w("b",e,t,s))];case"Pow":return[qt(w("a",e,t,s),w("b",e,t,s))];case"SquaredDifference":return[Ri(w("a",e,t,s),w("b",e,t,s))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};const pN=(e,t,s)=>{switch(e.op){case"Abs":case"ComplexAbs":return[Je(w("x",e,t,s))];case"Acos":return[ip(w("x",e,t,s))];case"Acosh":return[rp(w("x",e,t,s))];case"Asin":return[lp(w("x",e,t,s))];case"Asinh":return[cp(w("x",e,t,s))];case"Atan":return[pp(w("x",e,t,s))];case"Atan2":return[up(w("x",e,t,s),w("y",e,t,s))];case"Atanh":return[hp(w("x",e,t,s))];case"Ceil":return[wp(w("x",e,t,s))];case"Complex":return[Ze(w("real",e,t,s),w("imag",e,t,s))];case"Cos":return[xi(w("x",e,t,s))];case"Cosh":return[Kr(w("x",e,t,s))];case"Elu":return[An(w("x",e,t,s))];case"Erf":return[Np(w("x",e,t,s))];case"Exp":return[At(w("x",e,t,s))];case"Expm1":return[Cp(w("x",e,t,s))];case"Floor":return[Nn(w("x",e,t,s))];case"Log":return[Mt(w("x",e,t,s))];case"Log1p":return[eo(w("x",e,t,s))];case"Imag":return[Ht(w("x",e,t,s))];case"Neg":return[Oe(w("x",e,t,s))];case"Reciprocal":return[Fp(w("x",e,t,s))];case"Real":return[$t(w("x",e,t,s))];case"Relu":return[ke(w("x",e,t,s))];case"Round":return[Up(w("x",e,t,s))];case"Selu":return[ao(w("x",e,t,s))];case"Sigmoid":return[Ss(w("x",e,t,s))];case"Sin":return[lo(w("x",e,t,s))];case"Sign":return[Wp(w("x",e,t,s))];case"Sinh":return[co(w("x",e,t,s))];case"Softplus":return[Rn(w("x",e,t,s))];case"Sqrt":return[He(w("x",e,t,s))];case"Square":return[ye(w("x",e,t,s))];case"Tanh":return[Zn(w("x",e,t,s))];case"Tan":return[Bp(w("x",e,t,s))];case"Relu6":case"ClipByValue":return[Dt(w("x",e,t,s),w("clipValueMin",e,t,s),w("clipValueMax",e,t,s))];case"Rsqrt":return[oo(Vt(e.inputNames[0],t,s))];case"Prod":return[ro(w("x",e,t,s),w("axes",e,t,s))];case"LeakyRelu":return[Qr(w("x",e,t,s),w("alpha",e,t,s))];case"Prelu":return[Ii(w("x",e,t,s),w("alpha",e,t,s))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function Ds(e,t,s=""){E.assert(sz(e,t),()=>s+` Shapes ${e} and ${t} must match`)}function sz(e,t){if(e.length!==t.length)return!1;for(let s=0;se.tensor.dispose()),this.tensors=[],this.closed_=!0,this.idTensor.dispose()}size(){return this.tensors.length}read(e){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||e>=this.size())throw new Error(`Tried to read from index ${e}, but array size is: ${this.size()}`);const t=this.tensors[e];if(t.cleared)throw new Error(`TensorArray ${this.name}: Could not read index ${e} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`);return this.clearAfterRead&&(t.cleared=!0),t.read=!0,t.tensor}readMany(e){return e.map(t=>this.read(t))}write(e,t){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||!this.dynamicSize&&e>=this.maxSize)throw new Error(`Tried to write to index ${e}, but array is not resizeable and size is: ${this.maxSize}`);const s=this.tensors[e]||{};if(t.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, + because the value dtype is ${t.dtype}, but TensorArray dtype is ${this.dtype}.`);if(this.size()===0&&(this.elementShape==null||this.elementShape.length===0)&&(this.elementShape=t.shape),Ds(this.elementShape,t.shape,`TensorArray ${this.name}: Could not write to TensorArray index ${e}.`),s.read)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been read.`);if(s.written)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been written.`);s.tensor=t,gt(t),s.written=!0,this.tensors[e]=s}writeMany(e,t){if(e.length!==t.length)throw new Error(`TensorArray ${this.name}: could not write multiple tensors,because the index size: ${e.length} is not the same as tensors size: ${t.length}.`);e.forEach((s,n)=>this.write(s,t[n]))}gather(e,t){if(!!t&&t!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but gather requested dtype ${t}`);if(e)e=e.slice(0,this.size());else{e=[];for(let n=0;n=this.maxSize)throw new Error(`Max index must be < array size (${s} vs. ${this.maxSize})`);this.writeMany(e,nt(t,0))}split(e,t){if(t.dtype!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${t.dtype}`);let s=0;const n=e.map(a=>(s+=a,s));if(s!==t.shape[0])throw new Error(`Expected sum of lengths to be equal to + tensor.shape[0], but sum of lengths is + ${s}, and tensor's shape is: ${t.shape}`);if(!this.dynamicSize&&e.length!==this.maxSize)throw new Error(`TensorArray's size is not equal to the size of lengths (${this.maxSize} vs. ${e.length}), and the TensorArray is not marked as dynamically resizeable`);const i=s===0?0:t.size/s,r=[];N(()=>{t=t.reshape([1,s,i]);for(let a=0;a{if(s!==i.dtype)throw new Error(`Invalid data types; op elements ${s}, but list elements ${i.dtype}`);Ds(t,i.shape,"TensorList shape mismatch: "),gt(i)}),this.idTensor=j(0),this.maxNumElements=n,gt(this.idTensor)}get id(){return this.idTensor.id}copy(){return new Ru([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(){this.tensors.forEach(e=>e.dispose()),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(e,t,s=-1){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(s!==-1&&this.tensors.length!==s)throw new Error(`Operation expected a list with ${s} elements but got a list with ${this.tensors.length} elements.`);return Ds(e,this.elementShape,"TensorList shape mismatch: "),N(()=>{const n=this.tensors.map(i=>i.reshape(e));return Xe(n,0)})}popBack(e,t){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(this.size()===0)throw new Error("Trying to pop from an empty list.");const s=this.tensors.pop();return Ds(s.shape,e,"TensorList shape mismatch: "),s.reshape(e)}pushBack(e){if(e.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${this.elementDtype}`);if(Ds(e.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");gt(e),this.tensors.push(e)}resize(e){if(e<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${e}`);if(this.maxNumElements!==-1&&e>this.maxNumElements)throw new Error(`TensorListResize input size ${e} is greater maxNumElement ${this.maxNumElements}.`);this.tensors.length=e}getItem(e,t,s){if(s!==this.elementDtype)throw new Error(`Invalid data types; op elements ${s}, but list elements ${this.elementDtype}`);if(e<0||e>this.tensors.length)throw new Error(`Trying to access element ${e} in a list with ${this.tensors.length} elements.`);if(this.tensors[e]==null)throw new Error(`element at index ${e} is null.`);return Ds(this.tensors[e].shape,t,"TensorList shape mismatch: "),this.tensors[e]}setItem(e,t){if(t.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t.dtype}, but list elements ${this.elementDtype}`);if(e<0||this.maxNumElements!==-1&&e>=this.maxNumElements)throw new Error(`Trying to set element ${e} in a list with max ${this.maxNumElements} elements.`);Ds(this.elementShape,t.shape,"TensorList shape mismatch: "),gt(t),this.tensors[e]=t}gather(e,t,s){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);return Ds(this.elementShape,s,"TensorList shape mismatch: "),e=e.slice(0,this.size()),e.length===0?ze([],[0].concat(this.elementShape)):N(()=>{const n=e.map(i=>this.tensors[i].reshape(s));return Xe(n,0)})}concat(e,t){if(!!e&&e!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${e}`);return Ds(this.elementShape,t,"TensorList shape mismatch: "),this.size()===0?ze([],[0].concat(this.elementShape)):N(()=>{const s=this.tensors.map(n=>n.reshape(t));return ge(s,0)})}}function hN(e,t,s){const n=e.dtype;if(e.shape.length<1)throw new Error(`Tensor must be at least a vector, but saw shape: ${e.shape}`);if(e.dtype!==s)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${s}`);const i=e.shape.slice(1);Ds(i,t,"TensorList shape mismatch: ");const r=e.unstack();return new Ru(r,t,n)}function dN(e,t,s){return new Ru([],e,t,s)}function mN(e,t,s,n){if(t.length!==e.shape[0])throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${t.length} vs. ${e.shape[0]}`);const i=Math.max(...t);if(n!=null&&n!==-1&&i>=n)throw new Error(`Max index must be < array size (${i} vs. ${n})`);const r=new Ru([],s,e.dtype,n),o=nt(e,0);return t.forEach((a,l)=>{r.setItem(a,o[l])}),r}function fN(e,t,s){let n=0;const i=t.map(l=>(n+=l,n));if(n!==e.shape[0])throw new Error(`Expected sum of lengths to be equal to + tensor.shape[0], but sum of lengths is + ${n}, and tensor's shape is: ${e.shape}`);const r=n===0?0:e.size/n,o=N(()=>{const l=[];e=e.reshape([1,n,r]);for(let c=0;c{switch(e.op){case"If":case"StatelessIf":{const n=w("thenBranch",e,t,s),i=w("elseBranch",e,t,s),r=w("cond",e,t,s),o=w("args",e,t,s),a=await r.data();return a[0]?s.functionMap[n].executeFunctionAsync(o,s.tensorArrayMap,s.tensorListMap):s.functionMap[i].executeFunctionAsync(o,s.tensorArrayMap,s.tensorListMap)}case"While":case"StatelessWhile":{const n=w("body",e,t,s),i=w("cond",e,t,s),r=w("args",e,t,s),o=await s.functionMap[i].executeFunctionAsync(r,s.tensorArrayMap,s.tensorListMap),a=r.map(p=>p.id);let l=await o[0].data();o.forEach(p=>{!p.kept&&a.indexOf(p.id)===-1&&p.dispose()});let c=r;for(;l[0];){const p=c;c=await s.functionMap[n].executeFunctionAsync(c,s.tensorArrayMap,s.tensorListMap);const u=c.map(d=>d.id);p.forEach(d=>{!d.kept&&a.indexOf(d.id)===-1&&u.indexOf(d.id)===-1&&d.dispose()});const h=await s.functionMap[i].executeFunctionAsync(c,s.tensorArrayMap,s.tensorListMap);l=await h[0].data(),h.forEach(d=>{!d.kept&&a.indexOf(d.id)===-1&&u.indexOf(d.id)===-1&&d.dispose()})}return c}case"LoopCond":{const n=w("pred",e,t,s);return[Wn(n)]}case"Switch":{const n=w("pred",e,t,s);let i=w("data",e,t,s);return i.kept||(i=Wn(i)),(await n.data())[0]?[void 0,i]:[i,void 0]}case"Merge":{const n=e.inputNames.find(i=>Vt(i,t,s)!==void 0);if(n){const i=Vt(n,t,s);return[Wn(i)]}return}case"Enter":{const n=w("frameName",e,t,s),i=w("tensor",e,t,s);return s.enterFrame(n),[Wn(i)]}case"Exit":{const n=w("tensor",e,t,s);return s.exitFrame(),[Wn(n)]}case"NextIteration":{const n=w("tensor",e,t,s);return s.nextIteration(),[Wn(n)]}case"TensorArrayV3":{const n=w("size",e,t,s),i=w("dtype",e,t,s),r=w("elementShape",e,t,s),o=w("dynamicSize",e,t,s),a=w("clearAfterRead",e,t,s),l=w("identicalElementShapes",e,t,s),c=w("name",e,t,s),p=new uN(c,i,n,r,l,o,a);return s.addTensorArray(p),[p.idTensor,j(1)]}case"TensorArrayWriteV3":{const n=w("tensorArrayId",e,t,s),i=w("index",e,t,s),r=w("tensor",e,t,s),o=s.getTensorArray(n.id);return o.write(i,r),[o.idTensor]}case"TensorArrayReadV3":{const n=w("tensorArrayId",e,t,s),i=w("index",e,t,s),r=s.getTensorArray(n.id);return[r.read(i)]}case"TensorArrayGatherV3":{const n=w("tensorArrayId",e,t,s),i=w("indices",e,t,s),r=w("dtype",e,t,s),o=s.getTensorArray(n.id);return[o.gather(i,r)]}case"TensorArrayScatterV3":{const n=w("tensorArrayId",e,t,s),i=w("indices",e,t,s),r=w("tensor",e,t,s),o=s.getTensorArray(n.id);return o.scatter(i,r),[o.idTensor]}case"TensorArrayConcatV3":{const n=w("tensorArrayId",e,t,s),i=s.getTensorArray(n.id),r=w("dtype",e,t,s);return[i.concat(r)]}case"TensorArraySplitV3":{const n=w("tensorArrayId",e,t,s),i=w("tensor",e,t,s),r=w("lengths",e,t,s),o=s.getTensorArray(n.id);return o.split(r,i),[o.idTensor]}case"TensorArraySizeV3":{const n=w("tensorArrayId",e,t,s),i=s.getTensorArray(n.id);return[j(i.size(),"int32")]}case"TensorArrayCloseV3":{const n=w("tensorArrayId",e,t,s),i=s.getTensorArray(n.id);return i.clearAndClose(),[i.idTensor]}case"TensorListSetItem":{const n=w("tensorListId",e,t,s),i=w("index",e,t,s),r=w("tensor",e,t,s),o=s.getTensorList(n.id);return o.setItem(i,r),[o.idTensor]}case"TensorListGetItem":{const n=w("tensorListId",e,t,s),i=w("index",e,t,s),r=w("elementShape",e,t,s),o=w("elementDType",e,t,s),a=s.getTensorList(n.id);return[a.getItem(i,r,o)]}case"TensorListScatterV2":case"TensorListScatter":{const n=w("indices",e,t,s),i=w("tensor",e,t,s),r=w("elementShape",e,t,s),o=w("numElements",e,t,s),a=mN(i,n,r,o);return s.addTensorList(a),[a.idTensor]}case"TensorListReserve":{const n=w("elementShape",e,t,s),i=w("elementDType",e,t,s),r=w("numElements",e,t,s),o=dN(n,i,r);return s.addTensorList(o),[o.idTensor]}case"TensorListGather":{const n=w("tensorListId",e,t,s),i=w("indices",e,t,s),r=w("elementShape",e,t,s),o=w("elementDType",e,t,s),a=s.getTensorList(n.id);return[a.gather(i,o,r)]}case"TensorListStack":{const n=w("tensorListId",e,t,s),i=w("elementShape",e,t,s),r=w("elementDType",e,t,s),o=w("numElements",e,t,s),a=s.getTensorList(n.id);return[a.stack(i,r,o)]}case"TensorListFromTensor":{const n=w("tensor",e,t,s),i=w("elementShape",e,t,s),r=w("elementDType",e,t,s),o=hN(n,i,r);return s.addTensorList(o),[o.idTensor]}case"TensorListConcat":{const n=w("tensorListId",e,t,s),i=s.getTensorList(n.id),r=w("dtype",e,t,s),o=w("elementShape",e,t,s);return[i.concat(r,o)]}case"TensorListPushBack":{const n=w("tensorListId",e,t,s),i=w("tensor",e,t,s),r=s.getTensorList(n.id);return r.pushBack(i),[r.idTensor]}case"TensorListPopBack":{const n=w("tensorListId",e,t,s),i=w("elementShape",e,t,s),r=w("elementDType",e,t,s),o=s.getTensorList(n.id);return[o.popBack(i,r)]}case"TensorListSplit":{const n=w("tensor",e,t,s),i=w("elementShape",e,t,s),r=w("lengths",e,t,s),o=fN(n,r,i);return s.addTensorList(o),[o.idTensor]}default:throw TypeError(`Node type ${e.op} is not implemented`)}};function yN(e,t,s){const[n,i]=w("fusedOps",e,t,s),r=n==="biasadd",o=i==="prelu",a=n==="fusedbatchnorm",l=w("numArgs",e,t,s);if(r){if(o&&l!==2)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!o&&l!==1)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.")}if(a)throw new Error("FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported.");const c=w("strides",e,t,s),p=Cu(e,t,s),u=w("dataFormat",e,t,s).toUpperCase(),h=w("dilations",e,t,s),[d,m]=w("args",e,t,s);return{stride:c,pad:p,dataFormat:u,dilations:h,biasArg:d,preluArg:m,activationFunc:i}}const bN=(e,t,s)=>{switch(e.op){case"Conv1D":{const n=w("stride",e,t,s),i=w("pad",e,t,s),r=w("dataFormat",e,t,s).toUpperCase(),o=w("dilation",e,t,s);return[Hr(w("x",e,t,s),w("filter",e,t,s),n,i,r,o)]}case"Conv2D":{const n=w("strides",e,t,s),i=Cu(e,t,s),r=w("dataFormat",e,t,s).toUpperCase(),o=w("dilations",e,t,s);return[yt(w("x",e,t,s),w("filter",e,t,s),[n[1],n[2]],i,r,[o[1],o[2]])]}case"_FusedConv2D":{const{stride:n,pad:i,dataFormat:r,dilations:o,biasArg:a,preluArg:l,activationFunc:c}=yN(e,t,s);return[Hs.conv2d({x:w("x",e,t,s),filter:w("filter",e,t,s),strides:[n[1],n[2]],pad:i,dataFormat:r,dilations:[o[1],o[2]],bias:a,activation:c,preluActivationWeights:l})]}case"FusedDepthwiseConv2dNative":{const{stride:n,pad:i,dataFormat:r,dilations:o,biasArg:a,preluArg:l,activationFunc:c}=yN(e,t,s);return[Hs.depthwiseConv2d({x:w("x",e,t,s),filter:w("filter",e,t,s),strides:[n[1],n[2]],pad:i,dataFormat:r,dilations:[o[1],o[2]],bias:a,activation:c,preluActivationWeights:l})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{const n=w("outputShape",e,t,s),i=w("strides",e,t,s),r=Cu(e,t,s);return[qr(w("x",e,t,s),w("filter",e,t,s),n,[i[1],i[2]],r)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{const n=w("strides",e,t,s),i=Cu(e,t,s),r=w("dilations",e,t,s),o=w("dataFormat",e,t,s).toUpperCase();return[In(w("input",e,t,s),w("filter",e,t,s),[n[1],n[2]],i,o,[r[1],r[2]])]}case"Conv3D":{const n=w("strides",e,t,s),i=w("pad",e,t,s),r=w("dataFormat",e,t,s).toUpperCase(),o=w("dilations",e,t,s);return[Yr(w("x",e,t,s),w("filter",e,t,s),[n[1],n[2],n[3]],i,r,[o[1],o[2],o[3]])]}case"AvgPool":{const n=w("strides",e,t,s),i=w("pad",e,t,s),r=w("kernelSize",e,t,s);return[rs(w("x",e,t,s),[r[1],r[2]],[n[1],n[2]],i)]}case"MaxPool":{const n=w("strides",e,t,s),i=w("pad",e,t,s),r=w("kernelSize",e,t,s);return[lt(w("x",e,t,s),[r[1],r[2]],[n[1],n[2]],i)]}case"MaxPoolWithArgmax":{const n=w("strides",e,t,s),i=w("pad",e,t,s),r=w("kernelSize",e,t,s),o=w("includeBatchInIndex",e,t,s),{result:a,indexes:l}=kp(w("x",e,t,s),[r[1],r[2]],[n[1],n[2]],i,o);return[a,l]}case"AvgPool3D":{const n=w("strides",e,t,s),i=w("pad",e,t,s),r=w("kernelSize",e,t,s);return[Gr(w("x",e,t,s),[r[1],r[2],r[3]],[n[1],n[2],n[3]],i)]}case"MaxPool3D":{const n=w("strides",e,t,s),i=w("pad",e,t,s),r=w("kernelSize",e,t,s);return[no(w("x",e,t,s),[r[1],r[2],r[3]],[n[1],n[2],n[3]],i)]}case"Dilation2D":{const n=w("strides",e,t,s),i=w("pad",e,t,s),r=w("dilations",e,t,s),o=n[1],a=n[2],l=r[1],c=r[2];return[Ip(w("x",e,t,s),w("filter",e,t,s),[o,a],i,[l,c],"NHWC")]}default:throw TypeError(`Node type ${e.op} is not implemented`)}};const wN=(e,t,s)=>{switch(e.op){case"Fill":{const n=w("shape",e,t,s),i=w("dtype",e,t,s),r=w("value",e,t,s);return[Ft(n,r,i)]}case"LinSpace":{const n=w("start",e,t,s),i=w("stop",e,t,s),r=w("num",e,t,s);return[Rp(n,i,r)]}case"Multinomial":{const n=w("logits",e,t,s),i=w("numSamples",e,t,s),r=w("seed",e,t,s);return[_p(n,i,r)]}case"OneHot":{const n=w("indices",e,t,s),i=w("depth",e,t,s),r=w("onValue",e,t,s),o=w("offValue",e,t,s);return[On(n,i,r,o)]}case"Ones":return[es(w("shape",e,t,s),w("dtype",e,t,s))];case"OnesLike":return[Bt(w("x",e,t,s))];case"RandomUniform":return[Gs(w("shape",e,t,s),w("minval",e,t,s),w("maxval",e,t,s),w("dtype",e,t,s))];case"Range":{const n=w("start",e,t,s),i=w("stop",e,t,s),r=w("step",e,t,s);return[ei(n,i,r,w("dtype",e,t,s))]}case"TruncatedNormal":{const n=w("shape",e,t,s),i=w("mean",e,t,s),r=w("stdDev",e,t,s),o=w("seed",e,t,s);return[Oi(n,i,r,w("dtype",e,t,s),o)]}case"Zeros":return[Ie(w("shape",e,t,s),w("dtype",e,t,s))];case"ZerosLike":return[ne(w("x",e,t,s))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function Cw(e,t,s){const n=w("boxes",e,t,s),i=w("scores",e,t,s),r=w("maxOutputSize",e,t,s),o=w("iouThreshold",e,t,s),a=w("scoreThreshold",e,t,s),l=w("softNmsSigma",e,t,s);return{boxes:n,scores:i,maxOutputSize:r,iouThreshold:o,scoreThreshold:a,softNmsSigma:l}}const xN=async(e,t,s)=>{switch(e.op){case"NonMaxSuppressionV5":{const{boxes:n,scores:i,maxOutputSize:r,iouThreshold:o,scoreThreshold:a,softNmsSigma:l}=Cw(e,t,s),c=await ks.nonMaxSuppressionWithScoreAsync(n,i,r,o,a,l);return[c.selectedIndices,c.selectedScores]}case"NonMaxSuppressionV4":{const{boxes:n,scores:i,maxOutputSize:r,iouThreshold:o,scoreThreshold:a}=Cw(e,t,s),l=w("padToMaxOutputSize",e,t,s),c=await ks.nonMaxSuppressionPaddedAsync(n,i,r,o,a,l);return[c.selectedIndices,c.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{const{boxes:n,scores:i,maxOutputSize:r,iouThreshold:o,scoreThreshold:a}=Cw(e,t,s);return[await ks.nonMaxSuppressionAsync(n,i,r,o,a)]}case"Where":{const n=w("condition",e,t,s).asType("bool"),i=[await uo(n)];return n.dispose(),i}case"ListDiff":return $p(w("x",e,t,s),w("y",e,t,s));default:throw TypeError(`Node type ${e.op} is not implemented`)}};const LN=(e,t,s)=>{switch(e.op){case"TopKV2":{const n=w("x",e,t,s),i=w("k",e,t,s),r=w("sorted",e,t,s),o=jp(n,i,r);return[o.values,o.indices]}default:throw TypeError(`Node type ${e.op} is not implemented`)}};const SN=(e,t,s)=>{switch(e.op){case"Const":return t[e.name];case"PlaceholderWithDefault":const n=w("default",e,t,s);return[Vt(e.name,t,s)||n];case"Placeholder":return[Vt(e.name,t,s)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{const c=w("x",e,t,s);return[Wn(c)]}case"IdentityN":return w("x",e,t,s).map(c=>Wn(c));case"Snapshot":const i=w("x",e,t,s);return[Wn(i)];case"Shape":return[Fe(w("x",e,t,s).shape,"int32")];case"ShapeN":return w("x",e,t,s).map(c=>Fe(c.shape));case"Size":return[j(w("x",e,t,s).size,"int32")];case"Rank":return[j(w("x",e,t,s).rank,"int32")];case"NoOp":return[j(1)];case"Print":const r=w("x",e,t,s),o=w("data",e,t,s),a=w("message",e,t,s),l=w("summarize",e,t,s);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(a);for(let c=0;c{switch(e.op){case"ResizeBilinear":{const n=w("images",e,t,s),i=w("size",e,t,s),r=w("alignCorners",e,t,s);return[ks.resizeBilinear(n,[i[0],i[1]],r)]}case"ResizeNearestNeighbor":{const n=w("images",e,t,s),i=w("size",e,t,s),r=w("alignCorners",e,t,s);return[ks.resizeNearestNeighbor(n,[i[0],i[1]],r)]}case"CropAndResize":{const n=w("image",e,t,s),i=w("boxes",e,t,s),r=w("boxInd",e,t,s),o=w("cropSize",e,t,s),a=w("method",e,t,s),l=w("extrapolationValue",e,t,s);return[ks.cropAndResize(n,i,r,o,a,l)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}};const TN=(e,t,s)=>{switch(e.op){case"Equal":return[Qt(w("a",e,t,s),w("b",e,t,s))];case"NotEqual":return[Es(w("a",e,t,s),w("b",e,t,s))];case"Greater":return[Ct(w("a",e,t,s),w("b",e,t,s))];case"GreaterEqual":return[as(w("a",e,t,s),w("b",e,t,s))];case"Less":return[Si(w("a",e,t,s),w("b",e,t,s))];case"LessEqual":return[vs(w("a",e,t,s),w("b",e,t,s))];case"LogicalAnd":return[zt(w("a",e,t,s),w("b",e,t,s))];case"LogicalNot":return[vi(w("a",e,t,s))];case"LogicalOr":return[so(w("a",e,t,s),w("b",e,t,s))];case"Select":case"SelectV2":return[at(w("condition",e,t,s),w("a",e,t,s),w("b",e,t,s))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};const IN=(e,t,s)=>{switch(e.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[Le(w("a",e,t,s),w("b",e,t,s),w("transposeA",e,t,s),w("transposeB",e,t,s))];case"Transpose":return[se(w("x",e,t,s),w("perm",e,t,s))];case"_FusedMatMul":const[n,i]=w("fusedOps",e,t,s),r=n==="biasadd",o=i==="prelu",a=w("numArgs",e,t,s);if(r){if(o&&a!==2)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!o&&a!==1)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}const[l,c]=w("args",e,t,s);return[Hs.matMul({a:w("a",e,t,s),b:w("b",e,t,s),transposeA:w("transposeA",e,t,s),transposeB:w("transposeB",e,t,s),bias:l,activation:i,preluActivationWeights:c})];default:throw TypeError(`Node type ${e.op} is not implemented`)}};const AN=(e,t,s)=>{switch(e.op){case"FusedBatchNorm":case"FusedBatchNormV2":return[on(w("x",e,t,s),w("mean",e,t,s),w("variance",e,t,s),w("offset",e,t,s),w("scale",e,t,s),w("epsilon",e,t,s))];case"FusedBatchNormV3":return[on(w("x",e,t,s),w("mean",e,t,s),w("variance",e,t,s),w("offset",e,t,s),w("scale",e,t,s),w("epsilon",e,t,s))];case"LRN":return[Op(w("x",e,t,s),w("radius",e,t,s),w("bias",e,t,s),w("alpha",e,t,s),w("beta",e,t,s))];case"Softmax":return[Yt(w("x",e,t,s))];case"LogSoftmax":return[to(w("x",e,t,s))];case"SparseToDense":return[fa(w("sparseIndices",e,t,s),w("outputShape",e,t,s),w("sparseValues",e,t,s),w("defaultValue",e,t,s))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};const NN=(e,t,s)=>{switch(e.op){case"Max":{const n=w("axis",e,t,s),i=w("keepDims",e,t,s);return[st(w("x",e,t,s),n,i)]}case"Mean":{const n=w("axis",e,t,s),i=w("keepDims",e,t,s);return[Ge(w("x",e,t,s),n,i)]}case"Min":{const n=w("axis",e,t,s),i=w("keepDims",e,t,s);return[an(w("x",e,t,s),n,i)]}case"Sum":{const n=w("axis",e,t,s),i=w("keepDims",e,t,s);return[te(w("x",e,t,s),n,i)]}case"All":{const n=w("axis",e,t,s),i=w("keepDims",e,t,s);return[jr(w("x",e,t,s),n,i)]}case"Any":{const n=w("axis",e,t,s),i=w("keepDims",e,t,s);return[sr(w("x",e,t,s),n,i)]}case"ArgMax":{const n=w("axis",e,t,s);return[nr(w("x",e,t,s),n)]}case"ArgMin":{const n=w("axis",e,t,s);return[ap(w("x",e,t,s),n)]}case"Prod":{const n=w("axis",e,t,s),i=w("keepDims",e,t,s);return[ro(w("x",e,t,s),n,i)]}case"Cumsum":{const n=w("axis",e,t,s),i=w("exclusive",e,t,s),r=w("reverse",e,t,s);return[Xr(w("x",e,t,s),n,i,r)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}};const CN=(e,t,s)=>{switch(e.op){case"ConcatV2":case"Concat":{const n=w("n",e,t,s),i=w("axis",e,t,s);let r=w("tensors",e,t,s);return r=r.slice(0,n),[ge(r,i)]}case"GatherV2":case"Gather":{const n=w("axis",e,t,s),i=w("x",e,t,s),r=w("indices",e,t,s);return[Cn(i,r.asType("int32"),n)]}case"ReverseV2":case"Reverse":{const n=w("axis",e,t,s),i=w("x",e,t,s);return[Lt(i,n)]}case"Slice":{const n=w("begin",e,t,s),i=w("size",e,t,s);return[he(w("x",e,t,s),n,i)]}case"StridedSlice":{const n=w("begin",e,t,s),i=w("end",e,t,s),r=w("strides",e,t,s),o=w("beginMask",e,t,s),a=w("endMask",e,t,s),l=w("ellipsisMask",e,t,s),c=w("newAxisMask",e,t,s),p=w("shrinkAxisMask",e,t,s),u=w("x",e,t,s);return[zp(u,n,i,r,o,a,l,c,p)]}case"Pack":return N(()=>{const n=w("axis",e,t,s),i=w("tensors",e,t,s),r=i[0].shape,o=i[0].squeeze().shape,a=i.map(l=>{const c=E.arraysEqual(l.shape,r);if(!c&&!E.arraysEqual(l.squeeze().shape,o))throw new Error("the input tensors shape does not match");return c?l:l.reshape(r)});return[Xe(a,n)]});case"Unpack":{const n=w("axis",e,t,s),i=w("tensor",e,t,s);return nt(i,n)}case"Tile":{const n=w("reps",e,t,s);return[js(w("x",e,t,s),n)]}case"Split":case"SplitV":{const n=w("axis",e,t,s),i=w("numOrSizeSplits",e,t,s),r=w("x",e,t,s);return ls(r,i,n)}case"ScatterNd":{const n=w("indices",e,t,s),i=w("values",e,t,s),r=w("shape",e,t,s);return[Bh(n,i,r)]}case"GatherNd":{const n=w("x",e,t,s),i=w("indices",e,t,s);return[Ph(n,i)]}case"SparseToDense":{const n=w("sparseIndices",e,t,s),i=w("outputShape",e,t,s),r=w("sparseValues",e,t,s),o=w("defaultValue",e,t,s);return[fa(n,r,i,r.dtype===o.dtype?o:o.asType(r.dtype))]}default:throw TypeError(`Node type ${e.op} is not implemented`)}};const RN=(e,t,s)=>{switch(e.op){case"FFT":return[Li(w("x",e,t,s))];case"IFFT":return[Qn(w("x",e,t,s))];case"RFFT":return[Ai(w("x",e,t,s))];case"IRFFT":return[Zr(w("x",e,t,s))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};const ON=(e,t,s)=>{switch(e.op){case"Cast":return[K(w("x",e,t,s),w("dtype",e,t,s))];case"ExpandDims":{const n=w("axis",e,t,s);return[Nt(w("x",e,t,s),n)]}case"Squeeze":{const n=w("axis",e,t,s);return[En(w("x",e,t,s),n)]}case"Reshape":return[O(w("x",e,t,s),w("shape",e,t,s))];case"PadV2":case"Pad":return[Ut(w("x",e,t,s),w("padding",e,t,s),w("constantValue",e,t,s))];case"SpaceToBatchND":{const n=w("blockShape",e,t,s),i=w("paddings",e,t,s);return[Ti(w("x",e,t,s),n,i)]}case"BatchToSpaceND":{const n=w("blockShape",e,t,s),i=w("crops",e,t,s);return[wi(w("x",e,t,s),n,i)]}case"DepthToSpace":{const n=w("blockSize",e,t,s),i=w("dataFormat",e,t,s).toUpperCase();return[Tp(w("x",e,t,s),n,i)]}case"BroadcastTo":return[or(w("x",e,t,s),w("shape",e,t,s))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function Rw(e,t,s){const n=((i,r,o)=>{switch(i.category){case"arithmetic":return N(()=>cN(i,r,o));case"basic_math":return N(()=>pN(i,r,o));case"control":return gN(i,r,o);case"convolution":return N(()=>bN(i,r,o));case"creation":return N(()=>wN(i,r,o));case"dynamic":return xN(i,r,o);case"evaluation":return N(()=>LN(i,r,o));case"image":return N(()=>vN(i,r,o));case"graph":return N(()=>SN(i,r,o));case"logical":return N(()=>TN(i,r,o));case"matrices":return N(()=>IN(i,r,o));case"normalization":return N(()=>AN(i,r,o));case"reduction":return N(()=>NN(i,r,o));case"slice_join":return N(()=>CN(i,r,o));case"spectral":return N(()=>RN(i,r,o));case"transformation":return N(()=>ON(i,r,o));case"custom":const a=zm(i.op);if(a&&a.customExecutor)return a.customExecutor(new lN(i,r,o));throw TypeError(`Custom op ${i.op} is not registered.`);default:throw TypeError(`Unknown op '${i.op}'. File an issue at https://github.com/tensorflow/tfjs/issues so we can add it, or register a custom execution with tf.registerOp()`)}})(e,t,s);return n instanceof Promise?n.then(i=>[].concat(i)):[].concat(n)}class Ow{constructor(e={},t={},s={},n={}){this.weightMap=e,this.tensorArrayMap=t,this.tensorListMap=s,this.functionMap=n,this.rootContext={id:0,frameName:"",iterationId:0},this.contexts=[this.rootContext],this.lastId=0,this.generateCurrentContextIds()}newFrame(e,t){return{id:e,frameName:t,iterationId:0}}set currentContext(e){this.contexts!==e&&(this.contexts=e,this.generateCurrentContextIds())}get currentContext(){return this.contexts}get currentContextId(){return this._currentContextIds[0]}get currentContextIds(){return this._currentContextIds}generateCurrentContextIds(){const e=[];for(let t=0;tt.id===0&&t.iterationId===0?"":`${t.frameName}-${t.iterationId}`).join("/"):""}enterFrame(e){this.contexts&&(this.lastId++,this.contexts=this.contexts.slice(),this.contexts.push(this.newFrame(this.lastId,e)),this._currentContextIds.unshift(this.contextIdforContexts(this.contexts)))}exitFrame(){if(this.contexts&&this.contexts.length>1)this.contexts=this.contexts.slice(),this.contexts.splice(-1),this.currentContextIds.shift();else throw new Error("Cannot exit frame, the context is empty")}nextIteration(){if(this.contexts&&this.contexts.length>0){this.contexts=this.contexts.slice(),this.lastId++;const e=Object.assign({},this.contexts[this.contexts.length-1]);e.iterationId+=1,e.id=this.lastId,this.contexts.splice(-1,1,e),this._currentContextIds.splice(0,1,this.contextIdforContexts(this.contexts))}else throw new Error("Cannot increase frame iteration, the context is empty")}getWeight(e){return this.weightMap[e]}addTensorArray(e){this.tensorArrayMap[e.id]=e}getTensorArray(e){return this.tensorArrayMap[e]}addTensorList(e){this.tensorListMap[e.id]=e}getTensorList(e){return this.tensorListMap[e]}dispose(){for(const e in this.tensorArrayMap)this.tensorArrayMap[e].clearAndClose();for(const e in this.tensorListMap)this.tensorListMap[e].clearAndClose()}}function kw(e,t,s){const n=new Set(),i=[];let r=null,o=null;const a=new Set(),l=Object.keys(e).map(p=>As(p)[0]),c=[...t];for(;c.length>0;){const p=c.pop();if((Ew(p)||nz(p))&&(r==null&&(r=p,o=r.children.map(u=>u.name).filter(u=>n.has(u)))),n.add(p.name),s[p.name]!=null)continue;if(l.indexOf(p.name)!==-1)continue;if(p.inputs.length===0){i.push(p.name);continue}p.inputs.forEach(u=>{if(a.has(u.name))return;a.add(u.name),c.push(u)})}return{inputs:e,outputs:t,usedNodes:n,missingInputs:i,dynamicNode:r,syncInputs:o}}function EN(e,t,s){const{usedNodes:n,inputs:i}=s,r=[],o=Object.keys(i).map(c=>As(c)[0]).map(c=>e.nodes[c]);o.forEach(c=>{n.has(c.name)&&r.push(c)}),e.weights.forEach(c=>{n.has(c.name)&&r.push(c)});const a=new Set(),l=[];for(;r.length>0;){const c=r.pop();a.add(c.name),t[c.name]||l.push(c),c.children.forEach(p=>{!a.has(p.name)&&n.has(p.name)&&p.inputs.every(u=>a.has(u.name))&&r.push(p)})}return l}const iz=["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"],rz=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"];function Ew(e){return iz.indexOf(e.op)>=0}function nz(e){return rz.indexOf(e.op)>=0}class _w{constructor(e,t){this.graph=e,this.parent=t,this.compiledMap=new Map(),this._weightMap={},this.SEPERATOR=",",this._functions={},this._functionExecutorMap={},this._outputs=e.outputs,this._inputs=e.inputs,this._signature=e.signature,this._functions=e.functions,e.functions!=null&&Object.keys(e.functions).forEach(s=>{this._functionExecutorMap[s]=new _w(e.functions[s],this)})}get weightIds(){return this.parent?this.parent.weightIds:this._weightIds}get functionExecutorMap(){return this.parent?this.parent.functionExecutorMap:this._functionExecutorMap}get weightMap(){return this.parent?this.parent.weightMap:this._weightMap}set weightMap(e){const t=Object.keys(e).map(s=>e[s].map(n=>n.id));this._weightIds=[].concat(...t),this._weightMap=e}get inputs(){return this._inputs.map(e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0}))}get outputs(){return this._outputs.map(e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0}))}get inputNodes(){return this._inputs.map(e=>e.signatureKey||e.name)}get outputNodes(){return this._outputs.map(e=>{const t=e.signatureKey||e.name;return e.defaultOutput?`${t}:${e.defaultOutput}`:t})}get functions(){return Object.keys(this._functions).reduce((e,t)=>(e[t]=this._functions[t].signature,e),{})}getCompilationKey(e,t){const s=e.map(i=>i.name).sort(),n=t.map(i=>i.name).sort();return s.join(this.SEPERATOR)+"--"+n.join(this.SEPERATOR)}compile(e,t){const s=kw(e,t,this.weightMap),{missingInputs:n,dynamicNode:i,syncInputs:r}=s;if(i!=null)throw new Error(`This execution contains the node '${i.name}', which has the dynamic op '${i.op}'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs [${r}]`);if(n.length>0){const o=t.map(l=>l.name),a=Object.keys(e);throw new Error(`Cannot compute the outputs [${o}] from the provided inputs [${a}]. Missing the following inputs: [${n}]`)}return EN(this.graph,this.weightMap,s)}execute(e,t){e=this.mapInputs(e);const s=Object.keys(e).sort();this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t);const n=s.map(c=>this.graph.nodes[As(c)[0]]),i=t.map(c=>this.graph.nodes[As(c)[0]]),r=this.getCompilationKey(n,i);let o=this.compiledMap.get(r);o==null&&(o=this.compile(e,i),this.compiledMap.set(r,o));const a={},l={};return N(()=>{const c=new Ow(this.weightMap,a,l,this.functionExecutorMap),p=Object.assign({},this.weightMap);Object.keys(e).forEach(d=>{const[m,f]=As(d),y=[];y[f]=e[d],p[m]=y});const u=this.getFrozenTensorIds(p),h={};for(let d=0;dVt(d,p,c))})}getFrozenTensorIds(e){const t=[].concat.apply([],Object.keys(e).map(s=>e[s]).map(s=>s.map(n=>n.id)));return new Set(t)}checkTensorForDisposal(e,t,s,n,i,r,o){if(t.category==="control"||r.indexOf(e)!==-1)return;s[e].forEach(a=>{a!=null&&(o[a.id]=(o[a.id]||0)+t.children.length)}),t.inputs.forEach(a=>{if(a.category!=="control"){const l=nN(a.name,s,n);l!=null&&l.forEach(c=>{if(c&&!i.has(c.id)){const p=o[c.id];p===1?(c.dispose(),delete o[c.id]):p!=null&&o[c.id]--}})}})}async executeAsync(e,t){return this._executeAsync(e,t)}async _executeAsync(e,t,s=!1,n={},i={}){s||(e=this.mapInputs(e),this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t));const r=new Ow(this.weightMap,n,i,this.functionExecutorMap),o=await this.executeWithControlFlow(e,r,t,s),a=t.map(p=>Vt(p,o,r)),l=new Set(a.map(p=>p.id)),c=new Set(Object.keys(e).map(p=>e[p].id));return Object.keys(o).forEach(p=>{const u=o[p];u.forEach(h=>{h&&!h.isDisposed&&!l.has(h.id)&&!c.has(h.id)&&this.weightIds.indexOf(h.id)===-1&&h.dispose()})}),this.parent==null&&r.dispose(),a}async executeFunctionAsync(e,t,s){const n=e.reduce((i,r,o)=>(i[this.inputs[o].name]=r,i),{});return this._executeAsync(n,this.outputNodes,!0,t,s)}async executeWithControlFlow(e,t,s,n){const i=Object.keys(e),r=i.map(b=>this.graph.nodes[As(b)[0]]),o=s.map(b=>this.graph.nodes[As(b)[0]]),{usedNodes:a,missingInputs:l,dynamicNode:c,syncInputs:p}=kw(e,o,this.weightMap),u=[...r,...this.graph.weights].map(b=>({node:b,contexts:t.currentContext})),h=Object.assign({},this.weightMap);Object.keys(e).forEach(b=>{const[S,x]=As(b),I=[];I[x]=e[b],h[S]=I});const d={},m=this.getFrozenTensorIds(h),f={};for(;u.length>0;){const b=this.processStack(r,u,t,h,f,m,s,d,a);await Promise.all(b)}c==null&&!n&&console.warn("This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.");const y=o.filter(b=>!Ew(b)&&!Vt(b.name,h,t)).map(b=>b.name);if(y.length>0){let b="";throw c!=null&&(b=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${p}]`),new Error(`Cannot compute the outputs [${y}] from the provided inputs [${i}]. Consider providing the following inputs: [${l}]. ${b}`)}return h}processStack(e,t,s,n,i,r,o,a,l){const c=[];for(;t.length>0;){const p=t.pop();s.currentContext=p.contexts;let u="";if(p.node.op==="Enter"&&w("isConstant",p.node,n,s)&&([u]=$n(p.node.name,s)),e.indexOf(p.node)===-1){const h=Rw(p.node,n,s);u||([u]=$n(p.node.name,s));const d=s.currentContext;h instanceof Promise?c.push(h.then(m=>(n[u]=m,s.currentContext=d,this.checkTensorForDisposal(u,p.node,n,s,r,o,a),this.processChildNodes(p.node,t,s,n,i,l),m))):(n[u]=h,this.checkTensorForDisposal(u,p.node,n,s,r,o,a),this.processChildNodes(p.node,t,s,n,i,l))}else this.processChildNodes(p.node,t,s,n,i,l)}return c}processChildNodes(e,t,s,n,i,r){e.children.forEach(o=>{const[a]=$n(o.name,s);if(i[a]||!r.has(o.name))return;o.op==="Merge"?o.inputNames.some(l=>!!Vt(l,n,s))&&(i[a]=!0,t.push({contexts:s.currentContext,node:o})):o.inputNames.every(l=>!!Vt(l,n,s))&&(i[a]=!0,t.push({contexts:s.currentContext,node:o}))})}dispose(){Object.keys(this.weightMap).forEach(e=>this.weightMap[e].forEach(t=>t.dispose()))}checkInputShapeAndType(e){Object.keys(e).forEach(t=>{const s=e[t],[n]=As(t),i=this.graph.nodes[n];if(i.attrParams.shape&&i.attrParams.shape.value){const r=i.attrParams.shape.value,o=r.length===s.shape.length&&s.shape.every((a,l)=>r[l]===-1||r[l]===a);E.assert(o,()=>`The shape of dict['${i.name}'] provided in model.execute(dict) must be [${r}], but was [${s.shape}]`)}i.attrParams.dtype&&i.attrParams.dtype.value&&E.assert(s.dtype===i.attrParams.dtype.value,()=>`The dtype of dict['${i.name}'] provided in model.execute(dict) must be ${i.attrParams.dtype.value}, but was ${s.dtype}`)})}mapInputs(e){const t={};for(const s in e)if(this._signature!=null&&this._signature.inputs!=null&&this._signature.inputs[s]!=null){const n=this._signature.inputs[s];t[n.name]=e[s]}else t[s]=e[s];return t}checkInputs(e){const t=Object.keys(e).filter(s=>{const[n]=As(s);return this.graph.nodes[n]==null});if(t.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${t}] that are not part of graph`)}mapOutputs(e){return e.map(t=>{if(this._signature!=null&&this._signature.outputs!=null&&this._signature.outputs[t]!=null){const s=this._signature.outputs[t];return s.name}return t},{})}checkOutputs(e){e.forEach(t=>{const[s]=As(t);if(!this.graph.nodes[s])throw new Error(`The output '${t}' is not found in the graph`)})}}const oz="?tfjs-format=file",az="model.json";class Dw{constructor(e,t={}){this.modelUrl=e,this.loadOptions=t,this.version="n/a",t==null&&(this.loadOptions={})}get modelVersion(){return this.version}get inputNodes(){return this.executor.inputNodes}get outputNodes(){return this.executor.outputNodes}get inputs(){return this.executor.inputs}get outputs(){return this.executor.outputs}get weights(){return this.executor.weightMap}findIOHandler(){const e=this.modelUrl;if(e.load!=null)this.handler=e;else if(this.loadOptions.requestInit!=null)this.handler=Ot.browserHTTPRequest(e,this.loadOptions);else{const t=Ot.getLoadHandlers(e,this.loadOptions);if(t.length===0)t.push(Ot.browserHTTPRequest(e,this.loadOptions));else if(t.length>1)throw new Error(`Found more than one (${t.length}) load handlers for URL '${[e]}'`);this.handler=t[0]}}async load(){if(this.findIOHandler(),this.handler.load==null)throw new Error("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");const e=await this.handler.load();return this.loadSync(e)}loadSync(e){this.artifacts=e;const t=this.artifacts.modelTopology;let s={};this.artifacts.userDefinedMetadata!=null&&(s=this.artifacts.userDefinedMetadata.signature),this.version=`${t.versions.producer}.${t.versions.minConsumer}`;const n=Ot.decodeWeights(this.artifacts.weightData,this.artifacts.weightSpecs);return this.executor=new _w(rN.Instance.transformGraph(t,s)),this.executor.weightMap=this.convertTensorMapToTensorsMap(n),!0}async save(e,t){if(typeof e=="string"){const s=Ot.getSaveHandlers(e);if(s.length===0)throw new Error(`Cannot find any save handlers for URL '${e}'`);if(s.length>1)throw new Error(`Found more than one (${s.length}) save handlers for URL '${e}'`);e=s[0]}if(e.save==null)throw new Error("GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");return e.save(this.artifacts)}predict(e,t){return this.execute(e,this.outputNodes)}normalizeInputs(e){if(!(e instanceof ue)&&!Array.isArray(e))return e;if(e=Array.isArray(e)?e:[e],e.length!==this.inputNodes.length)throw new Error(`Input tensor count mismatch,the graph model has ${this.inputNodes.length} placeholders, while there are ${e.length} input tensors.`);return this.inputNodes.reduce((t,s,n)=>(t[s]=e[n],t),{})}normalizeOutputs(e){return e=e||this.outputNodes,Array.isArray(e)?e:[e]}execute(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);const s=this.executor.execute(e,t);return s.length>1?s:s[0]}async executeAsync(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);const s=await this.executor.executeAsync(e,t);return s.length>1?s:s[0]}convertTensorMapToTensorsMap(e){return Object.keys(e).reduce((t,s)=>(t[s]=[e[s]],t),{})}dispose(){this.executor.dispose()}}async function kN(e,t={}){if(e==null)throw new Error("modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model");t==null&&(t={}),t.fromTFHub&&(e.load==null&&(e.endsWith("/")||(e=e+"/"),e=`${e}${az}${oz}`));const s=new Dw(e,t);return await s.load(),s}const Zm="2.3.0";function _N(e,t){return Qm(e,t)}function Qm(e,t,s=new Map(),n=new Set()){if(e==null)return null;if(n.has(e))throw new Error("Circular references are not supported.");if(s.has(e))return s.get(e);const i=t(e);if(i.recurse&&i.value!==null)throw new Error("A deep map function may not return both a value and recurse=true.");if(i.recurse)if(br(e)){const r=Array.isArray(e)?[]:{};n.add(e);for(const o in e){const a=e[o],l=Qm(a,t,s,n);r[o]=l}return n.delete(e),r}else throw new Error(`Can't recurse into non-iterable type: ${e}`);else return s.set(e,i.value),i.value}function FN(e,t=Fw){return DN(e,t)}function DN(e,t,s=new Set()){const n=e[0];if(s.has(n))throw new Error("Circular references are not supported.");const i=t(e);if(i.recurse&&i.value!==null)throw new Error("A deep zip function may not return both a value and recurse=true.");if(i.recurse)if(br(n)){const r=Array.isArray(n)?[]:{};s.add(n);for(const o in n){const a=e.map(c=>c[o]),l=DN(a,t,s);r[o]=l}return s.delete(n),r}else throw new Error(`Can't recurse into non-iterable type: ${n}`);else return i.value}function Fw(e){return e===null?null:br(e[0])?{value:null,recurse:!0}:{value:e,recurse:!1}}async function ef(e,t){const s=new Map();Qm(e,t,s);for(const i of Array.from(s.keys())){const r=s.get(i);if(r instanceof Promise){const o=await r;s.set(i,o)}}const n=Qm(e,t,s);return n}function br(e){return e!=null&&!ArrayBuffer.isView(e)&&(Array.isArray(e)||typeof e=="object"&&!(e instanceof ue))}function MN(e){return e==null||lz(e)||Array.isArray(e)||typeof e=="object"&&e instanceof ue||E.isTypedArray(e)}function lz(e){return e===null||typeof e!="object"&&typeof e!="function"}function UN(e){return _N(e,cz)}function cz(e){return e instanceof ue?{value:e.clone(),recurse:!1}:br(e)?{value:null,recurse:!0}:{value:e,recurse:!1}}class tf{constructor(e){if(this.capacity=e,this.begin=0,this.end=0,e==null)throw new RangeError("Can't create a ring buffer of unknown capacity.");if(e<1)throw new RangeError("Can't create ring buffer of capacity < 1.");this.data=new Array(e),this.doubledCapacity=2*e}wrap(e){for(;e<0;)e+=this.doubledCapacity;return e%this.doubledCapacity}get(e){if(e<0)throw new RangeError("Can't get item at a negative index.");return this.data[e%this.capacity]}set(e,t){if(e<0)throw new RangeError("Can't set item at a negative index.");this.data[e%this.capacity]=t}length(){let e=this.end-this.begin;return e<0&&(e=this.doubledCapacity+e),e}isFull(){return this.length()===this.capacity}isEmpty(){return this.length()===0}push(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.set(this.end,e),this.end=this.wrap(this.end+1)}pushAll(e){for(const t of e)this.push(t)}pop(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");this.end=this.wrap(this.end-1);const e=this.get(this.end);return this.set(this.end,void 0),e}unshift(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.begin=this.wrap(this.begin-1),this.set(this.begin,e)}shift(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");const e=this.get(this.begin);return this.set(this.begin,void 0),this.begin=this.wrap(this.begin+1),e}shuffleExcise(e){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");const t=this.wrap(this.begin+e),s=this.get(t);return this.set(t,this.pop()),s}}class sf extends tf{constructor(){super(sf.INITIAL_CAPACITY)}isFull(){return!1}push(e){super.isFull()&&this.expand(),super.push(e)}unshift(e){super.isFull()&&this.expand(),super.unshift(e)}expand(){const e=this.capacity*2,t=new Array(e),s=this.length();for(let n=0;nt===!0)}rowMajorBatch(e,t=!0){return new gz(this,e,t)}columnMajorBatch(e,t=!0,s=Fw){const n=this.rowMajorBatch(e,t);return n.map(i=>FN(i,s))}concatenate(e,t){return new WN(Mw([this,e]),t)}take(e){return e<0||e==null?this:new fz(this,e)}skip(e){return e<0||e==null?this:new mz(this,e)}prefetch(e){return new jN(this,e)}shuffle(e,t){return new Lz(this,e,t)}serial(){return new dz(this)}}class pz extends Tt{constructor(e){super();this.items=e,this.trav=0}summary(){return`Array of ${this.items.length} items`}async next(){if(this.trav>=this.items.length)return{value:null,done:!0};const e=this.items[this.trav];return this.trav++,{value:UN(e),done:!1}}}class uz extends Tt{constructor(e){super();this.nextFn=e}summary(){return"Function call"}async next(){try{return this.nextFn()}catch(e){throw e.message=`Error thrown while iterating through a dataset: ${e.message}`,e}}}class dz extends Tt{constructor(e){super();this.upstream=e,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Serial`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){return this.upstream.next()}}class mz extends Tt{constructor(e,t){super();this.upstream=e,this.maxCount=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Skip`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.count++ Take`}async next(){return this.count++>=this.maxCount?{value:null,done:!0}:this.upstream.next()}}class gz extends Tt{constructor(e,t,s=!0){super();this.upstream=e,this.batchSize=t,this.enableSmallLastBatch=s,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> RowMajorBatch`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){const e=[];for(;e.length0?{value:e,done:!1}:{value:null,done:!0};e.push(t.value)}return{value:e,done:!1}}}class yz extends Tt{constructor(e,t){super();this.upstream=e,this.predicate=t,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Filter`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;){const e=await this.upstream.next();if(e.done||this.predicate(e.value))return e;ce(e.value)}}}class bz extends Tt{constructor(e,t){super();this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Map`}async next(){const e=await this.upstream.next();if(e.done)return{value:null,done:!0};const t=rn.getTensorsInContainer(e.value),s=this.transform(e.value),n=rn.getTensorsInContainer(s);for(const i of t)rn.isTensorInList(i,n)||i.dispose();return{value:s,done:!1}}}class wz extends Tt{constructor(e,t){super();this.upstream=e,this.handler=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> handleErrors`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;)try{return await this.upstream.next()}catch(e){if(!this.handler(e))return{value:null,done:!0}}}}class PN extends Tt{constructor(e,t){super();this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> AsyncMap`}async next(){const e=await this.upstream.next();if(e.done)return{value:null,done:!0};const t=rn.getTensorsInContainer(e.value),s=await this.transform(e.value),n=rn.getTensorsInContainer(s);for(const i of t)rn.isTensorInList(i,n)||i.dispose();return{value:s,done:!1}}}class Eu extends Tt{constructor(){super();this.outputQueue=new sf(),this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.outputQueue.length()===0;)if(!await this.pump())return{value:null,done:!0};return{value:this.outputQueue.shift(),done:!1}}}class xz extends Eu{constructor(e,t){super();this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Flatmap`}async pump(){const e=await this.upstream.next();if(e.done)return!1;const t=rn.getTensorsInContainer(e.value),s=this.transform(e.value),n=rn.getTensorsInContainer(s);this.outputQueue.pushAll(s);for(const i of t)rn.isTensorInList(i,n)||i.dispose();return!0}}class WN extends Tt{constructor(e,t){super();this.baseErrorHandler=t,this.lastRead=null,this.iterator=null,this.moreIterators=e}summary(){const e="TODO: fill in upstream of chained summaries";return`${e} -> Chained`}async next(){return this.lastRead=this.readFromChain(this.lastRead),this.lastRead}async readFromChain(e){if(await e,this.iterator==null){const s=await this.moreIterators.next();if(s.done)return{value:null,done:!0};this.iterator=s.value,this.baseErrorHandler!=null&&(this.iterator=this.iterator.handleErrors(this.baseErrorHandler))}const t=await this.iterator.next();return t.done?(this.iterator=null,this.readFromChain(e)):t}}var zi;(function(e){e[e.FAIL=0]="FAIL",e[e.SHORTEST=1]="SHORTEST",e[e.LONGEST=2]="LONGEST"})(zi||(zi={}));class hz extends Tt{constructor(e,t=zi.FAIL){super();this.iterators=e,this.mismatchMode=t,this.count=0,this.currentPromise=null}summary(){const e="TODO: fill in upstream of zip summaries";return`{${e}} -> Zip`}async nextState(e){await e;let t=0,s=0;function n(r){if(r instanceof Tt){const o=r.next();return{value:o.then(a=>(t++,a.done&&s++,a.value)),recurse:!1}}else return{value:null,recurse:!0}}const i=await ef(this.iterators,n);if(t===s)return{value:null,done:!0};if(s>0)switch(this.mismatchMode){case zi.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case zi.SHORTEST:return{value:null,done:!0};case zi.LONGEST:default:}return this.count++,{value:i,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}}class jN extends Tt{constructor(e,t){super();this.upstream=e,this.bufferSize=t,this.buffer=new tf(t)}summary(){return`${this.upstream.summary()} -> Prefetch`}refill(){for(;!this.buffer.isFull();){const e=this.upstream.next();this.buffer.push(e)}}next(){return this.refill(),this.buffer.shift()}}class Lz extends jN{constructor(e,t,s){super(e,t);this.upstream=e,this.windowSize=t,this.upstreamExhausted=!1,this.random=$N.alea(s||E.now().toString()),this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}randomInt(e){return Math.floor(this.random()*e)}chooseIndex(){return this.randomInt(this.buffer.length())}async serialNext(){for(this.upstreamExhausted||this.refill();!this.buffer.isEmpty();){const e=this.chooseIndex(),t=await this.buffer.shuffleExcise(e);if(t.done)this.upstreamExhausted=!0;else return this.refill(),t}return{value:null,done:!0}}}const VN=nl(il());class Bi{constructor(){this.size=null}batch(e,t=!0){const s=this;E.assert(e>0,()=>`batchSize needs to be positive, but it is + ${e}`);let n;return this.size===Infinity||this.size==null?n=this.size:t?n=Math.ceil(this.size/e):n=Math.floor(this.size/e),Ns(async()=>(await s.iterator()).columnMajorBatch(e,t,Sz),n)}concatenate(e){const t=this;let s;return this.size===Infinity||e.size===Infinity?s=Infinity:this.size!=null&&e.size!=null?s=this.size+e.size:s=null,Ns(async()=>(await t.iterator()).concatenate(await e.iterator()),s)}filter(e){const t=this;let s;return this.size===Infinity?s=Infinity:s=null,Ns(async()=>(await t.iterator()).filter(n=>N(()=>e(n))),s)}async forEachAsync(e){return(await this.iterator()).forEachAsync(e)}map(e){const t=this;return Ns(async()=>(await t.iterator()).map(s=>N(()=>e(s))),this.size)}mapAsync(e){const t=this;return Ns(async()=>(await t.iterator()).mapAsync(e),this.size)}prefetch(e){if(e==null)throw new RangeError("`Dataset.prefetch()` requires bufferSize to be specified.");const t=this;return Ns(async()=>(await t.iterator()).prefetch(e),this.size)}repeat(e){const t=this;let s;return this.size!=null&&e>0?s=this.size*e:e===0?s=0:this.size!=null&&(e===void 0||e<0)?s=Infinity:s=null,Ns(async()=>{const n=Ou(async()=>({value:await t.iterator(),done:!1}));return zN(n.take(e))},s)}skip(e){const t=this;let s;return this.size!=null&&e>=0&&this.size>=e?s=this.size-e:this.size!=null&&(this.size(await t.iterator()).skip(e),s)}shuffle(e,t,s=!0){if(e==null||e<0)throw this.size==null?new RangeError("`Dataset.shuffle()` requires bufferSize to be specified."):new RangeError(`\`Dataset.shuffle()\` requires bufferSize to be specified. If your data fits in main memory (for regular JS objects), and/or GPU memory (for \`tf.Tensor\`s), consider setting bufferSize to the dataset size (${this.size} elements)`);const n=this,i=VN.alea(t||E.now().toString());return Ns(async()=>{let r=i.int32();return s&&(r+=i.int32()),(await n.iterator()).shuffle(e,r.toString())},this.size)}take(e){const t=this;let s;return this.size!=null&&this.size>e?s=e:this.size!=null&&this.size<=e?s=this.size:s=null,Ns(async()=>(await t.iterator()).take(e),s)}async toArray(){if(this.size===Infinity)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArray()}async toArrayForTest(){if(this.size===Infinity)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArrayForTest()}}Bi.MAX_BUFFER_SIZE=1e4;function Ns(e,t=null){return new class extends Bi{constructor(){super(...arguments);this.size=t}async iterator(){return e()}}()}function GN(e){return Ns(async()=>Mw(e),e.length)}function HN(e){if(!br(e))throw new Error("The argument to zip() must be an object or array.");let t;if(Array.isArray(e))for(let s=0;s{const s=await ef(e,n=>{if(n instanceof Bi)return{value:n.iterator(),recurse:!1};if(br(n))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")});return BN(s,zi.SHORTEST)},t)}function Sz(e){if(e===null)return null;const t=e[0];if(MN(t)){const s=vz(e);return{value:s,recurse:!1}}return{value:null,recurse:!0}}function vz(e){if(e.length===0)throw new Error("Can't make a batch of zero elements.");return e[0]instanceof ue?Xe(e):ze(e)}class nf extends Bi{constructor(e){super();this.input=e}async iterator(){const e=await this.input.iterator(),t=e.decodeUTF8(),s=t.split(` +`).map(n=>(n.endsWith("\r")&&(n=n.slice(0,-1)),n));return s}}const rf='"',ku=Symbol("out"),qN=Symbol("field"),of=Symbol("quote"),Uw=Symbol("quoteafterquote"),YN=Symbol("quoteinquote");class af extends Bi{constructor(e,t){super();this.input=e,this.hasHeader=!0,this.fullColumnNames=null,this.columnNamesValidated=!1,this.columnConfigs=null,this.configuredColumnsOnly=!1,this.delimiter=",",this.delimWhitespace=!1,this.base=new nf(e),t||(t={}),this.hasHeader=!(t.hasHeader===!1),this.fullColumnNames=t.columnNames,this.columnConfigs=t.columnConfigs,this.configuredColumnsOnly=t.configuredColumnsOnly,t.delimWhitespace?(E.assert(t.delimiter==null,()=>"Delimiter should not be provided when delimWhitespace is true."),this.delimWhitespace=!0,this.delimiter=" "):this.delimiter=t.delimiter?t.delimiter:","}async columnNames(){return this.columnNamesValidated||await this.setColumnNames(),this.configuredColumnsOnly?Object.keys(this.columnConfigs):this.fullColumnNames}async setColumnNames(){const e=await this.maybeReadHeaderLine();if(!this.fullColumnNames&&!e)throw new Error("Column names must be provided if there is no header line.");this.fullColumnNames&&e&&E.assert(e.length===this.fullColumnNames.length,()=>"The length of provided columnNames ("+this.fullColumnNames.length.toString()+") does not match the length of the header line read from file ("+e.length.toString()+")."),this.fullColumnNames||(this.fullColumnNames=e);const t=this.fullColumnNames.reduce((n,i)=>(n[i]=n[i]+1||1,n),{}),s=Object.keys(t).filter(n=>t[n]>1);if(E.assert(s.length===0,()=>"Duplicate column names found: "+s.toString()),this.columnConfigs)for(const n of Object.keys(this.columnConfigs)){const i=this.fullColumnNames.indexOf(n);if(i===-1)throw new Error('The key "'+n+'" provided in columnConfigs does not match any of the column names ('+this.fullColumnNames.toString()+").")}this.columnNamesValidated=!0}async maybeReadHeaderLine(){if(this.hasHeader){const e=await this.base.iterator(),t=await e.next();if(t.done)throw new Error("No data was found for CSV parsing.");const s=t.value,n=this.parseRow(s,!1);return n}else return null}async iterator(){this.columnNamesValidated||await this.setColumnNames();let e=await this.base.iterator();return this.hasHeader&&(e=e.skip(1)),e.map(t=>this.makeDataElement(t))}makeDataElement(e){const t=this.parseRow(e),s={},n={};for(let i=0;i14||!Number.isInteger(t))throw new Error(`Invalid fftSize: it must be a power of 2 between 2 to 4 and 2 to 14, but got ${this.fftSize}`);if(this.numFrames=e.numFramesPerSpectrogram||43,this.sampleRateHz=e.sampleRateHz,this.columnTruncateLength=e.columnTruncateLength||this.fftSize,this.audioTrackConstraints=e.audioTrackConstraints,this.smoothingTimeConstant=e.smoothingTimeConstant||0,this.includeSpectrogram=!(e.includeSpectrogram===!1),this.includeWaveform=e.includeWaveform===!0,!this.includeSpectrogram&&!this.includeWaveform)throw new Error("Both includeSpectrogram and includeWaveform are false. At least one type of data should be returned.")}summary(){return"microphone"}static async create(e={}){if($().get("IS_NODE"))throw new Error("microphone API is only supported in browser environment.");const t=new $w(e);return await t.start(),t}async start(){try{this.stream=await navigator.mediaDevices.getUserMedia({audio:this.audioTrackConstraints==null?!0:this.audioTrackConstraints,video:!1})}catch(s){throw new Error(`Error thrown while initializing video stream: ${s.message}`)}if(!this.stream)throw new Error("Could not obtain audio from microphone.");const e=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new e(),!this.sampleRateHz)this.sampleRateHz=this.audioContext.sampleRate;else if(this.audioContext.sampleRate!==this.sampleRateHz)throw new Error(`Mismatch in sampling rate: Expected: ${this.sampleRateHz}; Actual: ${this.audioContext.sampleRate}`);const t=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=this.fftSize*2,this.analyser.smoothingTimeConstant=this.smoothingTimeConstant,t.connect(this.analyser),this.freqData=new Float32Array(this.fftSize),this.timeData=new Float32Array(this.fftSize);return}async next(){if(this.isClosed)return{value:null,done:!0};let e,t;const s=await this.getAudioData();if(this.includeSpectrogram){const n=this.flattenQueue(s.freqDataQueue);e=this.getTensorFromAudioDataArray(n,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){const n=this.flattenQueue(s.timeDataQueue);t=this.getTensorFromAudioDataArray(n,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:e,waveform:t},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){const e=[],t=[];let s=0;return new Promise(n=>{const i=setInterval(()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-Infinity&&n({freqDataQueue:e,timeDataQueue:t}),e.push(this.freqData.slice(0,this.columnTruncateLength))),this.includeWaveform&&(this.analyser.getFloatTimeDomainData(this.timeData),t.push(this.timeData.slice())),++s===this.numFrames&&(clearInterval(i),n({freqDataQueue:e,timeDataQueue:t}))},this.fftSize/this.sampleRateHz*1e3)})}stop(){this.isClosed||(this.isClosed=!0,this.analyser.disconnect(),this.audioContext.close(),this.stream!=null&&this.stream.getTracks().length>0&&this.stream.getTracks()[0].stop())}toArray(){throw new Error("Can not convert infinite audio stream to array.")}getSampleRate(){return this.sampleRateHz}flattenQueue(e){const t=e[0].length,s=new Float32Array(e.length*t);return e.forEach((n,i)=>s.set(n,i*t)),s}getTensorFromAudioDataArray(e,t){const s=new Float32Array(E.sizeFromShape(t));return s.set(e,s.length-e.length),ze(s,t)}}class Ww extends Tt{constructor(e,t){super();if(this.webcamVideoElement=e,this.webcamConfig=t,this.isClosed=!0,this.resize=!1,this.needToResize())if(this.resize=!0,this.cropSize=[this.webcamConfig.resizeHeight,this.webcamConfig.resizeWidth],this.cropBoxInd=Fe([0],"int32"),this.webcamConfig.centerCrop){const s=this.webcamConfig.resizeWidth*1/this.webcamVideoElement.width,n=this.webcamConfig.resizeHeight*1/this.webcamVideoElement.height,i=(1-s)/2,r=(1-n)/2,o=i+s,a=n+r;this.cropBox=ts([r,i,a,o],[1,4])}else this.cropBox=ts([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(e,t={}){if($().get("IS_NODE"))throw new Error("tf.data.webcam is only supported in browser environment.");if(!e){if(e=document.createElement("video"),!t.resizeWidth||!t.resizeHeight)throw new Error("Please provide webcam video element, or resizeWidth and resizeHeight to create a hidden video element.");e.width=t.resizeWidth,e.height=t.resizeHeight}const s=new Ww(e,t);return await s.start(),s}async start(){this.webcamConfig.facingMode&&E.assert(this.webcamConfig.facingMode==="user"||this.webcamConfig.facingMode==="environment",()=>`Invalid webcam facing mode: ${this.webcamConfig.facingMode}. Please provide 'user' or 'environment'`);try{this.stream=await navigator.mediaDevices.getUserMedia({video:{deviceId:this.webcamConfig.deviceId,facingMode:this.webcamConfig.facingMode?this.webcamConfig.facingMode:"user",width:this.webcamVideoElement.width,height:this.webcamVideoElement.height}})}catch(e){throw e.message=`Error thrown while initializing video stream: ${e.message}`,e}if(!this.stream)throw new Error("Could not obtain video from webcam.");try{this.webcamVideoElement.srcObject=this.stream}catch(e){console.log(e),this.webcamVideoElement.src=window.URL.createObjectURL(this.stream)}return this.webcamVideoElement.play(),this.isClosed=!1,new Promise(e=>{this.webcamVideoElement.onloadedmetadata=()=>{e()}})}async next(){if(this.isClosed)return{value:null,done:!0};let e;try{e=pr.fromPixels(this.webcamVideoElement)}catch(t){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(t)}`)}if(this.resize)try{return{value:this.cropAndResizeFrame(e),done:!1}}catch(t){throw new Error(`Error thrown cropping the video: ${t.message}`)}finally{e.dispose()}else return{value:e,done:!1}}needToResize(){return!!(this.webcamConfig.resizeWidth&&this.webcamConfig.resizeHeight&&(this.webcamVideoElement.width!==this.webcamConfig.resizeWidth||this.webcamVideoElement.height!==this.webcamConfig.resizeHeight))}cropAndResizeFrame(e){return N(()=>{const t=e.toFloat().expandDims(0);let s;s=ks.cropAndResize(t,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");const n=s.shape;return s.reshape(n.slice(1))})}async capture(){return(await this.next()).value}stop(){const e=this.stream.getTracks();e.forEach(t=>t.stop());try{this.webcamVideoElement.srcObject=null}catch(t){console.log(t),this.webcamVideoElement.src=null}this.isClosed=!0}toArray(){throw new Error("Can not convert infinite video stream to array.")}}class lf{}class zw extends Tt{split(e){return new Tz(this,e)}}class Tz extends zw{constructor(e,t){super();this.upstream=e,this.impl=new Iz(e,t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}}class Iz extends Eu{constructor(e,t){super();this.upstream=e,this.separator=t,this.carryover=""}summary(){return`${this.upstream.summary()} -> Split('${this.separator}')`}async pump(){const e=await this.upstream.next();if(e.done)return this.carryover===""?!1:(this.outputQueue.push(this.carryover),this.carryover="",!0);const t=e.value.split(this.separator);t[0]=this.carryover+t[0];for(const s of t.slice(0,-1))this.outputQueue.push(s);return this.carryover=t[t.length-1],!0}}class KN extends Tt{decodeUTF8(){return new Az(this)}}class Az extends zw{constructor(e){super();this.upstream=e,this.impl=new Nz(e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}}class Nz extends Eu{constructor(e){super();if(this.upstream=e,$().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{const{StringDecoder:t}=dL();this.decoder=new t("utf8")}}summary(){return`${this.upstream.summary()} -> Utf8`}async pump(){const e=await this.upstream.next();let t;if(e.done)return!1;t=e.value;let s;return $().get("IS_BROWSER")?s=this.decoder.decode(t,{stream:!0}):s=this.decoder.write(Buffer.from(t.buffer)),this.outputQueue.push(s),!0}}class cf extends KN{constructor(e,t={}){super();this.file=e,this.options=t,E.assert(e instanceof Uint8Array||($().get("IS_BROWSER")?e instanceof File||e instanceof Blob:!1),()=>"FileChunkIterator only supports File, Blob and Uint8Array right now."),this.offset=t.offset||0,this.chunkSize=t.chunkSize||1024*1024}summary(){return`FileChunks ${this.file}`}async next(){if(this.offset>=(this.file instanceof Uint8Array?this.file.byteLength:this.file.size))return{value:null,done:!0};const e=new Promise((t,s)=>{const n=this.offset+this.chunkSize;if(this.file instanceof Uint8Array)t(new Uint8Array(this.file.slice(this.offset,n)));else{const i=new FileReader();i.onload=o=>{let a=i.result;if(a instanceof ArrayBuffer&&(a=new Uint8Array(a)),!(a instanceof Uint8Array))return s(new TypeError("FileReader returned unknown type."));t(a)},i.onabort=o=>s(new Error("Aborted")),i.onerror=o=>s(new Error(o.type));const r=this.file.slice(this.offset,n);i.readAsArrayBuffer(r)}this.offset=n});return{value:await e,done:!1}}}async function XN(e,t={}){let s,n;typeof e=="string"?s=e:(s=e.url,n=Cz(e));const i=await E.fetch(s,n);if(i.ok){const r=new Uint8Array(await i.arrayBuffer());return new cf(r,t)}else throw new Error(i.statusText)}const Cz=e=>{const t={method:e.method,headers:e.headers,body:e.body,mode:e.mode,credentials:e.credentials,cache:e.cache,redirect:e.redirect,referrer:e.referrer,integrity:e.integrity};return t};function pf(e){return typeof e=="string"&&e.substr(0,7)==="file://"}class uf extends lf{constructor(e,t={}){super();this.input=e,this.options=t}async iterator(){if(pf(this.input)&&$().get("IS_NODE")){const e=mL();this.input=e.readFileSync(this.input.substr(7))}return new cf(this.input,this.options)}}class hf extends lf{constructor(e,t={}){super();this.url=e,this.fileOptions=t}async iterator(){return pf(this.url)?new uf(this.url,this.fileOptions).iterator():XN(this.url,this.fileOptions)}}function JN(e,t={}){return new af(new hf(e),t)}function ZN(e){const t=Ou(e);return Ns(async()=>t)}function QN(e){return Ns(async()=>{const t=await e();return Ou(()=>t.next())})}async function eC(e,t){return Ww.create(e,t)}async function tC(e){return $w.create(e)}const df="2.3.0";const Bw={};Re(Bw,{CSVDataset:()=>af,Dataset:()=>Bi,FileDataSource:()=>uf,TextLineDataset:()=>nf,URLDataSource:()=>hf,array:()=>GN,csv:()=>JN,func:()=>ZN,generator:()=>QN,microphone:()=>tC,version_data:()=>df,webcam:()=>eC,zip:()=>HN});function H(e,t){Array.isArray(e)||(e=[e]),e.forEach(s=>{s!=null&&E.assert(s.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the CPU backend.`)})}function _u(e,t,s,n,i,r){const o=i.strideHeight,a=i.strideWidth,l=i.dilationHeight,c=i.dilationWidth,p=i.effectiveFilterHeight,u=i.effectiveFilterWidth,h=i.padInfo.top,d=i.padInfo.left,m=r==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,f=le(i.outShape,s),y=f.values,b=i.outShape[1]*i.outShape[2]*i.outShape[3],S=i.outShape[2]*i.outShape[3],x=i.outShape[3];for(let I=0;Iee?ee=$e:r==="avg"&&(Q+=$e,ie++)}if(isNaN(ee))break}const re=V+Y*x+R;y[re]=r==="avg"?Q/ie:ee}}}return f}function mf(e,t,s,n,i=!1,r=!1){const o=le(n.outShape,"int32"),a=n.strideHeight,l=n.strideWidth,c=n.dilationHeight,p=n.dilationWidth,u=n.effectiveFilterHeight,h=n.effectiveFilterWidth,d=n.padInfo.top,m=n.padInfo.left,f=le(t,s,e);for(let y=0;yM&&(M=q,i?B=r?((y*n.inHeight+V)*n.inWidth+G)*n.inChannels+b:(V*n.inWidth+G)*n.inChannels+b:B=Y*h+Z)}}o.set(B,y,S,k,b)}}return o}const sC=nl(il());const Rz=St.nonMaxSuppressionV3Impl,Oz=St.split,Ez=St.tile,kz=St.topkImpl,_z=St.whereImpl;function Pw(e,t,s,n){if(s==="linear")return e.linear(t);if(s==="relu")return e.relu(t);if(s==="elu")return e.elu(t);if(s==="relu6")return e.relu6(t);if(s==="prelu")return e.prelu(t,n);throw new Error(`Activation ${s} has not been implemented for the CPU backend.`)}class jw extends Jp{constructor(){super();this.blockSize=48,this.firstUse=!0,this.data=new Xp(this,os())}write(e,t,s){this.firstUse&&(this.firstUse=!1,$().get("IS_NODE")&&U.warn(` +============================ +Hi there 👋. Looks like you are running TensorFlow.js in Node.js. To speed things up dramatically, install our node backend, which binds to TensorFlow C++, by running npm i @tensorflow/tfjs-node, or npm i @tensorflow/tfjs-node-gpu if you have CUDA. Then call require('@tensorflow/tfjs-node'); (-gpu suffix for CUDA) at the start of your program. Visit https://github.com/tensorflow/tfjs-node for more details. +============================`));const n={};return this.data.set(n,{values:e,dtype:s}),n}move(e,t,s,n){this.data.set(e,{values:t,dtype:n})}numDataIds(){return this.data.numDataIds()}async read(e){return this.readSync(e)}readSync(e){const{dtype:t,complexTensors:s}=this.data.get(e);if(t==="complex64"){const n=this.readSync(s.real.dataId),i=this.readSync(s.imag.dataId);return U.mergeRealAndImagArrays(n,i)}return this.data.get(e).values}bufferSync(e){const t=this.readSync(e.dataId);let s=t;if(e.dtype==="string")try{s=t.map(n=>E.decodeString(n))}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return le(e.shape,e.dtype,s)}makeOutput(e,t,s){const n=this.write(e,t,s);return os().makeTensorFromDataId(n,t,s,this)}disposeData(e){if(this.data.has(e)){const{complexTensors:t}=this.data.get(e);t!=null&&(t.real.dispose(),t.imag.dispose()),this.data.delete(e)}}async time(e){const t=E.now();e();const s=E.now()-t;return{kernelMs:s}}memory(){return{unreliable:!0,reasons:["The reported memory is an upper bound. Due to automatic garbage collection, the true allocated memory may be less."]}}complex(e,t){const s=this.makeOutput(null,e.shape,"complex64"),n=this.data.get(s.dataId);return n.complexTensors={real:os().keep(e.clone()),imag:os().keep(t.clone())},s}real(e){const t=this.data.get(e.dataId);return t.complexTensors.real.clone()}imag(e){const t=this.data.get(e.dataId);return t.complexTensors.imag.clone()}slice(e,t,s){H(e,"slice");const n=Jn.isSliceContinous(e.shape,t,s);if(n){const o=Jn.computeFlatOffset(t,e.strides),a=E.sizeFromShape(s),l=this.readSync(e.dataId);return ze(l.subarray(o,o+a),s,e.dtype)}const i=le(s,e.dtype),r=this.bufferSync(e);for(let o=0;oc+t[p]);i.values[o]=r.get(...l)}return i.toTensor()}stridedSlice(e,t,s,n){H(e,"stridedSlice");const i=Jn.computeOutShape(t,s,n);if(i.some(a=>a===0))return ze([],i);const r=le(i,e.dtype),o=this.bufferSync(e);for(let a=0;ao[a]=e.shape[a]-1-o[a]),s.set(n.get(...o),...r)}return s.toTensor()}concat(e,t){if(e[0].dtype==="complex64"){const o=e.map(l=>$t(l)),a=e.map(l=>Ht(l));return Ze(this.concat(o,t),this.concat(a,t))}const s=e.map(o=>{const a=E.sizeFromShape(o.shape.slice(t));return o.as2D(-1,a)}),n=U.computeOutShape(s.map(o=>o.shape),1),i=le(n,e[0].dtype).values;if(s[0].shape[0]===1){let o=0;s.forEach(a=>{i.set(this.readSync(a.dataId),o),o+=a.size})}else{let o=0;s.forEach(a=>{const l=this.readSync(a.dataId);let c=0;for(let p=0;po.shape),t);return ze(i,r,e[0].dtype)}neg(e){return H(e,"neg"),this.multiply(j(-1),e)}add(e,t){return e.dtype==="complex64"||t.dtype==="complex64"?this.broadcastedBinaryComplexOp(e.cast("complex64"),t.cast("complex64"),(s,n,i,r)=>({real:s+i,imag:n+r})):this.broadcastedBinaryOp(e,t,wt(e.dtype,t.dtype),(s,n)=>s+n)}addN(e){H(e,"addN");const t=e.map(i=>this.readSync(i.dataId)),s=le(e[0].shape,e[0].dtype),n=s.values;for(let i=0;i({real:s-i,imag:n-r})):this.broadcastedBinaryOp(e,t,wt(e.dtype,t.dtype),(s,n)=>s-n)}pow(e,t){return H([e,t],"pow"),this.broadcastedBinaryOp(e,t,e.dtype,(s,n)=>Math.pow(s,n))}batchMatMul(e,t,s,n){H([e,t],"matMul");const i=s?e.shape[1]:e.shape[2],r=s?e.shape[2]:e.shape[1],o=n?t.shape[1]:t.shape[2],a=e.shape[0],l=this.readSync(e.dataId),c=this.readSync(t.dataId),[p,u,h]=s?[e.strides[0],1,e.strides[1]]:[e.strides[0],e.strides[1],1],[d,m,f]=n?[1,t.strides[1],t.strides[0]]:[t.strides[1],1,t.strides[0]],y=r*o,b=le([a,r,o],e.dtype),S=b.values,x=this.blockSize;for(let I=0;I({real:s*i-n*r,imag:s*r+n*i})):this.broadcastedBinaryOp(e,t,wt(e.dtype,t.dtype),(s,n)=>s*n)}floorDiv(e,t){H([e,t],"floorDiv");const s=(i,r)=>Math.floor(i/r),n="int32";return this.broadcastedBinaryOp(e,t,n,s)}sum(e,t){H(e,"sum"),U.assertAxesAreInnerMostDims("sum",t,e.rank);const[s,n]=U.computeOutAndReduceShapes(e.shape,t),i=wt(e.dtype,"int32"),r=Ie(s,i),o=E.sizeFromShape(n),a=this.readSync(r.dataId),l=this.readSync(e.dataId);for(let c=0;cu&&(u=m,h=d)}a[c]=h}return r}cumsum(e,t,s,n){if(H(e,"cumsum"),t!==e.rank-1)throw new Error(`backend.cumsum in CPU expects an inner-most axis=${e.rank-1} but got axis=${t}`);const i=wt(e.dtype,"int32"),r=Ie(e.shape,i),o=this.readSync(r.dataId),a=this.readSync(e.dataId),l=e.shape[e.rank-1],c=n?(p,u)=>p+l-u-1:(p,u)=>p+u;for(let p=0;ps===n?1:0)}notEqual(e,t){return H([e,t],"notEqual"),this.broadcastedBinaryOp(e,t,"bool",(s,n)=>s!==n?1:0)}less(e,t){return H([e,t],"less"),this.broadcastedBinaryOp(e,t,"bool",(s,n)=>ss<=n?1:0)}greater(e,t){return H([e,t],"greater"),this.broadcastedBinaryOp(e,t,"bool",(s,n)=>s>n?1:0)}greaterEqual(e,t){return H([e,t],"greaterEqual"),this.broadcastedBinaryOp(e,t,"bool",(s,n)=>s>=n?1:0)}logicalNot(e){H(e,"logicalNot");const t=this.readSync(e.dataId),s=new Uint8Array(t.length);for(let n=0;ns&&n)}logicalOr(e,t){return H([e,t],"logicalOr"),this.broadcastedBinaryOp(e,t,"bool",(s,n)=>s||n)}select(e,t,s){H([e,t,s],"select");const n=this.readSync(e.dataId),i=this.readSync(t.dataId),r=this.readSync(s.dataId),o=Ie(t.shape,wt(t.dtype,s.dtype)),a=this.readSync(o.dataId);let l=0;const c=e.rank===0||e.rank>1||t.rank===1?1:E.sizeFromShape(t.shape.slice(1));for(let p=0;pMath.min(s,n))}mod(e,t){return H([e,t],"mod"),this.broadcastedBinaryOp(e,t,e.dtype,(s,n)=>{const i=s%n;return s<0&&n<0||s>=0&&n>=0?i:(i+n)%n})}maximum(e,t){return H([e,t],"maximum"),this.broadcastedBinaryOp(e,t,e.dtype,(s,n)=>Math.max(s,n))}all(e,t){H(e,"all"),U.assertAxesAreInnerMostDims("all",t,e.rank);const[s,n]=U.computeOutAndReduceShapes(e.shape,t),i=Ie(s,e.dtype),r=E.sizeFromShape(n),o=this.readSync(i.dataId),a=this.readSync(e.dataId);for(let l=0;l{const i=s-n;return i*i})}ceil(e){H(e,"ceil");const t=this.readSync(e.dataId),s=new Float32Array(t.length);for(let n=0;n0?s[n]=1:s[n]=0;return this.makeOutput(s,e.shape,"float32")}isNaN(e){H(e,"x");const t=this.readSync(e.dataId),s=new Uint8Array(t.length);for(let n=0;n.5?s[n]=Math.ceil(t[n]):i%2===0?s[n]=i:s[n]=i+1}return this.makeOutput(s,e.shape,"float32")}exp(e){H(e,"exp");const t=this.readSync(e.dataId),s=new Float32Array(t.length);for(let n=0;ns<0?n*s:s)}elu(e){H(e,"elu");const t=new Float32Array(e.size),s=this.readSync(e.dataId);for(let n=0;n=0?t[n]=i:t[n]=Math.exp(i)-1}return this.makeOutput(t,e.shape,"float32")}eluDer(e,t){H([e,t],"eluDer");const s=new Float32Array(t.size),n=this.readSync(t.dataId),i=this.readSync(e.dataId);for(let r=0;r=1?s[r]=i[r]:s[r]=i[r]*(o+1)}return this.makeOutput(s,t.shape,"float32")}selu(e){H(e,"selu");const t=U.SELU_SCALEALPHA,s=U.SELU_SCALE,n=new Float32Array(e.size),i=this.readSync(e.dataId);for(let r=0;r=0?n[r]=s*o:n[r]=t*(Math.exp(o)-1)}return this.makeOutput(n,e.shape,"float32")}clip(e,t,s){H(e,"clip");const n=new Float32Array(e.size),i=this.readSync(e.dataId);for(let r=0;rs?s:o-s,a=i[r]Math.atan2(s,n))}sinh(e){H(e,"sinh");const t=new Float32Array(e.size),s=this.readSync(e.dataId);for(let n=0;n0?1:t}return this.makeOutput(s,e.shape,"float32")}fusedConv2d({input:e,filter:t,convInfo:s,bias:n,activation:i,preluActivationWeights:r}){let o=this.conv2d(e,t,s);return n&&(o=this.add(o,n)),i&&(o=Pw(this,o,i,r)),o}conv2d(e,t,s){H([e,t],"conv2d");const n=s.filterHeight,i=s.filterWidth,r=s.dilationHeight,o=s.dilationWidth,a=s.padInfo.left,l=s.padInfo.top,c=s.dataFormat==="channelsLast",p=le(s.outShape,e.dtype),u=e.strides[0],h=c?e.strides[1]:e.strides[2],d=c?e.strides[2]:1,m=c?1:e.strides[1],f=p.strides[0],y=c?p.strides[1]:p.strides[2],b=c?p.strides[2]:1,S=c?1:p.strides[1],x=this.readSync(e.dataId),I=this.readSync(t.dataId),A=p.values;for(let k=0;k=s.inHeight)continue;const G=V*t.strides[0],Z=R+Y*h;for(let q=0;q=s.inWidth)continue;const de=G+ie*t.strides[1],pe=Z+re*d;let me=de;for(let we=0;we=s.inDepth)continue;const D=k*t.strides[0],F=b+R*e.strides[1];for(let M=0;M=s.inHeight)continue;const Z=D+Y*t.strides[1],q=F+G*e.strides[2];for(let ee=0;ee=s.inWidth)continue;const pe=Z+re*t.strides[2],me=q+de*s.inChannels;let we=pe;for(let $e=0;$e=s.inHeight)continue;const k=I*t.strides[0],R=f+A*e.strides[1];for(let D=0;D=s.inWidth)continue;const Y=k+B*t.strides[1],G=R+V*s.inChannels;let Z=F,q=Y;for(let ee=0;eea[0]+e.shape[l]+a[1]),i=t.map(a=>a[0]),r=this.bufferSync(e),o=le(n,e.dtype);s!==0&&o.values.fill(s);for(let a=0;ap+i[u]);o.set(r.get(...l),...c)}return o.toTensor()}gather(e,t,s){H([e,t],"gather");const n=e.shape.slice(),i=this.readSync(t.dataId);n[s]=i.length;const r=le(n,e.dtype),o=this.bufferSync(e);for(let a=0;ac*p),i=U.getReshaped(e.shape,t,n),r=U.getPermuted(i.length,t.length),o=U.getReshapedPermuted(e.shape,t,n),a=U.getSliceBeginCoords(s,t.length),l=U.getSliceSize(o,s,t.length);return se(e.reshape(i),r).reshape(o).slice(a,l)}spaceToBatchND(e,t,s){H([e],"spaceToBatchND");const n=t.reduce((p,u)=>p*u),i=[[0,0]];i.push(...s);for(let p=1+t.length;p=n.outHeight||Math.floor(D)!==D)continue;for(let F=0;F=n.outWidth||Math.floor(M)!==M)continue;const B=p*u-1-r.get(y,D,M,b),V=R*u+F,Y=B===V?1:0;if(Y===0)continue;const G=f.get(y,D,M,b);k+=G*Y}}m.set(k,y,S,x,b)}return m.toTensor()}avgPoolBackprop(e,t,s){H([e,t],"avgPoolBackprop");const n=s.strideHeight,i=s.strideWidth,r=s.filterHeight,o=s.filterWidth,a=s.dilationHeight,l=s.dilationWidth,c=s.effectiveFilterHeight,p=s.effectiveFilterWidth,u=p-1-s.padInfo.left,h=c-1-s.padInfo.top,d=le(t.shape,"float32"),m=1/(r*o),f=this.bufferSync(e);for(let y=0;y=s.outHeight||Math.floor(D)!==D)continue;for(let F=0;F=s.outWidth||Math.floor(M)!==M)continue;const B=f.get(y,D,M,b);k+=B}}d.set(k*m,y,S,x,b)}return d.toTensor()}pool3d(e,t,s){H(e,"pool3d");const n=t.strideDepth,i=t.strideHeight,r=t.strideWidth,o=t.dilationDepth,a=t.dilationHeight,l=t.dilationWidth,c=t.effectiveFilterDepth,p=t.effectiveFilterHeight,u=t.effectiveFilterWidth,h=t.padInfo.front,d=t.padInfo.top,m=t.padInfo.left,f=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,y=this.readSync(e.dataId),b=le(t.outShape,e.dtype),S=b.values,x=t.outShape[1]*t.outShape[2]*t.outShape[3]*t.outShape[4],I=t.outShape[2]*t.outShape[3]*t.outShape[4],A=t.outShape[3]*t.outShape[4],k=t.outShape[4];for(let R=0;RPe?Pe=tn:s==="avg"&&(ct+=tn,Jt++),isNaN(Pe))break}if(isNaN(Pe))break}if(isNaN(Pe))break}const Rs=$e+M;S[Rs]=s==="avg"?ct/Jt:Pe}}}}return b.toTensor()}avgPool3d(e,t){return H(e,"avgPool3d"),this.pool3d(e,t,"avg").toFloat()}avgPool3dBackprop(e,t,s){H([e,t],"avgPool3dBackprop");const n=s.strideDepth,i=s.strideHeight,r=s.strideWidth,o=s.filterDepth,a=s.filterHeight,l=s.filterWidth,c=s.dilationDepth,p=s.dilationHeight,u=s.dilationWidth,h=s.effectiveFilterDepth,d=s.effectiveFilterHeight,m=s.effectiveFilterWidth,f=h-1-s.padInfo.front,y=m-1-s.padInfo.left,b=d-1-s.padInfo.top,S=le(t.shape,"float32"),x=1/(o*a*l),I=this.bufferSync(e);for(let A=0;A=s.outDepth||Math.floor(Z)!==Z)continue;for(let q=0;q=s.outHeight||Math.floor(ee)!==ee)continue;for(let Q=0;Q=s.outWidth||Math.floor(ie)!==ie)continue;const re=I.get(A,Z,ee,ie,k);Y+=re}}}S.set(Y*x,A,R,D,F,k)}return S.toTensor()}maxPool3d(e,t){return H(e,"maxPool3d"),this.pool3d(e,t,"max").toFloat()}maxPool3dPositions(e,t){const s=le(t.outShape,"int32"),n=t.strideDepth,i=t.strideHeight,r=t.strideWidth,o=t.dilationDepth,a=t.dilationHeight,l=t.dilationWidth,c=t.effectiveFilterDepth,p=t.effectiveFilterHeight,u=t.effectiveFilterWidth,h=t.padInfo.front,d=t.padInfo.top,m=t.padInfo.left,f=this.bufferSync(e);for(let y=0;y=G&&(G=pe,Z=ee*p*u+ie*p+de)}}}s.set(Z,y,S,k,M,b)}}}return s.toTensor()}maxPool3dBackprop(e,t,s,n){H([t,s],"maxPool3dBackprop");const i=this.maxPool3dPositions(t,n),r=n.strideDepth,o=n.strideHeight,a=n.strideWidth,l=n.dilationDepth,c=n.dilationHeight,p=n.dilationWidth,u=n.effectiveFilterDepth,h=n.effectiveFilterHeight,d=n.effectiveFilterWidth,m=u-1-n.padInfo.front,f=d-1-n.padInfo.left,y=h-1-n.padInfo.top,b=le(t.shape,"float32"),S=this.bufferSync(i),x=this.bufferSync(e);for(let I=0;I=n.outDepth||Math.floor(G)!==G)continue;for(let Z=0;Z=n.outHeight||Math.floor(q)!==q)continue;for(let ee=0;ee=n.outWidth||Math.floor(Q)!==Q)continue;const ie=u*h*d-1-S.get(I,G,q,Q,A),re=Y*h*d+Z*d+ee,de=ie===re?1:0;if(de===0)continue;const pe=x.get(I,G,q,Q,A);V+=pe*de}}}b.set(V,I,k,R,D,A)}return b.toTensor()}cast(e,t){return U.castTensor(e,t,this)}reshape(e,t){return U.reshapeTensor(e,t)}avgPool(e,t){H(e,"avgPool"),H(e,"maxPool");const s=this.readSync(e.dataId);return _u(s,e.shape,e.dtype,e.strides,t,"avg").toTensor().toFloat()}resizeBilinear(e,t,s,n){H(e,"resizeBilinear");const[i,r,o,a]=e.shape,l=this.readSync(e.dataId),c=new Float32Array(E.sizeFromShape([i,t,s,a])),p=[n&&t>1?r-1:r,n&&s>1?o-1:o],u=[n&&t>1?t-1:t,n&&s>1?s-1:s];let h=0;const d=p[0]/u[0],m=p[1]/u[1];for(let f=0;f1?i-1:i,s&&l>1?r-1:r],u=[s&&a>1?a-1:a,s&&l>1?l-1:l],h=p[0]/u[0],d=p[1]/u[1],m=this.readSync(e.dataId);let f=0;for(let y=0;y1?r-1:r,n&&s>1?o-1:o],u=[n&&t>1?t-1:t,n&&s>1?s-1:s],h=p[0]/u[0],d=p[1]/u[1];let m=0;for(let f=0;f1?i-1:i,s&&l>1?r-1:r],h=[s&&a>1?a-1:a,s&&l>1?l-1:l],d=u[0]/h[0],m=u[1]/h[1],f=1/d,y=1/m,b=Math.ceil(f)*2+2,S=Math.ceil(y)*2+2;for(let x=0;x=a)continue;const ee=I+q*e.strides[1],Q=q*d,ie=Math.min(i-1,s?Math.round(Q):Math.floor(Q));if(A!==ie)continue;for(let re=0;re=l)continue;const pe=ee+de*e.strides[2],me=de*m,we=Math.min(r-1,s?Math.round(me):Math.floor(me));F===we&&(G+=p[pe+Y])}}c[M+Y]=G}}}}return cs(c,t.shape,t.dtype)}batchNorm(e,t,s,n,i,r){H([e,t,s,i,n],"batchNorm");const o=this.readSync(e.dataId),a=this.readSync(t.dataId),l=this.readSync(s.dataId),c=i?this.readSync(i.dataId):new Float32Array([1]),p=n?this.readSync(n.dataId):new Float32Array([0]),u=new Float32Array(o.length),h=p.length,d=c.length,m=l.length,f=a.length;let y=0,b=0,S=0,x=0;for(let I=0;I=h&&(y=0),b>=f&&(b=0),S>=d&&(S=0),x>=m&&(x=0);return cs(u,e.shape)}localResponseNormalization4D(e,t,s,n,i){H(e,"localResponseNormalization4D");const r=e.shape[3],o=r-1,a=this.readSync(e.dataId),l=e.size,c=new Float32Array(l);function p(u){const h=u%r;let d=u-h+Math.max(0,h-t);const m=u-h+Math.min(h+t,o);let f=0;for(;d<=m;d++){const y=a[d];f+=y*y}return f}for(let u=0;u=0&&r[o]`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${s}`),E.assert(t>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${t}`);const n=e.shape[0],i=e.shape[1],r=e.shape[2],o=e.shape[3],a=i*t,l=r*t,c=o/(t*t),p=this.readSync(e.dataId),u=new Float32Array(n*a*l*c);let h=0;for(let d=0;df[x]=0);const y=u.locToIndex(f),b=m.slice(-t.rank);c.forEach(x=>b[x]=0);const S=h.locToIndex(b);p[d]=n(o[y],a[S])}}return r.toTensor()}broadcastedBinaryComplexOp(e,t,s){const n=U.assertAndGetBroadcastShape(e.shape,t.shape),i=le(n,"float32"),r=le(n,"float32"),o=this.readSync(e.dataId),a=this.readSync(t.dataId),l=U.getBroadcastDims(e.shape,n),c=U.getBroadcastDims(t.shape,n),p=i.values,u=r.values;if(l.length+c.length===0)for(let h=0;hy[A]=0);const b=h.locToIndex(y),S=f.slice(-t.rank);c.forEach(A=>S[A]=0);const x=d.locToIndex(S),I=s(o[b*2],o[b*2+1],a[x*2],a[x*2+1]);p[m]=I.real,u[m]=I.imag}}return this.complex(i.toTensor(),r.toTensor())}split(e,t,s){return Oz(e,t,s)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}cropAndResize(e,t,s,n,i,r){const[o,a,l,c]=e.shape,p=t.shape[0],[u,h]=n,d=le([p,u,h,c],"float32"),m=this.readSync(t.dataId),f=this.readSync(s.dataId),y=this.readSync(e.dataId),b=e.strides,S=d.strides;for(let x=0;x=o)continue;const M=u>1?(R-A)*(a-1)/(u-1):0,B=h>1?(D-k)*(l-1)/(h-1):0;for(let V=0;V1?A*(a-1)+V*M:.5*(A+R)*(a-1);if(Y<0||Y>a-1){for(let G=0;G1?k*(l-1)+ee*B:.5*(k+D)*(l-1);if(Q<0||Q>l-1){for(let pe=0;pe1?k*(l-1)+G*B:.5*(k+D)*(l-1);if(Z<0||Z>l-1){for(let Q=0;Q=e.size/o)throw new Error(`Invalid indices: ${h} does not index into ${e.shape}`);for(let m=0;m=n/i)throw new Error(`Invalid indices: ${f} does not index into ${s}`);for(let b=0;ba&&(a=c)}i[r]=a}return i}function Ma(e,t,s,n,i){const r=t.length,o=E.sizeFromShape(t),a=E.computeStrides(t),l=E.computeStrides(i),c=E.getTypedArrayFromDType(s,E.sizeFromShape(i));for(let p=0;pff,transposeImpl:()=>Ma});const Gw="2.3.0";dp("cpu",()=>new jw(),1);const nC={kernelName:_r,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:s})=>{const{x:n,filter:i}=e,{strides:r,pad:o,dilations:a}=s,l=t,c=E.toNestedArray(n.shape,l.data.get(n.dataId).values),p=E.toNestedArray(i.shape,l.data.get(i.dataId).values),{batchSize:u,inHeight:h,inWidth:d,inChannels:m,outHeight:f,outWidth:y,padInfo:b,strideHeight:S,strideWidth:x,filterHeight:I,filterWidth:A,dilationHeight:k,dilationWidth:R,outShape:D}=U.computeDilation2DInfo(n.shape,i.shape,r,o,"NHWC",a),F=E.makeZerosNestedTypedArray(D,n.dtype);for(let B=0;B=0&&ie=0&&deee&&(ee=pe)}}}F[B][V][G][q]=ee}}}const M=l.write(E.toTypedArray(F,n.dtype),D,n.dtype);return{dataId:M,shape:D,dtype:n.dtype}}};const iC={kernelName:ea,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:s})=>{const{x:n,filter:i,dy:r}=e,{strides:o,pad:a,dilations:l}=s,c=t,p=E.toNestedArray(n.shape,c.data.get(n.dataId).values),u=E.toNestedArray(i.shape,c.data.get(i.dataId).values),{batchSize:h,inHeight:d,inWidth:m,inChannels:f,outHeight:y,outWidth:b,padInfo:S,strideHeight:x,strideWidth:I,filterHeight:A,filterWidth:k,dilationHeight:R,dilationWidth:D,outShape:F}=U.computeDilation2DInfo(n.shape,i.shape,o,a,"NHWC",l);E.assert(r.rank===F.length,()=>`Error in ${ea}, dy must have the same rank as output ${F.length}, but got ${r.rank}`);const M=E.toNestedArray(F,c.data.get(r.dataId).values),B=E.makeZerosNestedTypedArray(i.shape,i.dtype);for(let Y=0;Y=0&&me=0&&$eie&&(ie=Pe,re=pe,de=we)}}}B[re][de][Q]+=M[Y][G][q][Q]}}}const V=c.write(E.toTypedArray(B,n.dtype),i.shape,i.dtype);return{dataId:V,shape:i.shape,dtype:i.dtype}}};const rC={kernelName:Qo,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:s})=>{const{x:n,filter:i,dy:r}=e,{strides:o,pad:a,dilations:l}=s,c=t,p=E.toNestedArray(n.shape,c.data.get(n.dataId).values),u=E.toNestedArray(i.shape,c.data.get(i.dataId).values),{batchSize:h,inHeight:d,inWidth:m,inChannels:f,outHeight:y,outWidth:b,padInfo:S,strideHeight:x,strideWidth:I,filterHeight:A,filterWidth:k,dilationHeight:R,dilationWidth:D,outShape:F}=U.computeDilation2DInfo(n.shape,i.shape,o,a,"NHWC",l);E.assert(r.rank===F.length,()=>`Error in ${Qo}, dy must have the same rank as output ${F.length}, but got ${r.rank}`);const M=E.toNestedArray(F,c.data.get(r.dataId).values),B=E.makeZerosNestedTypedArray(n.shape,n.dtype);for(let Y=0;Y=0&&me=0&&$eie&&(ie=Pe,re=me,de=$e)}}}B[Y][re][de][Q]+=M[Y][G][q][Q]}}}const V=c.write(E.toTypedArray(B,n.dtype),n.shape,n.dtype);return{dataId:V,shape:n.shape,dtype:n.dtype}}};function gf(e,t){return{kernelName:e,backendName:"cpu",kernelFunc:({inputs:s,backend:n})=>{const{a:i,b:r}=s,o=n;H([i,r],e);const a=o.data.get(i.dataId).values,l=o.data.get(r.dataId).values,[c,p]=t(i.shape,r.shape,a,l,i.dtype),u=o.write(c,p,i.dtype);return{dataId:u,shape:p,dtype:i.dtype}}}}function yf(e){return(t,s,n,i,r)=>{const o=U.assertAndGetBroadcastShape(t,s),a=o.length,l=E.computeStrides(o),c=E.sizeFromShape(o),p=E.getTypedArrayFromDType(r,c),u=t.length,h=s.length,d=E.computeStrides(t),m=E.computeStrides(s),f=U.getBroadcastDims(t,o),y=U.getBroadcastDims(s,o);if(f.length+y.length===0)for(let b=0;bx[R]=0);const I=E.locToIndex(x,u,d),A=S.slice(-h);y.forEach(R=>A[R]=0);const k=E.locToIndex(A,h,m);p[b]=e(n[I],i[k])}return[p,o]}}const oC=yf((e,t)=>e/t);const aC=gf(ui,oC);const lC={kernelName:Dr,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:s})=>{const{image:n}=e,i=s,r=E.getTypedArrayFromDType(n.dtype,E.sizeFromShape(n.shape)),[o,a,l,c]=n.shape,p=i.data.get(n.dataId).values;for(let h=0;h=0&&A{const{x:n}=e,{reductionIndices:i,keepDims:r}=t,o=s;let a=n.shape;const l=a.length,c=E.parseAxisParam(i,a);let p=c;const u=U.getAxesPermutation(p,l);let h=o.data.get(n.dataId).values;if(u!=null){const x=new Array(l);for(let I=0;I{const{x:n}=e,{filterSize:i,strides:r,pad:o,includeBatchInIndex:a}=t,l=s;H(n,"MaxPoolWithArgmax");const c=l.data.get(n.dataId).values,p=U.computePool2DInfo(n.shape,i,r,[1,1],o),[u,h]=pC(c,n.shape,n.dtype,a,p),d=l.write(u,p.outShape,n.dtype),m=l.write(h,p.outShape,n.dtype);return[{dataId:d,shape:p.outShape,dtype:n.dtype},{dataId:m,shape:p.outShape,dtype:"int32"}]}};const Dz=St.nonMaxSuppressionV4Impl,hC={kernelName:Mr,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:s})=>{const{boxes:n,scores:i}=e,{maxOutputSize:r,iouThreshold:o,scoreThreshold:a,padToMaxOutputSize:l}=s,c=t;H(n,"NonMaxSuppressionPadded");const p=c.data.get(n.dataId).values,u=c.data.get(i.dataId).values,{selectedIndices:h,validOutputs:d}=Dz(p,u,r,o,a,l);return[h,d]}};const Fz=St.nonMaxSuppressionV5Impl,dC={kernelName:Ur,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:s})=>{const{boxes:n,scores:i}=e,{maxOutputSize:r,iouThreshold:o,scoreThreshold:a,softNmsSigma:l}=s,c=t;H(n,"NonMaxSuppressionWithScore");const p=c.data.get(n.dataId).values,u=c.data.get(i.dataId).values,h=r,d=o,m=a,f=l,{selectedIndices:y,selectedScores:b}=Fz(p,u,h,d,m,f);return[y,b]}};const mC={kernelName:Wr,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:s})=>{const{image:n}=e,{radians:i,fillValue:r,center:o}=t,a=s,l=E.getTypedArrayFromDType(n.dtype,E.sizeFromShape(n.shape)),[c,p,u,h]=n.shape,[d,m]=U.getImageCenter(o,p,u),f=255,y=Math.sin(i),b=Math.cos(i),S=a.data.get(n.dataId).values;for(let I=0;I=0&&G=0&&Z{const{x:s}=e,n=t;H(s,"square");const i=n.data.get(s.dataId).values,r=new Float32Array(i.length);for(let a=0;a{const s=e-t;return s*s}),gC=gf(di,Mz);const yC={kernelName:mi,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:s})=>{const{x:n}=e,{perm:i}=t,r=s;H(n,"transpose");const o=n.shape.length,a=new Array(o);for(let u=0;u{s.preventDefault(),delete ko[e]},!1),e===1?t.getContext("webgl",Hw)||t.getContext("experimental-webgl",Hw):t.getContext("webgl2",Hw)}var wr;(function(e){e[e.DENSE=0]="DENSE",e[e.SHARED_BATCH=1]="SHARED_BATCH"})(wr||(wr={}));var ns;(function(e){e[e.RENDER=0]="RENDER",e[e.UPLOAD=1]="UPLOAD",e[e.PIXELS=2]="PIXELS",e[e.DOWNLOAD=3]="DOWNLOAD"})(ns||(ns={}));var Kt;(function(e){e[e.UNPACKED_FLOAT16=0]="UNPACKED_FLOAT16",e[e.UNPACKED_FLOAT32=1]="UNPACKED_FLOAT32",e[e.PACKED_4X1_UNSIGNED_BYTE=2]="PACKED_4X1_UNSIGNED_BYTE",e[e.PACKED_2X2_FLOAT32=3]="PACKED_2X2_FLOAT32",e[e.PACKED_2X2_FLOAT16=4]="PACKED_2X2_FLOAT16"})(Kt||(Kt={}));function _o(e,t){return[t,e]}function bC(e,t){return e*t}function xr(e){const t=E.sizeFromShape(e),s=Math.ceil(t/4);return E.sizeToSquarishShape(s)}function oi(e,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(e/2))]}function wC(e,t){const[s,n]=oi(e,t);return s*n*4}function Du(e,t){const s=e;let n,i,r,o,a,l,c,p,u,h;return $().getNumber("WEBGL_VERSION")===2?(n=s.R32F,i=s.R16F,r=s.RGBA16F,o=s.RGBA32F,a=s.RED,c=4,p=1,u=s.HALF_FLOAT,h=s.FLOAT):(n=e.RGBA,i=e.RGBA,r=e.RGBA,o=s.RGBA,a=e.RGBA,c=4,p=4,u=t!=null?t.HALF_FLOAT_OES:null,h=e.FLOAT),l=e.RGBA,{internalFormatFloat:n,internalFormatHalfFloat:i,internalFormatPackedHalfFloat:r,internalFormatPackedFloat:o,textureFormatFloat:a,downloadTextureFormat:l,downloadUnpackNumChannels:c,defaultNumChannels:p,textureTypeHalfFloat:u,textureTypeFloat:h}}function oe(e,t){const s=t();return $().getBool("DEBUG")&&zz(e),s}function zz(e){const t=e.getError();if(t!==e.NO_ERROR)throw new Error("WebGL Error: "+Bz(e,t))}const Pz=596e-10,jz=65504;function xC(e){return!!($().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||e===0||Pze.getExtension(t),'Extension "'+t+'" not supported on this browser.')}function LC(e,t){const s=Pi(e,()=>e.createShader(e.VERTEX_SHADER),"Unable to create vertex WebGLShader.");if(oe(e,()=>e.shaderSource(s,t)),oe(e,()=>e.compileShader(s)),e.getShaderParameter(s,e.COMPILE_STATUS)===!1)throw console.log(e.getShaderInfoLog(s)),new Error("Failed to compile vertex shader.");return s}function SC(e,t){const s=Pi(e,()=>e.createShader(e.FRAGMENT_SHADER),"Unable to create fragment WebGLShader.");if(oe(e,()=>e.shaderSource(s,t)),oe(e,()=>e.compileShader(s)),e.getShaderParameter(s,e.COMPILE_STATUS)===!1)throw Vz(t,e.getShaderInfoLog(s)),new Error("Failed to compile fragment shader.");return s}const Gz=/ERROR: [0-9]+:([0-9]+):/g;function Vz(e,t){const s=Gz.exec(t);if(s==null){console.log(`Couldn't parse line number in error: ${t}`),console.log(e);return}const n=+s[1],i=e.split(` +`),r=i.length.toString().length+2,o=i.map((u,h)=>E.rightPad((h+1).toString(),r)+u);let a=0;for(let u=0;ue.createProgram(),"Unable to create WebGLProgram.")}function TC(e,t){if(oe(e,()=>e.linkProgram(t)),e.getProgramParameter(t,e.LINK_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Failed to link vertex and fragment shaders.")}function bf(e,t){if(oe(e,()=>e.validateProgram(t)),e.getProgramParameter(t,e.VALIDATE_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Shader program validation failed.")}function IC(e,t){const s=Pi(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return oe(e,()=>e.bindBuffer(e.ARRAY_BUFFER,s)),oe(e,()=>e.bufferData(e.ARRAY_BUFFER,t,e.STATIC_DRAW)),s}function AC(e,t){const s=Pi(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return oe(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,s)),oe(e,()=>e.bufferData(e.ELEMENT_ARRAY_BUFFER,t,e.STATIC_DRAW)),s}function NC(e){return Pi(e,()=>e.createTexture(),"Unable to create WebGLTexture.")}function CC(e,t){const s=$().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(e<=0||t<=0){const n=`[${e}x${t}]`;throw new Error("Requested texture size "+n+" is invalid.")}if(e>s||t>s){const n=`[${e}x${t}]`,i=`[${s}x${s}]`;throw new Error("Requested texture size "+n+" greater than WebGL maximum on this browser / GPU "+i+".")}}function RC(e){return Pi(e,()=>e.createFramebuffer(),"Unable to create WebGLFramebuffer.")}function Yw(e,t,s,n,i,r,o){const a=e.getAttribLocation(t,s);return a===-1?!1:(oe(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),oe(e,()=>e.vertexAttribPointer(a,i,e.FLOAT,!1,r,o)),oe(e,()=>e.enableVertexAttribArray(a)),!0)}function qz(e,t,s){Hz(e,s),oe(e,()=>e.activeTexture(e.TEXTURE0+s)),oe(e,()=>e.bindTexture(e.TEXTURE_2D,t))}function OC(e,t,s){return Pi(e,()=>e.getUniformLocation(t,s),'uniform "'+s+'" not present in program.')}function EC(e,t,s){return e.getUniformLocation(t,s)}function kC(e,t,s,n){oe(e,()=>qz(e,t,n)),oe(e,()=>e.uniform1i(s,n))}function wf(e,t,s){oe(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,s)),oe(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0))}function Kw(e,t){oe(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,t)),oe(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,null,0))}function Mu(e){const t=e.checkFramebufferStatus(e.FRAMEBUFFER);if(t!==e.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+Yz(e,t))}function Yz(e,t){switch(t){case e.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_ATTACHMENT";case e.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT";case e.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:return"FRAMEBUFFER_INCOMPLETE_DIMENSIONS";case e.FRAMEBUFFER_UNSUPPORTED:return"FRAMEBUFFER_UNSUPPORTED";default:return`unknown error ${t}`}}function Pi(e,t,s){const n=oe(e,()=>t());if(n==null)throw new Error(s);return n}function Hz(e,t){const s=e.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,n=t+e.TEXTURE0;if(ns){const i=`[gl.TEXTURE0, gl.TEXTURE${s}]`;throw new Error(`textureUnit must be in ${i}.`)}}function Lr(e,t=2){return E.sizeFromShape(e.slice(0,e.length-t))}function Sr(e){if(e.length===0)throw Error("Cannot get rows and columns of an empty shape array.");return[e.length>1?e[e.length-2]:1,e[e.length-1]]}function xf(e){let t=[1,1,1];const s=e.length===0||e.length===1&&e[0]===1;return s||(t=[Lr(e),...Sr(e)]),t}function _C(e,t=!1){let s=$().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(t&&(s=s*2,e=e.map((i,r)=>r>=e.length-2?E.nearestLargerEven(e[r]):e[r]),e.length===1&&(e=[2,e[0]])),e.length!==2){const i=E.squeezeShape(e);e=i.newShape}let n=E.sizeFromShape(e);if(e.length<=1&&n<=s)return[1,n];if(e.length===2&&e[0]<=s&&e[1]<=s)return e;if(e.length===3&&e[0]*e[1]<=s&&e[2]<=s)return[e[0]*e[1],e[2]];if(e.length===3&&e[0]<=s&&e[1]*e[2]<=s)return[e[0],e[1]*e[2]];if(e.length===4&&e[0]*e[1]*e[2]<=s&&e[3]<=s)return[e[0]*e[1]*e[2],e[3]];if(e.length===4&&e[0]<=s&&e[1]*e[2]*e[3]<=s)return[e[0],e[1]*e[2]*e[3]];if(t){const i=Lr(e);let r=2,o=2;return e.length&&([r,o]=Sr(e)),n=i*(r/2)*(o/2),E.sizeToSquarishShape(n).map(a=>a*2)}return E.sizeToSquarishShape(n)}function Lf(e){return e%2===0}function vr(e,t){if(e=e.slice(-2),t=t.slice(-2),E.arraysEqual(e,t))return!0;if(!e.length||!t.length)return!0;if(e[0]===0||e[1]===0||t[0]===0||t[1]===0)return!0;if(e.length!==t.length){const s=e.slice(-1)[0],n=t.slice(-1)[0];if(s===n)return!0;if(Lf(s)&&Lf(n)&&(e[0]===1||t[0]===1))return!0}return e[1]===t[1]&&Lf(e[0])&&Lf(t[0])}let Xw,Jw;function DC(e){if(Xw==null){const t=Js(e);Xw=t.getParameter(t.MAX_TEXTURE_SIZE)}return Xw}function FC(e){if(Jw==null){const t=Js(e);Jw=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,Jw)}function MC(e){if(e===0)return 0;let t;const s=Js(e);return Zs(s,"EXT_disjoint_timer_query_webgl2")&&e===2?t=2:Zs(s,"EXT_disjoint_timer_query")?t=1:t=0,t}function Zs(e,t){const s=e.getExtension(t);return s!=null}function Zw(e){try{const t=Js(e);if(t!=null)return!0}catch(t){return!1}return!1}function UC(e){if(e===0)return!1;const t=Js(e);if(e===1){if(!Zs(t,"OES_texture_float"))return!1}else if(!Zs(t,"EXT_color_buffer_float"))return!1;const s=Qw(t);return s}function $C(e){if(e===0)return!1;const t=Js(e);if(e===1){if(!Zs(t,"OES_texture_float"))return!1;if(!Zs(t,"WEBGL_color_buffer_float"))return!1}else{if(Zs(t,"EXT_color_buffer_float"))return Qw(t);const n="EXT_color_buffer_half_float";if(Zs(t,n)){const i=t.getExtension(n);return Kz(t,i)}return!1}const s=Qw(t);return s}function Qw(e){const t=Du(e),s=e.createTexture();e.bindTexture(e.TEXTURE_2D,s);const n=1,i=1;e.texImage2D(e.TEXTURE_2D,0,t.internalFormatFloat,n,i,0,t.textureFormatFloat,t.textureTypeFloat,null);const r=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,r),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,s,0);const o=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(s),e.deleteFramebuffer(r),o}function Kz(e,t){const s=Du(e,t),n=e.createTexture();e.bindTexture(e.TEXTURE_2D,n);const i=1,r=1;e.texImage2D(e.TEXTURE_2D,0,s.internalFormatHalfFloat,i,r,0,s.textureFormatFloat,s.textureTypeHalfFloat,null);const o=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,o),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,n,0);const a=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(n),e.deleteFramebuffer(o),a}function WC(e){if(e!==2)return!1;const t=Js(e),s=t.fenceSync!=null;return s}const ve=$();ve.registerFlag("HAS_WEBGL",()=>ve.getNumber("WEBGL_VERSION")>0);ve.registerFlag("WEBGL_VERSION",()=>Zw(2)?2:Zw(1)?1:0);ve.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",()=>!1);ve.registerFlag("WEBGL_BUFFER_SUPPORTED",()=>ve.get("WEBGL_VERSION")===2);ve.registerFlag("WEBGL_CPU_FORWARD",()=>!0);ve.registerFlag("WEBGL_FORCE_F16_TEXTURES",()=>!1);ve.registerFlag("WEBGL_PACK",()=>ve.getBool("HAS_WEBGL"));ve.registerFlag("WEBGL_PACK_NORMALIZATION",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_CLIP",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_DEPTHWISECONV",()=>!1);ve.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_REDUCE",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_LAZILY_UNPACK",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_CONV_IM2COL",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_MAX_TEXTURE_SIZE",()=>DC(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",()=>FC(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",()=>{const e=ve.getNumber("WEBGL_VERSION");return e===0?0:MC(e)});ve.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",()=>ve.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!la.isMobile());ve.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",()=>UC(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",()=>ve.getBool("WEBGL_FORCE_F16_TEXTURES")?!1:ve.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"));ve.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",()=>$C(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_FENCE_API_ENABLED",()=>WC(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",()=>{const e=ve.getBool("WEBGL_RENDER_FLOAT32_ENABLED");return e?4:0});ve.registerFlag("WEBGL_DELETE_TEXTURE_THRESHOLD",()=>-1,e=>{if(e<0&&e!==-1)throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be -1 (indicating never delete) or at least 0, but got ${e}.`)});class zC{constructor(e,t){this.outputShape=[],this.outputShape=e,this.variableNames=t.map((i,r)=>`T${r}`);const s=[];this.variableNames.forEach(i=>{s.push(`float v${i} = get${i}AtOutCoords();`)});const n=this.variableNames.map(i=>`v${i}`).join(" + ");this.userCode=` + void main() { + ${s.join(` + `)} + + float result = ${n}; + setOutput(result); + } + `}}class BC{constructor(e,t){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.variableNames=t.map((i,r)=>`T${r}`);const s=[];this.variableNames.forEach(i=>{s.push(`vec4 v${i} = get${i}AtOutCoords();`)});const n=this.variableNames.map(i=>`v${i}`).join(" + ");this.userCode=` + void main() { + ${s.join(` + `)} + + vec4 result = ${n}; + setOutput(result); + } + `}}class PC{constructor(e,t,s){this.variableNames=["A"];const n=e.windowSize,i=e.batchSize,r=e.inSize,o=Math.ceil(r/n);s||this.variableNames.push("bestIndicesA"),this.outputShape=[i,o];const a=t==="max"?">":"<",l=s?"inOffset + i;":"round(getBestIndicesA(batch, inOffset + i));";this.userCode=` + void main() { + ivec2 coords = getOutputCoords(); + int batch = coords[0]; + int outIdx = coords[1]; + int inOffset = outIdx * ${n}; + + int bestIndex = inOffset; + float bestValue = getA(batch, bestIndex); + + for (int i = 0; i < ${n}; i++) { + int inIdx = ${l}; + float candidate = getA(batch, inIdx); + if (candidate ${a} bestValue) { + bestValue = candidate; + bestIndex = inIdx; + } + } + setOutput(float(bestIndex)); + } + `}}function ex(e,t){return["x","y","z","w","u","v"].slice(0,t).map(s=>`${e}.${s}`)}function Et(e,t){return t===1?[e]:ex(e,t)}function jC(e,t){if(e===1)return"rc";let s="";for(let n=0;n 0.0 || val < 0.0) ? false : val != 0.0; + } + + bvec4 isnan_custom(vec4 val) { + return bvec4(isnan_custom(val.x), + isnan_custom(val.y), isnan_custom(val.z), isnan_custom(val.w)); + } + + #define isnan(value) isnan_custom(value) + `,l="",c=` + #define round(value) newRound(value) + int newRound(float value) { + return int(floor(value + 0.5)); + } + + ivec4 newRound(vec4 value) { + return ivec4(floor(value + vec4(0.5))); + } + `):(e="",t="attribute",s="varying",n="varying",i="texture2D",r="gl_FragColor",o="",a=` + #define isnan(value) isnan_custom(value) + bool isnan_custom(float val) { + return (val > 0. || val < 1. || val == 0.) ? false : true; + } + bvec4 isnan_custom(vec4 val) { + return bvec4(isnan(val.x), isnan(val.y), isnan(val.z), isnan(val.w)); + } + `,l=` + uniform float INFINITY; + + bool isinf(float val) { + return abs(val) == INFINITY; + } + bvec4 isinf(vec4 val) { + return equal(abs(val), vec4(INFINITY)); + } + `,c=` + int round(float value) { + return int(floor(value + 0.5)); + } + + ivec4 round(vec4 value) { + return ivec4(floor(value + vec4(0.5))); + } + `),{version:e,attribute:t,varyingVs:s,varyingFs:n,texture2D:i,output:r,defineOutput:o,defineSpecialNaN:a,defineSpecialInf:l,defineRound:c}}function zn(e,t,s="index"){const n=E.computeStrides(t);return n.map((i,r)=>{const o=`int ${e[r]} = ${s} / ${i}`,a=r===n.length-1?`int ${e[r+1]} = ${s} - ${e[r]} * ${i}`:`index -= ${e[r]} * ${i}`;return`${o}; ${a};`}).join("")}function Ua(e){const t=E.computeStrides(e).map(s=>s.toString());return` + int getFlatIndex(ivec3 coords) { + return coords.x * ${t[0]} + coords.y * ${t[1]} + coords.z; + } +`}const Sf=` + const float FLOAT_MAX = 1.70141184e38; + const float FLOAT_MIN = 1.17549435e-38; + + lowp vec4 encode_float(highp float v) { + if (isnan(v)) { + return vec4(255, 255, 255, 255); + } + + highp float av = abs(v); + + if(av < FLOAT_MIN) { + return vec4(0.0, 0.0, 0.0, 0.0); + } else if(v > FLOAT_MAX) { + return vec4(0.0, 0.0, 128.0, 127.0) / 255.0; + } else if(v < -FLOAT_MAX) { + return vec4(0.0, 0.0, 128.0, 255.0) / 255.0; + } + + highp vec4 c = vec4(0,0,0,0); + + highp float e = floor(log2(av)); + highp float m = exp2(fract(log2(av))) - 1.0; + + c[2] = floor(128.0 * m); + m -= c[2] / 128.0; + c[1] = floor(32768.0 * m); + m -= c[1] / 32768.0; + c[0] = floor(8388608.0 * m); + + highp float ebias = e + 127.0; + c[3] = floor(ebias / 2.0); + ebias -= c[3] * 2.0; + c[2] += floor(ebias) * 128.0; + + c[3] += 128.0 * step(0.0, -v); + + return c / 255.0; + } +`;const{getBroadcastDims:VC}=U;function GC(e,t,s,n){const i=[];e.forEach(m=>{const f=E.sizeFromShape(m.shapeInfo.logicalShape);m.shapeInfo.isUniform?i.push(`uniform float ${m.name}${f>1?`[${f}]`:""};`):(i.push(`uniform sampler2D ${m.name};`),i.push(`uniform int offset${m.name};`))});const r=i.join(` +`),o=e.map(m=>Xz(m,t,n)).join(` +`),a=t.texShape,l=ot(),c=Qz(l);let p,u,h=sB(l);t.isPacked?(p=Jz(t.logicalShape,a),u=tB(l)):(p=Zz(t.logicalShape,a),u=eB(l)),n&&(h+=nB);const d=[h,c,u,r,p,o,s].join(` +`);return d}function $a(e){const t=e.shapeInfo.logicalShape;switch(t.length){case 0:return iB(e);case 1:return rB(e);case 2:return oB(e);case 3:return aB(e);case 4:return lB(e);case 5:return cB(e);case 6:return pB(e);default:throw new Error(`${t.length}-D input sampling is not yet supported`)}}function HC(e){const t=e.shapeInfo.logicalShape;switch(t.length){case 0:return uB(e);case 1:return hB(e);case 2:return dB(e);case 3:return mB(e);default:return fB(e)}}function Xz(e,t,s=!1){let n="";s?n+=HC(e):n+=$a(e);const i=e.shapeInfo.logicalShape,r=t.logicalShape;return i.length<=r.length&&(s?n+=gB(e,t):n+=yB(e,t)),n}function Jz(e,t){switch(e.length){case 0:return qC();case 1:return bB(e,t);case 2:return LB(e,t);case 3:return wB(e,t);default:return xB(e,t)}}function Zz(e,t){switch(e.length){case 0:return qC();case 1:return SB(e,t);case 2:return NB(e,t);case 3:return vB(e,t);case 4:return TB(e,t);case 5:return IB(e,t);case 6:return AB(e,t);default:throw new Error(`${e.length}-D output sampling is not yet supported`)}}function Qz(e){return` + float sampleTexture(sampler2D textureSampler, vec2 uv) { + return ${e.texture2D}(textureSampler, uv).r; + } + `}function eB(e){return` + void setOutput(float val) { + ${e.output} = vec4(val, 0, 0, 0); + } + `}function tB(e){return` + void setOutput(vec4 val) { + ${e.output} = val; + } + `}function sB(e){const t=`${e.version} + precision highp float; + precision highp int; + precision highp sampler2D; + ${e.varyingFs} vec2 resultUV; + ${e.defineOutput} + const vec2 halfCR = vec2(0.5, 0.5); + + struct ivec5 + { + int x; + int y; + int z; + int w; + int u; + }; + + struct ivec6 + { + int x; + int y; + int z; + int w; + int u; + int v; + }; + + uniform float NAN; + ${e.defineSpecialNaN} + ${e.defineSpecialInf} + ${e.defineRound} + + int imod(int x, int y) { + return x - y * (x / y); + } + + int idiv(int a, int b, float sign) { + int res = a / b; + int mod = imod(a, b); + if (sign < 0. && mod != 0) { + res -= 1; + } + return res; + } + + //Based on the work of Dave Hoskins + //https://www.shadertoy.com/view/4djSRW + #define HASHSCALE1 443.8975 + float random(float seed){ + vec2 p = resultUV * seed; + vec3 p3 = fract(vec3(p.xyx) * HASHSCALE1); + p3 += dot(p3, p3.yzx + 19.19); + return fract((p3.x + p3.y) * p3.z); + } + + ${CB} + ${RB} + ${OB} + `;return t}const CB=` +vec2 uvFromFlat(int texNumR, int texNumC, int index) { + int texR = index / texNumC; + int texC = index - texR * texNumC; + return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); +} +vec2 packedUVfrom1D(int texNumR, int texNumC, int index) { + int texelIndex = index / 2; + int texR = texelIndex / texNumC; + int texC = texelIndex - texR * texNumC; + return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); +} +`,RB=` +vec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR, + int texNumC, int row, int col) { + int texelIndex = (row / 2) * texelsInLogicalRow + (col / 2); + int texR = texelIndex / texNumC; + int texC = texelIndex - texR * texNumC; + return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); +} +`,OB=` +vec2 packedUVfrom3D(int texNumR, int texNumC, + int texelsInBatch, int texelsInLogicalRow, int b, + int row, int col) { + int index = b * texelsInBatch + (row / 2) * texelsInLogicalRow + (col / 2); + int texR = index / texNumC; + int texC = index - texR * texNumC; + return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); +} +`,nB=` + float getChannel(vec4 frag, vec2 innerDims) { + vec2 modCoord = mod(innerDims, 2.); + return modCoord.x == 0. ? + (modCoord.y == 0. ? frag.r : frag.g) : + (modCoord.y == 0. ? frag.b : frag.a); + } + float getChannel(vec4 frag, int dim) { + float modCoord = mod(float(dim), 2.); + return modCoord == 0. ? frag.r : frag.g; + } +`;function qC(){return` + int getOutputCoords() { + return 0; + } + `}function bB(e,t){const s=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];return s[0]===1?` + int getOutputCoords() { + return 2 * int(resultUV.x * ${s[1]}.0); + } + `:s[1]===1?` + int getOutputCoords() { + return 2 * int(resultUV.y * ${s[0]}.0); + } + `:` + int getOutputCoords() { + ivec2 resTexRC = ivec2(resultUV.yx * + vec2(${s[0]}, ${s[1]})); + return 2 * (resTexRC.x * ${s[1]} + resTexRC.y); + } + `}function SB(e,t){return t[0]===1?` + int getOutputCoords() { + return int(resultUV.x * ${t[1]}.0); + } + `:t[1]===1?` + int getOutputCoords() { + return int(resultUV.y * ${t[0]}.0); + } + `:` + int getOutputCoords() { + ivec2 resTexRC = ivec2(resultUV.yx * + vec2(${t[0]}, ${t[1]})); + return resTexRC.x * ${t[1]} + resTexRC.y; + } + `}function wB(e,t){const s=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],n=Math.ceil(e[2]/2),i=n*Math.ceil(e[1]/2);return` + ivec3 getOutputCoords() { + ivec2 resTexRC = ivec2(resultUV.yx * + vec2(${s[0]}, ${s[1]})); + int index = resTexRC.x * ${s[1]} + resTexRC.y; + + int b = index / ${i}; + index -= b * ${i}; + + int r = 2 * (index / ${n}); + int c = imod(index, ${n}) * 2; + + return ivec3(b, r, c); + } + `}function vB(e,t){const s=zn(["r","c","d"],e);return` + ivec3 getOutputCoords() { + ivec2 resTexRC = ivec2(resultUV.yx * + vec2(${t[0]}, ${t[1]})); + int index = resTexRC.x * ${t[1]} + resTexRC.y; + ${s} + return ivec3(r, c, d); + } + `}function xB(e,t){const s=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],n=Math.ceil(e[e.length-1]/2),i=n*Math.ceil(e[e.length-2]/2);let r=i,o="",a="b, r, c";for(let l=2;l=1?p="coords = 0;":p=a.map(S=>`coords.${u[S+c]} = 0;`).join(` +`);let h="";o<2&&r>0?h="coords":h=e.shapeInfo.logicalShape.map((S,x)=>`coords.${u[x+c]}`).join(", ");let d="return outputValue;";const m=E.sizeFromShape(e.shapeInfo.logicalShape),f=m===1,y=E.sizeFromShape(t.logicalShape),b=y===1;if(r===1&&!f&&!b)d=` + return vec4(outputValue.xy, outputValue.xy); + `;else if(f&&!b)o===1?d=` + return vec4(outputValue.x, outputValue.x, 0., 0.); + `:d=` + return vec4(outputValue.x); + `;else if(a.length){const S=r-2,x=r-1;a.indexOf(S)>-1&&a.indexOf(x)>-1?d="return vec4(outputValue.x);":a.indexOf(S)>-1?d="return vec4(outputValue.x, outputValue.y, outputValue.x, outputValue.y);":a.indexOf(x)>-1&&(d="return vec4(outputValue.xx, outputValue.zz);")}return` + vec4 ${i}() { + ${l} coords = getOutputCoords(); + ${p} + vec4 outputValue = get${n}(${h}); + ${d} + } + `}function yB(e,t){const s=e.name,n=s.charAt(0).toUpperCase()+s.slice(1),i="get"+n+"AtOutCoords",r=t.texShape,o=e.shapeInfo.texShape,a=e.shapeInfo.logicalShape.length,l=t.logicalShape.length;if(!e.shapeInfo.isUniform&&a===l&&e.shapeInfo.flatOffset==null&&E.arraysEqual(o,r))return` + float ${i}() { + return sampleTexture(${s}, resultUV); + } + `;const c=Ce(l),p=VC(e.shapeInfo.logicalShape,t.logicalShape),u=l-a;let h;const d=["x","y","z","w","u","v"];a===0?h="":l<2&&p.length>=1?h="coords = 0;":h=p.map(f=>`coords.${d[f+u]} = 0;`).join(` +`);let m="";return l<2&&a>0?m="coords":m=e.shapeInfo.logicalShape.map((f,y)=>`coords.${d[y+u]}`).join(", "),` + float ${i}() { + ${c} coords = getOutputCoords(); + ${h} + return get${n}(${m}); + } + `}function Ce(e){if(e<=1)return"int";if(e===2)return"ivec2";if(e===3)return"ivec3";if(e===4)return"ivec4";if(e===5)return"ivec5";if(e===6)return"ivec6";throw Error(`GPU for rank ${e} is not yet supported`)}function za(e,t){const s=JSON.parse(JSON.stringify(e));return s.shapeInfo.logicalShape=t,s}function Ba(e,t){return t.map(s=>e[s]).join(", ")}class YC{constructor(e,t,s,n){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,E.assert(e.length>2,()=>`Packed arg${s.charAt(0).toUpperCase()+s.slice(1)} supports only inputs with rank above 2.`);const i=e[e.length-1],r=Math.ceil(i/t);this.outputShape=e.slice(0,-1),r>1&&this.outputShape.push(r),n||this.variableNames.push("bestIndicesA");const o=this.outputShape,a=o.length,l=Ce(a),c=Et("coords",a);let p,u;if(r===1){u=a+1;const R=Ce(u);p=` + ${R} sourceLocR = ${R}(${c.join()}, 0); + ++${c[a-1]}; + ${R} sourceLocG = ${R}(${c.join()}, 0); + ++${c[a-2]}; + ${R} sourceLocA = ${R}(${c.join()}, 0); + --${c[a-1]}; + ${R} sourceLocB = ${R}(${c.join()}, 0); + --${c[a-2]};`}else u=a,p=` + ${l} sourceLocR = coords; + ++${c[a-1]}; + ${l} sourceLocG = coords; + ++${c[a-2]}; + ${l} sourceLocA = coords; + --${c[a-1]}; + ${l} sourceLocB = coords; + --${c[a-2]};`;const h=["x","y","z","w","u","v"].slice(0,u),d="."+h[u-1],m=h.map(R=>"int "+R),f=Et("sourceLocR",u-1).concat("inIdx.r"),y=Et("sourceLocG",u-1).concat("inIdx.g"),b=Et("sourceLocB",u-1).concat("inIdx.b"),S=Et("sourceLocA",u-1).concat("inIdx.a"),x=s==="max"?"greaterThan":"lessThan",I=n?"":` + inIdx = round(vec4(getBestIndicesAChannel(${f.join()}), + getBestIndicesAChannel(${y.join()}), + getBestIndicesAChannel(${b.join()}), + getBestIndicesAChannel(${S.join()})));`,A=`vec4( + getAChannel(${f.join()}), + hasNextCol ? getAChannel(${y.join()}) : 0., + hasNextRow ? getAChannel(${b.join()}) : 0., + hasNextRow && hasNextCol ? getAChannel(${S.join()}) : 0.)`,k=n?"":` + float getBestIndicesAChannel(${m.join()}) { + return getChannel(getBestIndicesA(${h.join()}), + vec2(${h.slice(-2).join()})); + }`;this.userCode=` + float getAChannel(${m.join()}) { + return getChannel(getA(${h.join()}), + vec2(${h.slice(-2).join()})); + } + ${k} + void main() { + ${l} coords = getOutputCoords(); + bool hasNextCol = ${c[a-1]} < ${o[a-1]-1}; + bool hasNextRow = ${c[a-2]} < ${o[a-2]-1}; + ${p} + ivec4 srcIdx = ivec4(sourceLocR${d}, sourceLocG${d}, + sourceLocB${d}, sourceLocA${d}) * ${t}; + ivec4 inIdx = srcIdx; + vec4 bestIndex = vec4(inIdx); + vec4 bestValue = ${A}; + + for (int i = 0; i < ${t}; i++) { + inIdx = srcIdx; + ${I} + vec4 candidate = ${A}; + bvec4 nan = isnan(candidate); + bvec4 replace = bvec4( + vec4(${x}(candidate, bestValue)) * (vec4(1.0) - vec4(nan))); + + bestValue = vec4(replace.x ? candidate.x : bestValue.x, + replace.y ? candidate.y : bestValue.y, + replace.z ? candidate.z : bestValue.z, + replace.w ? candidate.w : bestValue.w); + bestIndex = mix(bestIndex, vec4(inIdx), vec4(replace)); + srcIdx++; + } + setOutput(bestIndex); + } + `}}class KC{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;const t=e.filterHeight,s=e.filterWidth,n=e.strideHeight,i=e.strideWidth,r=e.dilationHeight,o=e.dilationWidth,a=e.effectiveFilterHeight,l=e.effectiveFilterWidth,c=a-1-e.padInfo.top,p=l-1-e.padInfo.left,u=1/(t*s);this.userCode=` + const ivec2 pads = ivec2(${c}, ${p}); + const float avgMultiplier = float(${u}); + + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int d = coords[3]; + + ivec2 dyRCCorner = coords.yz - pads; + int dyRCorner = dyRCCorner.x; + int dyCCorner = dyRCCorner.y; + + // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d). + // ? = to be determined. : = across all values in that axis. + float dotProd = 0.0; + for (int wR = 0; wR < ${a}; + wR += ${r}) { + float dyR = float(dyRCorner + wR) / ${n}.0; + + if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) { + continue; + } + int idyR = int(dyR); + + for (int wC = 0; wC < ${l}; + wC+= ${o}) { + float dyC = float(dyCCorner + wC) / ${i}.0; + + if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || + fract(dyC) > 0.0) { + continue; + } + int idyC = int(dyC); + + float dyValue = getDy(b, idyR, idyC, d); + + dotProd += dyValue * avgMultiplier; + } + } + setOutput(dotProd); + } + `}}class XC{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;const t=e.filterDepth,s=e.filterHeight,n=e.filterWidth,i=e.strideDepth,r=e.strideHeight,o=e.strideWidth,a=e.dilationDepth,l=e.dilationHeight,c=e.dilationWidth,p=e.effectiveFilterDepth,u=e.effectiveFilterHeight,h=e.effectiveFilterWidth,d=p-1-e.padInfo.front,m=u-1-e.padInfo.top,f=h-1-e.padInfo.left,y=1/(t*s*n);this.userCode=` + const ivec3 pads = ivec3(${d}, ${m}, ${f}); + const float avgMultiplier = float(${y}); + + void main() { + ivec5 coords = getOutputCoords(); + int batch = coords.x; + int ch = coords.u; + + ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads; + int dyDCorner = dyCorner.x; + int dyRCorner = dyCorner.y; + int dyCCorner = dyCorner.z; + + // Convolve dy(?, ?, ?, d) with pos mask(:, :, :, ch) to get + // dx(xD, xR, xC, ch). + // ? = to be determined. : = across all values in that axis. + float dotProd = 0.0; + + for (int wD = 0; wD < ${p}; + wD += ${a}) { + float dyD = float(dyDCorner + wD) / ${i}.0; + + if (dyD < 0.0 || dyD >= ${e.outDepth}.0 || fract(dyD) > 0.0) { + continue; + } + int idyD = int(dyD); + + for (int wR = 0; wR < ${u}; + wR += ${l}) { + float dyR = float(dyRCorner + wR) / ${r}.0; + + if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || + fract(dyR) > 0.0) { + continue; + } + int idyR = int(dyR); + + for (int wC = 0; wC < ${h}; + wC += ${c}) { + float dyC = float(dyCCorner + wC) / ${o}.0; + + if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || + fract(dyC) > 0.0) { + continue; + } + int idyC = int(dyC); + + float dyValue = getDy(batch, idyD, idyR, idyC, ch); + + dotProd += dyValue * avgMultiplier; + } + } + } + setOutput(dotProd); + } + `}}class JC{constructor(e,t,s,n,i,r){this.outputShape=[],this.variableNames=["x","mean","variance"],U.assertAndGetBroadcastShape(e,t),U.assertAndGetBroadcastShape(e,s);let o="0.0";n!=null&&(U.assertAndGetBroadcastShape(e,n),this.variableNames.push("offset"),o="getOffsetAtOutCoords()");let a="1.0";i!=null&&(U.assertAndGetBroadcastShape(e,i),this.variableNames.push("scale"),a="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` + void main() { + float x = getXAtOutCoords(); + float mean = getMeanAtOutCoords(); + float variance = getVarianceAtOutCoords(); + float offset = ${o}; + float scale = ${a}; + float inv = scale * inversesqrt(variance + float(${r})); + setOutput(dot(vec3(x, -mean, offset), vec3(inv, inv, 1))); + } + `}}class ZC{constructor(e,t,s,n,i,r){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],U.assertAndGetBroadcastShape(e,t),U.assertAndGetBroadcastShape(e,s);let o="vec4(0.0)";n!=null&&(U.assertAndGetBroadcastShape(e,n),this.variableNames.push("offset"),o="getOffsetAtOutCoords()");let a="vec4(1.0)";i!=null&&(U.assertAndGetBroadcastShape(e,i),this.variableNames.push("scale"),a="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` + void main() { + vec4 offset = ${o}; + vec4 scale = ${a}; + + vec4 x = getXAtOutCoords(); + vec4 mean = getMeanAtOutCoords(); + vec4 variance = getVarianceAtOutCoords(); + + vec4 inv = scale * inversesqrt(variance + vec4(${r})); + + setOutput((x - mean) * inv + offset); + } + `}}const tx={REAL:"return areal * breal - aimag * bimag;",IMAG:"return areal * bimag + aimag * breal;"};class sx{constructor(e,t,s){this.variableNames=["AReal","AImag","BReal","BImag"],this.outputShape=U.assertAndGetBroadcastShape(t,s),this.userCode=` + float binaryOpComplex( + float areal, float aimag, float breal, float bimag) { + ${e} + } + + void main() { + float areal = getARealAtOutCoords(); + float aimag = getAImagAtOutCoords(); + float breal = getBRealAtOutCoords(); + float bimag = getBImagAtOutCoords(); + setOutput(binaryOpComplex(areal, aimag, breal, bimag)); + } + `}}const nx=` + if (isnan(a)) return a; + if (isnan(b)) return b; +`,vf="return a + b;",Tf="return a - b;",ix="return a * b;",QC=` +if (a == b) { + return 1.0; +}; +return a / b;`,e0=` + float s = sign(a) * sign(b); + int ia = round(a); + int ib = round(b); + if (ib != 0) { + // Windows (D3D) wants guaranteed non-zero int division at compile-time. + return float(idiv(ia, ib, s)); + } else { + return NAN; + } +`,t0=` +if(a < 0.0 && floor(b) < b){ + return NAN; +} +if (b == 0.0) { + return 1.0; +} +return (round(mod(b, 2.0)) != 1) ? + pow(abs(a), b) : sign(a) * pow(abs(a), b); +`,s0="return float(a == b);",n0="return float(a != b);",i0="return float(a < b);",r0="return float(a <= b);",o0="return float(a > b);",a0="return float(a >= b);",l0="return float(a >= 1.0 && b >= 1.0);",c0="return float(a >= 1.0 || b >= 1.0);",p0=nx+` + return max(a, b); +`,u0=nx+` + return min(a, b); +`,h0=`if (b == 0.0) return NAN; + return mod(a, b);`,d0=nx+` + return atan(a, b); +`,m0="return (b >= 1.0) ? a : a * (b + 1.0);",rx="return (a < 0.) ? b * a : a;";class mt{constructor(e,t,s){this.variableNames=["A","B"],this.outputShape=U.assertAndGetBroadcastShape(t,s),this.userCode=` + float binaryOperation(float a, float b) { + ${e} + } + + void main() { + float a = getAAtOutCoords(); + float b = getBAtOutCoords(); + setOutput(binaryOperation(a, b)); + } + `}}const Uu=` + result.r = isNaN.r > 0. ? NAN : result.r; + result.g = isNaN.g > 0. ? NAN : result.g; + result.b = isNaN.b > 0. ? NAN : result.b; + result.a = isNaN.a > 0. ? NAN : result.a; +`,f0=` + // vec4 one = vec4(equal(a, b)); + // return one + (vec4(1.0) - one) * a / b; + vec4 result = a / b; + if(a.x == b.x) { + result.x = 1.; + } + if(a.y == b.y) { + result.y = 1.; + } + if(a.z == b.z) { + result.z = 1.; + } + if(a.w == b.w) { + result.w = 1.; + } + + return result; +`,g0=` + ivec4 ia = round(a); + ivec4 ib = round(b); + bvec4 cond = notEqual(ib, ivec4(0)); + ivec4 result = ivec4(0); + vec4 s = sign(a) * sign(b); + + // Windows (D3D) wants guaranteed non-zero int division at compile-time. + if (cond[0]) { + result[0] = idiv(ia[0], ib[0], s[0]); + } + if (cond[1]) { + result[1] = idiv(ia[1], ib[1], s[1]); + } + if (cond[2]) { + result[2] = idiv(ia[2], ib[2], s[2]); + } + if (cond[3]) { + result[3] = idiv(ia[3], ib[3], s[3]); + } + return vec4(result); +`,y0=` + // isModRound1 has 1 for components with round(mod(b, 2.0)) == 1, 0 otherwise. + vec4 isModRound1 = vec4(equal(round(mod(b, 2.0)), ivec4(1))); + vec4 multiplier = sign(a) * isModRound1 + (vec4(1.0) - isModRound1); + vec4 result = multiplier * pow(abs(a), b); + + // Ensure that a^0 = 1, including 0^0 = 1 as this correspond to TF and JS + bvec4 isExpZero = equal(b, vec4(0.0)); + result.r = isExpZero.r ? 1.0 : result.r; + result.g = isExpZero.g ? 1.0 : result.g; + result.b = isExpZero.b ? 1.0 : result.b; + result.a = isExpZero.a ? 1.0 : result.a; + + vec4 isNaN = vec4(lessThan(a, vec4(0.0))) * vec4(lessThan(floor(b), b)); + `+Uu+` + return result; +`,ox=` + vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); + return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); +`,b0=` + vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.))); + return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0)))); +`,w0=` + vec4 result = atan(a, b); + vec4 isNaN = min(vec4(isnan(a)) + vec4(isnan(b)), vec4(1.0)); + `+Uu+` + return result; +`,x0=` + return vec4(equal(a, b)); +`,L0=` + return vec4(notEqual(a, b)); +`,S0=` + return vec4(lessThan(a, b)); +`,v0=` + return vec4(lessThanEqual(a, b)); +`,T0=` + return vec4(greaterThan(a, b)); +`,I0=` + return vec4(greaterThanEqual(a, b)); +`,A0=` + return vec4( + vec4(greaterThanEqual(a, vec4(1.0))) * + vec4(greaterThanEqual(b, vec4(1.0)))); +`,N0=` + return min( + vec4(greaterThanEqual(a, vec4(1.0))) + + vec4(greaterThanEqual(b, vec4(1.0))), + vec4(1.0)); +`,C0=` + vec4 result = vec4(max(a, b)); + vec4 isNaN = min(vec4(isnan(a)) + vec4(isnan(b)), vec4(1.0)); + `+Uu+` + return result; +`,R0=` + vec4 result = vec4(min(a, b)); + vec4 isNaN = min(vec4(isnan(a)) + vec4(isnan(b)), vec4(1.0)); + `+Uu+` + return result; +`,O0=` + vec4 result = mod(a, b); + vec4 isNaN = vec4(equal(b, vec4(0.0))); + `+Uu+` + return result; +`;class Qs{constructor(e,t,s,n=!1){this.variableNames=["A","B"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=U.assertAndGetBroadcastShape(t,s);const i=this.outputShape.length;let r="";if(n)if(i===0||E.sizeFromShape(this.outputShape)===1)r=` + result.y = 0.; + result.z = 0.; + result.w = 0.; + `;else{const o=Ce(i);if(r=` + ${o} coords = getOutputCoords(); + `,i===1)r+=` + result.y = (coords + 1) >= ${this.outputShape[0]} ? 0. : result.y; + result.z = 0.; + result.w = 0.; + `;else{const a=Et("coords",i);r+=` + bool nextRowOutOfBounds = + (${a[i-2]} + 1) >= ${this.outputShape[i-2]}; + bool nextColOutOfBounds = + (${a[i-1]} + 1) >= ${this.outputShape[i-1]}; + result.y = nextColOutOfBounds ? 0. : result.y; + result.z = nextRowOutOfBounds ? 0. : result.z; + result.w = nextColOutOfBounds || nextRowOutOfBounds ? 0. : result.w; + `}}this.userCode=` + vec4 binaryOperation(vec4 a, vec4 b) { + ${e} + } + + void main() { + vec4 a = getAAtOutCoords(); + vec4 b = getBAtOutCoords(); + + vec4 result = binaryOperation(a, b); + ${r} + + setOutput(result); + } + `}}class E0{constructor(e){this.variableNames=["A"],this.outputShape=e,this.userCode=` + uniform float minVal; + uniform float maxVal; + + void main() { + float value = getAAtOutCoords(); + if (isnan(value)) { + setOutput(value); + return; + } + + setOutput(clamp(value, minVal, maxVal)); + } + `}getCustomSetupFunc(e,t){return(s,n)=>{this.minLoc==null&&(this.minLoc=s.getUniformLocationNoThrow(n,"minVal"),this.maxLoc=s.getUniformLocationNoThrow(n,"maxVal")),s.gl.uniform1f(this.minLoc,e),s.gl.uniform1f(this.maxLoc,t)}}}class k0{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.userCode=` + uniform float minVal; + uniform float maxVal; + + void main() { + vec4 value = getAAtOutCoords(); + + if (any(isnan(value))) { + setOutput(value); + return; + } + + setOutput(clamp(value, vec4(minVal), vec4(maxVal))); + } + `}getCustomSetupFunc(e,t){return(s,n)=>{this.minLoc==null&&(this.minLoc=s.getUniformLocationNoThrow(n,"minVal"),this.maxLoc=s.getUniformLocationNoThrow(n,"maxVal")),s.gl.uniform1f(this.minLoc,e),s.gl.uniform1f(this.maxLoc,t)}}}class _0{constructor(e){this.variableNames=["real","imag"],this.outputShape=e,this.userCode=` + void main() { + float re = abs(getRealAtOutCoords()); + float im = abs(getImagAtOutCoords()); + float mx = max(re, im); + + // sadly the length function in glsl is not underflow-safe + // (at least not on Intel GPUs). So the safe solution is + // to ensure underflow-safety in all cases. + setOutput( + mx == 0.0 ? 0.0 : mx * length(vec2(1, min(re, im)/mx)) + ); + } + `}}class D0{constructor(e){this.outputShape=[],this.outputShape=U.computeOutShape(e,1),this.variableNames=e.map((r,o)=>`T${o}`);const t=new Array(e.length-1);t[0]=e[0][1];for(let r=1;r`T${f}`);const a=new Array(e.length-1);a[0]=e[0][t];for(let m=1;m= ${a[m-1]}) { + return getChannel( + getT${m}(${If(o,l,f)}), + vec2(${If(c,l,f)})); + }`}const h=a.length,d=a[a.length-1];u+=` + return getChannel( + getT${h}(${If(o,l,d)}), + vec2(${If(c,l,d)}));`,this.userCode=` + float getValue(${o.map(m=>"int "+m)}) { + ${u} + } + + void main() { + ${i} coords = getOutputCoords(); + vec4 result = vec4(getValue(${r}), 0., 0., 0.); + + ${r[n-1]} = ${r[n-1]} + 1; + if (${r[n-1]} < ${s[n-1]}) { + result.g = getValue(${r}); + } + + ${r[n-2]} = ${r[n-2]} + 1; + if (${r[n-2]} < ${s[n-2]}) { + result.a = getValue(${r}); + } + + ${r[n-1]} = ${r[n-1]} - 1; + if (${r[n-2]} < ${s[n-2]} && + ${r[n-1]} < ${s[n-1]}) { + result.b = getValue(${r}); + } + setOutput(result); + } + `}}function If(e,t,s){const n=e.indexOf(t),i=e.map((r,o)=>o===n?`${r} - ${s}`:r);return i.join()}class M0{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;const t=e.strideHeight,s=e.strideWidth,n=e.padInfo.top,i=e.padInfo.left,r=e.dataFormat==="channelsLast";this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int wR = coords.x; + int wC = coords.y; + int d1 = coords.z; + int d2 = coords.w; + + // Convolve x(?, ?, d1) with dy(:, :, d2) to get dw(wR, wC, d1, d2). + // ? = to be determined. : = across all values in that axis. + float dotProd = 0.0; + + for (int b = 0; b < ${e.batchSize}; b++) { + for (int yR = 0; yR < ${e.outHeight}; yR++) { + int xR = wR + yR * ${t} - ${n}; + + if (xR < 0 || xR >= ${e.inHeight}) { + continue; + } + + for (int yC = 0; yC < ${e.outWidth}; yC++) { + int xC = wC + yC * ${s} - ${i}; + + if (xC < 0 || xC >= ${e.inWidth}) { + continue; + } + + if (${r}) { + float dyValue = getDy(b, yR, yC, d2); + float xValue = getX(b, xR, xC, d1); + dotProd += (xValue * dyValue); + } else { + float dyValue = getDy(b, d2, yR, yC); + float xValue = getX(b, d1, xR, xC); + dotProd += (xValue * dyValue); + } + + } + } + } + setOutput(dotProd); + } + `}}class U0{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;const t=e.filterHeight,s=e.filterWidth,n=e.strideHeight,i=e.strideWidth,r=e.dataFormat==="channelsLast",o=t-1-e.padInfo.top,a=s-1-e.padInfo.left,l=r?1:2,c=r?2:3,p=r?3:1;this.userCode=` + const ivec2 pads = ivec2(${o}, ${a}); + + void main() { + ivec4 coords = getOutputCoords(); + int batch = coords[0]; + int d1 = coords[${p}]; + + ivec2 dyCorner = ivec2(coords[${l}], coords[${c}]) - pads; + int dyRCorner = dyCorner.x; + int dyCCorner = dyCorner.y; + + // Convolve dy(?, ?, d2) with w(:, :, d1, d2) to compute dx(xR, xC, d1). + // ? = to be determined. : = across all values in that axis. + float dotProd = 0.0; + for (int wR = 0; wR < ${t}; wR++) { + float dyR = float(dyRCorner + wR) / ${n}.0; + + if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) { + continue; + } + int idyR = int(dyR); + + int wRPerm = ${t} - 1 - wR; + + for (int wC = 0; wC < ${s}; wC++) { + float dyC = float(dyCCorner + wC) / ${i}.0; + + if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || + fract(dyC) > 0.0) { + continue; + } + int idyC = int(dyC); + + int wCPerm = ${s} - 1 - wC; + + for (int d2 = 0; d2 < ${e.outChannels}; d2++) { + + if (${r}) { + float xValue = getDy(batch, idyR, idyC, d2); + float wValue = getW(wRPerm, wCPerm, d1, d2); + dotProd += xValue * wValue; + } else { + float xValue = getDy(batch, d2, idyR, idyC); + float wValue = getW(wRPerm, wCPerm, d1, d2); + dotProd += xValue * wValue; + } + + } + } + } + setOutput(dotProd); + } + `}}class $0{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;const t=e.strideDepth,s=e.strideHeight,n=e.strideWidth,i=e.padInfo.front,r=e.padInfo.top,o=e.padInfo.left;this.userCode=` + void main() { + ivec5 coords = getOutputCoords(); + int wF = coords.x; + int wR = coords.y; + int wC = coords.z; + int d1 = coords.w; + int d2 = coords.u; + + float dotProd = 0.0; + + for (int b = 0; b < ${e.batchSize}; b++) { + for (int yF = 0; yF < ${e.outDepth}; yF++) { + int xF = wF + yF * ${t} - ${i}; + + if (xF < 0 || xF >= ${e.inDepth}) { + continue; + } + + for (int yR = 0; yR < ${e.outHeight}; yR++) { + int xR = wR + yR * ${s} - ${r}; + + if (xR < 0 || xR >= ${e.inHeight}) { + continue; + } + + for (int yC = 0; yC < ${e.outWidth}; yC++) { + int xC = wC + yC * ${n} - ${o}; + + if (xC < 0 || xC >= ${e.inWidth}) { + continue; + } + + float dyValue = getDy(b, yF, yR, yC, d2); + float xValue = getX(b, xF, xR, xC, d1); + dotProd += (xValue * dyValue); + } + } + } + } + setOutput(dotProd); + } + `}}class W0{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;const t=e.filterDepth,s=e.filterHeight,n=e.filterWidth,i=e.strideDepth,r=e.strideHeight,o=e.strideWidth,a=t-1-e.padInfo.front,l=s-1-e.padInfo.top,c=n-1-e.padInfo.left;this.userCode=` + const ivec3 pads = ivec3(${a}, ${l}, ${c}); + + void main() { + ivec5 coords = getOutputCoords(); + int batch = coords.x; + int d1 = coords.u; + + + ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads; + int dyFCorner = dyCorner.x; + int dyRCorner = dyCorner.y; + int dyCCorner = dyCorner.z; + + float dotProd = 0.0; + for (int wF = 0; wF < ${t}; wF++) { + float dyF = float(dyFCorner + wF) / ${i}.0; + + if (dyF < 0.0 || dyF >= ${e.outDepth}.0 || fract(dyF) > 0.0) { + continue; + } + int idyF = int(dyF); + + int wFPerm = ${t} - 1 - wF; + + for (int wR = 0; wR < ${s}; wR++) { + float dyR = float(dyRCorner + wR) / ${r}.0; + + if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || + fract(dyR) > 0.0) { + continue; + } + int idyR = int(dyR); + + int wRPerm = ${s} - 1 - wR; + + for (int wC = 0; wC < ${n}; wC++) { + float dyC = float(dyCCorner + wC) / ${o}.0; + + if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || + fract(dyC) > 0.0) { + continue; + } + int idyC = int(dyC); + + int wCPerm = ${n} - 1 - wC; + + for (int d2 = 0; d2 < ${e.outChannels}; d2++) { + float xValue = getDy(batch, idyF, idyR, idyC, d2); + float wValue = getW(wFPerm, wRPerm, wCPerm, d1, d2); + dotProd += xValue * wValue; + } + } + } + } + setOutput(dotProd); + } + `}}class z0{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;const t=e.strideHeight,s=e.strideWidth,n=e.padInfo.top,i=e.padInfo.left,r=e.outChannels/e.inChannels;this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int wR = coords.x; + int wC = coords.y; + int d1 = coords.z; + int dm = coords.w; + int d2 = d1 * ${r} + dm; + + float dotProd = 0.0; + + // TO DO: Vec4 over the batch size + for (int b = 0; b < ${e.batchSize}; b++) { + for (int yR = 0; yR < ${e.outHeight}; yR++) { + int xR = wR + yR * ${t} - ${n}; + + if (xR < 0 || xR >= ${e.inHeight}) { + continue; + } + + for (int yC = 0; yC < ${e.outWidth}; yC++) { + int xC = wC + yC * ${s} - ${i}; + + if (xC < 0 || xC >= ${e.inWidth}) { + continue; + } + + float dyValue = getDy(b, yR, yC, d2); + float xValue = getX(b, xR, xC, d1); + dotProd += (xValue * dyValue); + } + } + } + setOutput(dotProd); + } + `}}class B0{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;const t=e.filterHeight,s=e.filterWidth,n=e.strideHeight,i=e.strideWidth,r=t-1-e.padInfo.top,o=s-1-e.padInfo.left,a=e.outChannels/e.inChannels;this.userCode=` + const ivec2 pads = ivec2(${r}, ${o}); + + void main() { + ivec4 coords = getOutputCoords(); + int batch = coords[0]; + int d1 = coords[3]; + ivec2 dyCorner = coords.yz - pads; + int dyRCorner = dyCorner.x; + int dyCCorner = dyCorner.y; + + float dotProd = 0.0; + + for (int wR = 0; wR < ${t}; wR++) { + float dyR = float(dyRCorner + wR) / ${n}.0; + + if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) { + continue; + } + int idyR = int(dyR); + + int wRPerm = ${t} - 1 - wR; + + for (int wC = 0; wC < ${s}; wC++) { + float dyC = float(dyCCorner + wC) / ${i}.0; + + if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || + fract(dyC) > 0.0) { + continue; + } + int idyC = int(dyC); + + int wCPerm = ${s} - 1 - wC; + + // TO DO: Vec4 over the channelMul + for (int dm = 0; dm < ${a}; dm++) { + int d2 = d1 * ${a} + dm; + float xValue = getDy(batch, idyR, idyC, d2); + float wValue = getW(wRPerm, wCPerm, d1, dm); + dotProd += xValue * wValue; + } + } + } + setOutput(dotProd); + } + `}}class ax{constructor(e,t=!1,s=null,n=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;const i=e.padInfo.top,r=e.padInfo.left,o=e.strideHeight,a=e.strideWidth,l=e.dilationHeight,c=e.dilationWidth,p=e.filterHeight,u=e.filterWidth,h=Math.floor(e.inChannels/4)*4,d=e.inChannels%4,m=e.dataFormat==="channelsLast",f=m?1:2,y=m?2:3,b=m?3:1;let S="",x="";s&&(n?S=`float activation(float a) { + float b = getPreluActivationWeightsAtOutCoords(); + ${s} + }`:S=` + float activation(float x) { + ${s} + } + `,x="result = activation(result);");const I=t?"result += getBiasAtOutCoords();":"";t&&this.variableNames.push("bias"),n&&this.variableNames.push("preluActivationWeights"),this.userCode=` + ${S} + + const ivec2 strides = ivec2(${o}, ${a}); + const ivec2 pads = ivec2(${i}, ${r}); + + void main() { + ivec4 coords = getOutputCoords(); + int batch = coords[0]; + int d2 = coords[${b}]; + + ivec2 xRCCorner = + ivec2(coords[${f}], coords[${y}]) * strides - pads; + int xRCorner = xRCCorner.x; + int xCCorner = xRCCorner.y; + + // Convolve x(?, ?, d1) with w(:, :, d1, d2) to get y(yR, yC, d2). + // ? = to be determined. : = across all values in that axis. + float dotProd = 0.0; + for (int wR = 0; wR < ${p}; wR++) { + int xR = xRCorner + wR * ${l}; + + if (xR < 0 || xR >= ${e.inHeight}) { + continue; + } + + for (int wC = 0; wC < ${u}; wC++) { + int xC = xCCorner + wC * ${c}; + + if (xC < 0 || xC >= ${e.inWidth}) { + continue; + } + + for (int d1 = 0; d1 < ${h}; d1 += 4) { + vec4 wValues = vec4( + getW(wR, wC, d1, d2), + getW(wR, wC, d1 + 1, d2), + getW(wR, wC, d1 + 2, d2), + getW(wR, wC, d1 + 3, d2) + ); + + if (${m}) { + vec4 xValues = vec4( + getX(batch, xR, xC, d1), + getX(batch, xR, xC, d1 + 1), + getX(batch, xR, xC, d1 + 2), + getX(batch, xR, xC, d1 + 3) + ); + dotProd += dot(xValues, wValues); + } else { + vec4 xValues = vec4( + getX(batch, d1, xR, xC), + getX(batch, d1 + 1, xR, xC), + getX(batch, d1 + 2, xR, xC), + getX(batch, d1 + 3, xR, xC) + ); + dotProd += dot(xValues, wValues); + } + } + + if (${d===1}) { + + if (${m}) { + dotProd += + getX(batch, xR, xC, ${h}) * + getW(wR, wC, ${h}, d2); + } else { + dotProd += + getX(batch, ${h}, xR, xC) * + getW(wR, wC, ${h}, d2); + } + + } else if (${d===2}) { + vec2 wValues = vec2( + getW(wR, wC, ${h}, d2), + getW(wR, wC, ${h} + 1, d2) + ); + + if (${m}) { + vec2 xValues = vec2( + getX(batch, xR, xC, ${h}), + getX(batch, xR, xC, ${h} + 1) + ); + dotProd += dot(xValues, wValues); + } else { + vec2 xValues = vec2( + getX(batch, ${h}, xR, xC), + getX(batch, ${h} + 1, xR, xC) + ); + dotProd += dot(xValues, wValues); + } + + } else if (${d===3}) { + vec3 wValues = vec3( + getW(wR, wC, ${h}, d2), + getW(wR, wC, ${h} + 1, d2), + getW(wR, wC, ${h} + 2, d2) + ); + + if (${m}) { + vec3 xValues = vec3( + getX(batch, xR, xC, ${h}), + getX(batch, xR, xC, ${h} + 1), + getX(batch, xR, xC, ${h} + 2) + ); + dotProd += dot(xValues, wValues); + } else { + vec3 xValues = vec3( + getX(batch, ${h}, xR, xC), + getX(batch, ${h} + 1, xR, xC), + getX(batch, ${h} + 2, xR, xC) + ); + dotProd += dot(xValues, wValues); + } + + } + } + } + + float result = dotProd; + ${I} + ${x} + setOutput(result); + } + `}}class P0{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;const t=e.padInfo.front,s=e.padInfo.top,n=e.padInfo.left,i=e.strideDepth,r=e.strideHeight,o=e.strideWidth,a=e.dilationDepth,l=e.dilationHeight,c=e.dilationWidth,p=e.filterDepth,u=e.filterHeight,h=e.filterWidth,d=Math.floor(e.inChannels/4)*4,m=e.inChannels%4;this.userCode=` + const ivec3 strides = ivec3(${i}, ${r}, ${o}); + const ivec3 pads = ivec3(${t}, ${s}, ${n}); + + void main() { + ivec5 coords = getOutputCoords(); + int batch = coords.x; + int d2 = coords.u; + + ivec3 xFRCCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads; + int xFCorner = xFRCCorner.x; + int xRCorner = xFRCCorner.y; + int xCCorner = xFRCCorner.z; + + // Convolve x(?, ?, ?, d1) with w(:, :, :, d1, d2) to get + // y(yF, yR, yC, d2). ? = to be determined. : = across all + // values in that axis. + float dotProd = 0.0; + for (int wF = 0; wF < ${p}; wF++) { + int xF = xFCorner + wF * ${a}; + + if (xF < 0 || xF >= ${e.inDepth}) { + continue; + } + + for (int wR = 0; wR < ${u}; wR++) { + int xR = xRCorner + wR * ${l}; + + if (xR < 0 || xR >= ${e.inHeight}) { + continue; + } + + for (int wC = 0; wC < ${h}; wC++) { + int xC = xCCorner + wC * ${c}; + + if (xC < 0 || xC >= ${e.inWidth}) { + continue; + } + + for (int d1 = 0; d1 < ${d}; d1 += 4) { + vec4 xValues = vec4( + getX(batch, xF, xR, xC, d1), + getX(batch, xF, xR, xC, d1 + 1), + getX(batch, xF, xR, xC, d1 + 2), + getX(batch, xF, xR, xC, d1 + 3) + ); + vec4 wValues = vec4( + getW(wF, wR, wC, d1, d2), + getW(wF, wR, wC, d1 + 1, d2), + getW(wF, wR, wC, d1 + 2, d2), + getW(wF, wR, wC, d1 + 3, d2) + ); + + dotProd += dot(xValues, wValues); + } + + if (${m===1}) { + dotProd += + getX(batch, xF, xR, xC, ${d}) * + getW(wF, wR, wC, ${d}, d2); + } else if (${m===2}) { + vec2 xValues = vec2( + getX(batch, xF, xR, xC, ${d}), + getX(batch, xF, xR, xC, ${d} + 1) + ); + vec2 wValues = vec2( + getW(wF, wR, wC, ${d}, d2), + getW(wF, wR, wC, ${d} + 1, d2) + ); + dotProd += dot(xValues, wValues); + } else if (${m===3}) { + vec3 xValues = vec3( + getX(batch, xF, xR, xC, ${d}), + getX(batch, xF, xR, xC, ${d} + 1), + getX(batch, xF, xR, xC, ${d} + 2) + ); + vec3 wValues = vec3( + getW(wF, wR, wC, ${d}, d2), + getW(wF, wR, wC, ${d} + 1, d2), + getW(wF, wR, wC, ${d} + 2, d2) + ); + dotProd += dot(xValues, wValues); + } + } + } + } + setOutput(dotProd); + } + `}}class lx{constructor(e,t=!1,s=null,n=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;const i=e.inHeight,r=e.inWidth,o=e.padInfo.top,a=e.padInfo.left,l=e.strideHeight,c=e.strideWidth,p=e.dilationHeight,u=e.dilationWidth,h=e.filterHeight,d=e.filterWidth,m=e.outChannels/e.inChannels;let f="",y="";s&&(n?f=`float activation(float a) { + float b = getPreluActivationWeightsAtOutCoords(); + ${s} + }`:f=` + float activation(float x) { + ${s} + } + `,y="result = activation(result);");const b=t?"result += getBiasAtOutCoords();":"";t&&this.variableNames.push("bias"),n&&this.variableNames.push("preluActivationWeights"),this.userCode=` + ${f} + + const ivec2 strides = ivec2(${l}, ${c}); + const ivec2 pads = ivec2(${o}, ${a}); + + void main() { + ivec4 coords = getOutputCoords(); + int batch = coords.x; + ivec2 xRCCorner = coords.yz * strides - pads; + int d2 = coords.w; + int d1 = d2 / ${m}; + int q = d2 - d1 * ${m}; + + int xRCorner = xRCCorner.x; + int xCCorner = xRCCorner.y; + + // Convolve x(?, ?, d1) with w(:, :, d1, q) to get y(yR, yC, d2). + // ? = to be determined. : = across all values in that axis. + float dotProd = 0.0; + // TO DO(dsmilkov): Flatten the two for loops and vec4 the operations. + for (int wR = 0; wR < ${h}; wR++) { + int xR = xRCorner + wR * ${p}; + + if (xR < 0 || xR >= ${i}) { + continue; + } + + for (int wC = 0; wC < ${d}; wC++) { + int xC = xCCorner + wC * ${u}; + + if (xC < 0 || xC >= ${r}) { + continue; + } + + float xVal = getX(batch, xR, xC, d1); + float wVal = getW(wR, wC, d1, q); + dotProd += xVal * wVal; + } + } + + float result = dotProd; + ${b} + ${y} + setOutput(result); + } + `}}class cx{constructor(e,t=!1,s=null,n=!1){this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e.outShape;const i=e.inHeight,r=e.inWidth,o=e.padInfo.top,a=e.padInfo.left,l=e.strideHeight,c=e.strideWidth,p=e.dilationHeight,u=e.dilationWidth,h=e.filterHeight,d=e.filterWidth,m=d;let f="int xR; int xC; int xCOffset;";for(let x=0;x= 0 && xR < ${i} && xCOffset >= 0 && xCOffset < ${r}) { + xTexelR${x}C${A} = getX(batch, xR, xCOffset, d1); + + // Need to manually clear unused channels in case + // we're reading from recycled texture. + if(xCOffset + 1 >= ${r}) { + xTexelR${x}C${A}.zw = vec2(0.); + } + } else { + xTexelR${x}C${A} = vec4(0.); + } + + xCOffset = xC + 1 - 2; + if(xR >= 0 && xR < ${i} && xCOffset >= 0 && xCOffset < ${r}) { + vec4 previous = getX(batch, xR, xCOffset, d1); + + // Need to manually clear unused channels in case + // we're reading from recycled texture. + if(xCOffset + 1 >= ${r}) { + previous.zw = vec2(0.); + } + + xR${x}C${A} = vec4(previous.zw, xTexelR${x}C${A}.xy); + } else { + xR${x}C${A} = vec4(0, 0, xTexelR${x}C${A}.xy); + } + `:f+=` + if(xR >= 0 && xR < ${i} && xC >= 0 && xC < ${r}) { + xTexelR${x}C${A} = getX(batch, xR, xC, d1); + } else { + xTexelR${x}C${A} = vec4(0.); + } + + xR${x}C${A} = xTexelR${x}C${A}; + `,A+1= 0 && xR < ${i} && + xCOffset >= 0 && xCOffset < ${r}) { + xTexelR${x}C${A+2} = getX(batch, xR, xCOffset, d1); + } + `,u>1&&(f+=` + xCOffset -= 2; + if(xR >= 0 && xR < ${i} && + xCOffset >= 0 && xCOffset < ${r}) { + xTexelR${x}C${A} = getX(batch, xR, xCOffset, d1); + } else { + xTexelR${x}C${A} = vec4(0.); + } + `),f+=` + xR${x}C${A+1} = vec4( + xTexelR${x}C${A}.zw, xTexelR${x}C${A+2}.xy); + `):f+=` + xCOffset = xC + ${k}; + + if(xR >= 0 && xR < ${i} && + xCOffset >= 0 && xCOffset < ${r}) { + xTexelR${x}C${A+2} = getX(batch, xR, xCOffset, d1); + } + + xR${x}C${A+1} = xTexelR${x}C${A+2}; + `}}else A= 0 && xR < ${i}) { + `,a%2===1?(f+=` + xCOffset = xC + 1 - ${c}; + if(xCOffset >= 0 && xCOffset < ${r}) { + xTexelR${x}C${A} = getX(batch, xR, xCOffset, d1); + } else { + xTexelR${x}C${A} = vec4(0.); + } + + if(xC + 1 >= 0 && xC + 1 < ${r}) { + xTexelR${x}C${A+2} = getX(batch, xR, xC + 1, d1); + } else { + xTexelR${x}C${A+2} = vec4(0.); + } + + xR${x}C${A} = vec4( + xTexelR${x}C${A}.zw, xTexelR${x}C${A+2}.zw); + `,A+1= 0 && xCOffset < ${r}) { + final = getX(batch, xR, xCOffset, d1); + } + xR${x}C${A+1} = vec4(xTexelR${x}C${A+2}.xy, final.xy); + `)):(f+=` + if(xC >= 0 && xC < ${r}) { + xTexelR${x}C${A} = getX(batch, xR, xC, d1); + } else { + xTexelR${x}C${A} = vec4(0.); + } + + xCOffset = xC + ${c}; + if(xCOffset >= 0 && xCOffset < ${r}) { + xTexelR${x}C${A+2} = getX(batch, xR, xCOffset, d1); + } else { + xTexelR${x}C${A+2} = vec4(0.); + } + + xR${x}C${A} = vec4( + xTexelR${x}C${A}.xy, xTexelR${x}C${A+2}.xy); + `,A+11?[`${(o-1)/(p-1)}`,"(y2-y1) * height_ratio",`y1*${d} + float(y)*(height_scale)`]:["0.0","0.0",`0.5 * (y1+y2) * ${d}`],[S,x,I]=u>1?[`${(a-1)/(u-1)}`,"(x2-x1) * width_ratio",`x1*${m} + float(x)*(width_scale)`]:["0.0","0.0",`0.5 * (x1+x2) * ${m}`];this.userCode=` + const float height_ratio = float(${f}); + const float width_ratio = float(${S}); + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int y = coords[1]; + int x = coords[2]; + int d = coords[3]; + + // get box vals + float y1 = getBoxes(b,0); + float x1 = getBoxes(b,1); + float y2 = getBoxes(b,2); + float x2 = getBoxes(b,3); + + // get image in batch index + int bInd = round(getBoxInd(b)); + if(bInd < 0 || bInd >= ${r}) { + return; + } + + float height_scale = ${y}; + float width_scale = ${x}; + + float in_y = ${b}; + if( in_y < 0.0 || in_y > ${d} ) { + setOutput(float(${i})); + return; + } + float in_x = ${I}; + if( in_x < 0.0 || in_x > ${m} ) { + setOutput(float(${i})); + return; + } + + vec2 sourceFracIndexCR = vec2(in_x,in_y); + if(${h} == 1) { + // Compute the four integer indices. + ivec2 sourceFloorCR = ivec2(sourceFracIndexCR); + ivec2 sourceCeilCR = ivec2(ceil(sourceFracIndexCR)); + + float topLeft = getImage(b, sourceFloorCR.y, sourceFloorCR.x, d); + float bottomLeft = getImage(b, sourceCeilCR.y, sourceFloorCR.x, d); + float topRight = getImage(b, sourceFloorCR.y, sourceCeilCR.x, d); + float bottomRight = getImage(b, sourceCeilCR.y, sourceCeilCR.x, d); + + vec2 fracCR = sourceFracIndexCR - vec2(sourceFloorCR); + + float top = topLeft + (topRight - topLeft) * fracCR.x; + float bottom = bottomLeft + (bottomRight - bottomLeft) * fracCR.x; + float newValue = top + (bottom - top) * fracCR.y; + setOutput(newValue); + } else { + // Compute the coordinators of nearest neighbor point. + ivec2 sourceNearestCR = ivec2(floor( + sourceFracIndexCR + vec2(0.5,0.5))); + float newValue = getImage(b, sourceNearestCR.y, sourceNearestCR.x, d); + setOutput(newValue); + } + } + `}}class px{constructor(e,t,s){this.variableNames=["x"],this.outputShape=e;const n=e.length,i=t?"0.0":`getX(${V0(n,"coords")})`,r=e[e.length-1];let o="",a="";t?(o=s?`end != ${r-1}`:"end != 0",a=s?"end + 1":"end - 1"):(o=s?`end + pow2 < ${r}`:"end >= pow2",a=s?"end + pow2":"end - pow2"),this.userCode=` + uniform float index; + void main() { + ${Ce(n)} coords = getOutputCoords(); + int end = ${G0(n,"coords")}; + float val = ${i}; + int pow2 = int(pow(2.0, index)); + if (${o}) { + int idx = ${a}; + ${G0(n,"coords")} = idx; + val += getX(${V0(n,"coords")}); + } + setOutput(val); + } + `}getCustomSetupFunc(e){return(t,s)=>{this.index==null&&(this.index=t.getUniformLocation(s,"index")),t.gl.uniform1f(this.index,e)}}}function V0(e,t){if(e===1)return`${t}`;if(e===2)return`${t}.x, ${t}.y`;if(e===3)return`${t}.x, ${t}.y, ${t}.z`;if(e===4)return`${t}.x, ${t}.y, ${t}.z, ${t}.w`;throw Error(`Cumulative sum for rank ${e} is not yet supported`)}function G0(e,t){if(e===1)return`${t}`;if(e===2)return`${t}.y`;if(e===3)return`${t}.z`;if(e===4)return`${t}.w`;throw Error(`Cumulative sum for rank ${e} is not yet supported`)}class H0{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=wr.DENSE;const t=xr(e),s=ot();this.outputShape=e,this.userCode=` + ivec3 outCoordsFromFlatIndex(int index) { + ${zn(["r","c","d"],e)} + return ivec3(r, c, d); + } + + void main() { + ivec2 resTexRC = ivec2(resultUV.yx * + vec2(${t[0]}, ${t[1]})); + int index = 4 * (resTexRC.x * ${t[1]} + resTexRC.y); + + vec4 result = vec4(0.); + + for (int i=0; i<4; i++) { + int flatIndex = index + i; + ivec3 rc = outCoordsFromFlatIndex(flatIndex); + result[i] = getA(rc.x, rc.y, rc.z); + } + + ${s.output} = result; + } + `}}class q0{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=wr.DENSE;const t=xr(e),s=ot();this.outputShape=e,this.userCode=` + ivec3 outCoordsFromFlatIndex(int index) { + ${zn(["r","c","d"],e)} + return ivec3(r, c, d); + } + + void main() { + ivec2 resTexRC = ivec2(resultUV.yx * + vec2(${t[0]}, ${t[1]})); + int index = 4 * (resTexRC.x * ${t[1]} + resTexRC.y); + + vec4 result = vec4(0.); + + for (int i=0; i<4; i++) { + int flatIndex = index + i; + ivec3 rc = outCoordsFromFlatIndex(flatIndex); + result[i] = getChannel(getA(rc.x, rc.y, rc.z), vec2(rc.y, rc.z)); + } + + ${s.output} = result; + } + `}}class Y0{constructor(e,t,s){this.variableNames=["x"],this.outputShape=[],this.outputShape=e,this.blockSize=t,this.dataFormat=s,this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int h = ${this.getHeightCoordString()}; + int w = ${this.getWidthCoordString()}; + int d = ${this.getDepthCoordString()}; + + int in_h = h / ${t}; + int offset_h = imod(h, ${t}); + int in_w = w / ${t}; + int offset_w = imod(w, ${t}); + int offset_d = (offset_h * ${t} + offset_w) * + ${this.getOutputDepthSize()}; + int in_d = d + offset_d; + + float result = ${this.getInputSamplingString()}; + setOutput(result); + } + `}getHeightCoordString(){return this.dataFormat==="NHWC"?"coords[1]":"coords[2]"}getWidthCoordString(){return this.dataFormat==="NHWC"?"coords[2]":"coords[3]"}getDepthCoordString(){return this.dataFormat==="NHWC"?"coords[3]":"coords[1]"}getOutputDepthSize(){return this.dataFormat==="NHWC"?this.outputShape[3]:this.outputShape[1]}getInputSamplingString(){return this.dataFormat==="NHWC"?"getX(b, in_h, in_w, in_d)":"getX(b, in_d, in_h, in_w)"}}class K0{constructor(e){this.variableNames=["X"],this.outputShape=[e,e],this.userCode=` + void main() { + ivec2 coords = getOutputCoords(); + float val = coords[0] == coords[1] ? getX(coords[0]) : 0.0; + setOutput(val); + } + `}}class X0{constructor(e){this.variableNames=["A"],this.outTexUsage=ns.DOWNLOAD;const t=ot();this.outputShape=e,this.userCode=` + ${Sf} + + void main() { + float x = getAAtOutCoords(); + ${t.output} = encode_float(x); + } + `}}class J0{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=ns.DOWNLOAD;const t=ot();this.outputShape=e,this.userCode=` + ${Sf} + + void main() { + ivec3 coords = getOutputCoords(); + float x = getChannel(getAAtOutCoords(), vec2(coords.y, coords.z)); + ${t.output} = encode_float(x); + } + `}}class Z0{constructor(e,t,s=!1){this.variableNames=["A"];const n=ot(),[i,r]=t;this.outputShape=e;let o="result";s&&(o="floor(result * 255. + 0.5)"),this.userCode=` + ${Ua(e)} + + void main() { + ivec3 coords = getOutputCoords(); + + int flatIndex = getFlatIndex(coords); + int offset = imod(flatIndex, 4); + + flatIndex = idiv(flatIndex, 4, 1.); + + int r = flatIndex / ${r}; + int c = imod(flatIndex, ${r}); + vec2 uv = (vec2(c, r) + halfCR) / vec2(${r}.0, ${i}.0); + vec4 values = ${n.texture2D}(A, uv); + + float result; + + if(offset == 0) { + result = values[0]; + } else if(offset == 1) { + result = values[1]; + } else if(offset == 2) { + result = values[2]; + } else { + result = values[3]; + } + + ${n.output} = vec4(${o}, 0., 0., 0.); + } + `}}class Q0{constructor(e,t,s=!1){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;const n=ot(),[i,r]=t;this.outputShape=e;let o="",a="result";s&&(a="floor(result * 255. + 0.5)");for(let l=0;l<=1;l++)for(let c=0;c<=1;c++){const p=l*2+c;o+=` + localCoords = coords; + if(localCoords[2] + ${c} < ${e[2]}) { + localCoords[2] += ${c}; + if(localCoords[1] + ${l} < ${e[1]}) { + localCoords[1] += ${l}; + + flatIndex = getFlatIndex(localCoords); + offset = imod(flatIndex, 4); + + flatIndex = idiv(flatIndex, 4, 1.); + + r = flatIndex / ${r}; + c = imod(flatIndex, ${r}); + uv = (vec2(c, r) + halfCR) / vec2(${r}.0, ${i}.0); + values = ${n.texture2D}(A, uv); + + if(offset == 0) { + result[${p}] = values[0]; + } else if(offset == 1) { + result[${p}] = values[1]; + } else if(offset == 2) { + result[${p}] = values[2]; + } else { + result[${p}] = values[3]; + } + } + } + `}this.userCode=` + ${Ua(e)} + + void main() { + ivec3 coords = getOutputCoords(); + + vec4 result = vec4(0.); + int flatIndex, r, c, offset; + ivec3 localCoords; + vec2 uv; + vec4 values; + + ${o} + + ${n.output} = ${a}; + } + `}}const ux={REAL:"return real * expR - imag * expI;",IMAG:"return real * expI + imag * expR;"};class hx{constructor(e,t,s){this.variableNames=["real","imag"];const n=t[1];this.outputShape=t;const i=s?`2.0 * ${Math.PI}`:`-2.0 * ${Math.PI}`,r=s?`${n}.0`:"1.0";this.userCode=` + const float exponentMultiplier = ${i}; + + float unaryOpComplex(float real, float expR, float imag, float expI) { + ${e} + } + + float mulMatDFT(int batch, int index) { + float indexRatio = float(index) / float(${n}); + float exponentMultiplierTimesIndexRatio = + exponentMultiplier * indexRatio; + + float result = 0.0; + + for (int i = 0; i < ${n}; i++) { + // x = (-2|2 * PI / N) * index * i; + float x = exponentMultiplierTimesIndexRatio * float(i); + float expR = cos(x); + float expI = sin(x); + float real = getReal(batch, i); + float imag = getImag(batch, i); + + result += + unaryOpComplex(real, expR, imag, expI) / ${r}; + } + + return result; + } + + void main() { + ivec2 coords = getOutputCoords(); + setOutput(mulMatDFT(coords[0], coords[1])); + } + `}}class eR{constructor(e,t){this.outputShape=[],this.variableNames=["x"],this.outputShape=e,this.userCode=` + uniform float value; + void main() { + // Input can be obtained from uniform value. + setOutput(value); + } + `}getCustomSetupFunc(e){return(t,s)=>{this.valueLoc==null&&(this.valueLoc=t.getUniformLocationNoThrow(s,"value")),t.gl.uniform1f(this.valueLoc,e)}}}class tR{constructor(e,t,s){this.variableNames=["A","indices"];const n=e.slice();n[s]=t,this.outputShape=n,this.rank=n.length;const i=Ce(this.rank),r=EB(e,s);this.userCode=` + void main() { + ${i} resRC = getOutputCoords(); + setOutput(getA(${r})); + } + `}}function EB(e,t){const s=e.length;if(s>4)throw Error(`Gather for rank ${s} is not yet supported`);if(s===1)return"int(getIndices(resRC))";const n=["resRC.x","resRC.y","resRC.z","resRC.w"],i=[];for(let r=0;r1?"strides[j]":"strides";this.userCode=` + ${n} strides = ${n}(${this.strides}); + void main() { + ${i} coords = getOutputCoords(); + int flattenIndex = 0; + for (int j = 0; j < ${this.sliceDim}; j++) { + int index = round(getIndices(coords[0], j)); + flattenIndex += index * ${r}; + } + setOutput(getX(flattenIndex, coords[1])); + } + `}}function nR(e){const t=ot(),s=`${t.version} + precision highp float; + ${t.attribute} vec3 clipSpacePos; + ${t.attribute} vec2 uv; + ${t.varyingVs} vec2 resultUV; + + void main() { + gl_Position = vec4(clipSpacePos, 1); + resultUV = uv; + }`;return LC(e,s)}function iR(e){const t=new Float32Array([-1,1,0,0,1,-1,-1,0,0,0,1,1,0,1,1,1,-1,0,1,0]);return IC(e,t)}function rR(e){const t=new Uint16Array([0,1,2,2,1,3]);return AC(e,t)}function $u(e,t,s,n,i,r){CC(t,s);const o=NC(e),a=e.TEXTURE_2D;return oe(e,()=>e.bindTexture(a,o)),oe(e,()=>e.texParameteri(a,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE)),oe(e,()=>e.texParameteri(a,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),oe(e,()=>e.texParameteri(a,e.TEXTURE_MIN_FILTER,e.NEAREST)),oe(e,()=>e.texParameteri(a,e.TEXTURE_MAG_FILTER,e.NEAREST)),oe(e,()=>e.texImage2D(a,0,n,t,s,0,i,r,null)),oe(e,()=>e.bindTexture(e.TEXTURE_2D,null)),o}function dx(e){return e.internalFormatFloat}function oR(e,t,s,n){const[i,r]=_o(t,s);return $u(e,i,r,dx(n),n.textureFormatFloat,e.FLOAT)}function mx(e){return e.internalFormatHalfFloat}function aR(e,t,s,n){const[i,r]=_o(t,s);return $u(e,i,r,mx(n),n.textureFormatFloat,n.textureTypeHalfFloat)}function fx(e){return e.downloadTextureFormat}function lR(e,t,s,n){const[i,r]=_o(t,s);return $u(e,i,r,fx(n),e.RGBA,e.UNSIGNED_BYTE)}function gx(e){return e.internalFormatPackedFloat}function cR(e,t,s,n){const[i,r]=oi(t,s);return $u(e,i,r,gx(n),e.RGBA,e.FLOAT)}function yx(e){return e.internalFormatPackedHalfFloat}function pR(e,t,s,n){const[i,r]=oi(t,s);return $u(e,i,r,yx(n),e.RGBA,n.textureTypeHalfFloat)}function uR(e,t,s){const n=0,i=3*4,r=3*4+2*4;oe(e,()=>e.bindBuffer(e.ARRAY_BUFFER,s));const o=Yw(e,t,"clipSpacePos",s,3,r,n);return o&&Yw(e,t,"uv",s,2,r,i)}function hR(e,t,s,n,i,r){oe(e,()=>e.bindTexture(e.TEXTURE_2D,t));let o,a,l;i instanceof Uint8Array?(o=new Uint8Array(s*n*4),a=e.UNSIGNED_BYTE,l=e.RGBA):(o=new Float32Array(s*n*4),a=e.FLOAT,l=r.internalFormatPackedFloat),o.set(i),oe(e,()=>e.texImage2D(e.TEXTURE_2D,0,l,s,n,0,e.RGBA,a,o)),oe(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function dR(e,t,s){oe(e,()=>e.bindTexture(e.TEXTURE_2D,t)),s.data instanceof Uint8Array?oe(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,s.width,s.height,0,e.RGBA,e.UNSIGNED_BYTE,s.data)):oe(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,s)),oe(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function mR(e,t,s,n){const i=e.createBuffer();oe(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,i));const r=4,o=4,a=r*o*t*s;return oe(e,()=>e.bufferData(e.PIXEL_PACK_BUFFER,a,e.STREAM_READ)),oe(e,()=>e.readPixels(0,0,s,t,e.RGBA,e.FLOAT,0)),oe(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,null)),i}function fR(e,t,s){const n=e,i=new Float32Array(s);return n.bindBuffer(n.PIXEL_PACK_BUFFER,t),n.getBufferSubData(n.PIXEL_PACK_BUFFER,0,i),n.bindBuffer(n.PIXEL_PACK_BUFFER,null),i}function gR(e,t,s,n){const[i,r]=_o(t,s),o=4,a=new Uint8Array(bC(t*s,o));return oe(e,()=>e.readPixels(0,0,i,r,n.downloadTextureFormat,e.UNSIGNED_BYTE,a)),new Float32Array(a.buffer)}function yR(e,t,s,n,i,r,o,a){const l=e,c=new Float32Array(wC(r,o));return l.bindBuffer(l.PIXEL_PACK_BUFFER,t),l.getBufferSubData(l.PIXEL_PACK_BUFFER,0,c),l.bindBuffer(l.PIXEL_PACK_BUFFER,null),c}function bR(e,t,s){const n=new Float32Array(t*s*4);return oe(e,()=>e.readPixels(0,0,s,t,e.RGBA,e.FLOAT,n)),n}class bx{constructor(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.vertexAttrsAreBound=!1,this.itemsToPoll=[];const t=$().getNumber("WEBGL_VERSION");e!=null?(this.gl=e,qw(t,e)):this.gl=Js(t);let s="WEBGL_color_buffer_float";const n="EXT_color_buffer_half_float";if($().getNumber("WEBGL_VERSION")===1){const i="OES_texture_float",r="OES_texture_half_float";if(this.textureFloatExtension=Fu(this.gl,i),Zs(this.gl,r))this.textureHalfFloatExtension=Fu(this.gl,r);else if($().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support half float textures, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.");if(this.colorBufferFloatExtension=this.gl.getExtension(s),Zs(this.gl,n))this.colorBufferHalfFloatExtension=Fu(this.gl,n);else if($().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support color renderable half floats, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.")}else if(s="EXT_color_buffer_float",Zs(this.gl,s))this.colorBufferFloatExtension=this.gl.getExtension(s);else if(Zs(this.gl,n))this.colorBufferHalfFloatExtension=this.gl.getExtension(n);else throw new Error("GL context does not support color renderable floats");this.vertexBuffer=iR(this.gl),this.indexBuffer=rR(this.gl),this.framebuffer=RC(this.gl),this.textureConfig=Du(this.gl,this.textureHalfFloatExtension)}get debug(){return $().getBool("DEBUG")}dispose(){if(this.disposed)return;this.program!=null&&console.warn("Disposing a GPGPUContext that still has a bound WebGLProgram. This is probably a resource leak, delete the program with GPGPUContext.deleteProgram before disposing."),this.outputTexture!=null&&console.warn("Disposing a GPGPUContext that still has a bound output matrix texture. This is probably a resource leak, delete the output matrix texture with GPGPUContext.deleteMatrixTexture before disposing.");const e=this.gl;oe(e,()=>e.finish()),oe(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),oe(e,()=>e.deleteFramebuffer(this.framebuffer)),oe(e,()=>e.bindBuffer(e.ARRAY_BUFFER,null)),oe(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null)),oe(e,()=>e.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(e,t){return this.throwIfDisposed(),oR(this.gl,e,t,this.textureConfig)}createFloat16MatrixTexture(e,t){return this.throwIfDisposed(),aR(this.gl,e,t,this.textureConfig)}createUnsignedBytesMatrixTexture(e,t){return this.throwIfDisposed(),lR(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),dR(this.gl,e,t)}uploadDenseMatrixToTexture(e,t,s,n){this.throwIfDisposed(),hR(this.gl,e,t,s,n,this.textureConfig)}createFloat16PackedMatrixTexture(e,t){return this.throwIfDisposed(),pR(this.gl,e,t,this.textureConfig)}createPackedMatrixTexture(e,t){return this.throwIfDisposed(),cR(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(Kw(this.gl,this.framebuffer),this.outputTexture=null),oe(this.gl,()=>this.gl.deleteTexture(e))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,s){return this.downloadMatrixDriver(e,()=>gR(this.gl,t,s,this.textureConfig))}downloadPackedMatrixFromBuffer(e,t,s,n,i,r){return yR(this.gl,e,t,s,n,i,r,this.textureConfig)}downloadFloat32MatrixFromBuffer(e,t){return fR(this.gl,e,t)}createBufferFromTexture(e,t,s){this.bindTextureToFrameBuffer(e);const n=mR(this.gl,t,s,this.textureConfig);return this.unbindTextureToFrameBuffer(),n}createAndWaitForFence(){const e=this.createFence(this.gl);return this.pollFence(e)}createFence(e){let t,s;if($().getBool("WEBGL_FENCE_API_ENABLED")){const n=e,i=n.fenceSync(n.SYNC_GPU_COMMANDS_COMPLETE,0);e.flush(),s=()=>{const r=n.clientWaitSync(i,0,0);return r===n.ALREADY_SIGNALED||r===n.CONDITION_SATISFIED},t=i}else $().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),s=()=>this.isQueryAvailable(t,$().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):s=()=>!0;return{query:t,isFencePassed:s}}downloadMatrixFromPackedTexture(e,t,s){return this.downloadMatrixDriver(e,()=>bR(this.gl,t,s))}createProgram(e){this.throwIfDisposed();const t=this.gl,s=SC(t,e),n=nR(t),i=vC(t);return oe(t,()=>t.attachShader(i,n)),oe(t,()=>t.attachShader(i,s)),TC(t,i),this.debug&&bf(t,i),this.vertexAttrsAreBound||(this.setProgram(i),this.vertexAttrsAreBound=uR(t,this.program,this.vertexBuffer)),i}deleteProgram(e){this.throwIfDisposed(),e===this.program&&(this.program=null),e!=null&&oe(this.gl,()=>this.gl.deleteProgram(e))}setProgram(e){this.throwIfDisposed(),this.program=e,this.program!=null&&this.debug&&bf(this.gl,this.program),oe(this.gl,()=>this.gl.useProgram(e))}getUniformLocation(e,t,s=!0){return this.throwIfDisposed(),s?OC(this.gl,e,t):EC(this.gl,e,t)}getAttributeLocation(e,t){return this.throwIfDisposed(),oe(this.gl,()=>this.gl.getAttribLocation(e,t))}getUniformLocationNoThrow(e,t){return this.throwIfDisposed(),this.gl.getUniformLocation(e,t)}setInputMatrixTexture(e,t,s){this.throwIfDisposed(),this.throwIfNoProgram(),kC(this.gl,e,t,s)}setOutputMatrixTexture(e,t,s){this.setOutputMatrixTextureDriver(e,s,t)}setOutputPackedMatrixTexture(e,t,s){this.throwIfDisposed();const[n,i]=oi(t,s);this.setOutputMatrixTextureDriver(e,n,i)}setOutputMatrixWriteRegion(e,t,s,n){this.setOutputMatrixWriteRegionDriver(s,e,n,t)}setOutputPackedMatrixWriteRegion(e,t,s,n){throw new Error("setOutputPackedMatrixWriteRegion not implemented.")}debugValidate(){this.program!=null&&bf(this.gl,this.program),Mu(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();const e=this.gl;this.debug&&this.debugValidate(),oe(e,()=>e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),oe(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return this.disjointQueryTimerExtension==null&&(this.disjointQueryTimerExtension=Fu(this.gl,$().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2?"EXT_disjoint_timer_query_webgl2":"EXT_disjoint_timer_query")),this.disjointQueryTimerExtension}getQueryTimerExtensionWebGL2(){return this.getQueryTimerExtension()}getQueryTimerExtensionWebGL1(){return this.getQueryTimerExtension()}beginQuery(){if($().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){const s=this.gl,n=this.getQueryTimerExtensionWebGL2(),i=s.createQuery();return s.beginQuery(n.TIME_ELAPSED_EXT,i),i}const e=this.getQueryTimerExtensionWebGL1(),t=e.createQueryEXT();return e.beginQueryEXT(e.TIME_ELAPSED_EXT,t),t}endQuery(){if($().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){const t=this.gl,s=this.getQueryTimerExtensionWebGL2();t.endQuery(s.TIME_ELAPSED_EXT);return}const e=this.getQueryTimerExtensionWebGL1();e.endQueryEXT(e.TIME_ELAPSED_EXT)}async waitForQueryAndGetTime(e){return await E.repeatedTry(()=>this.disposed||this.isQueryAvailable(e,$().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))),this.getQueryTime(e,$().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))}getQueryTime(e,t){if(t===0)return null;if(t===2){const s=this.gl,n=s.getQueryParameter(e,s.QUERY_RESULT);return n/1e6}else{const s=this.getQueryTimerExtensionWebGL1(),n=s.getQueryObjectEXT(e,s.QUERY_RESULT_EXT);return n/1e6}}isQueryAvailable(e,t){if(t===0)return!0;if(t===2){const s=this.gl,n=this.getQueryTimerExtensionWebGL2(),i=s.getQueryParameter(e,s.QUERY_RESULT_AVAILABLE);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(n.GPU_DISJOINT_EXT)),i&&!this.disjoint}else{const s=this.getQueryTimerExtensionWebGL1(),n=s.getQueryObjectEXT(e,s.QUERY_RESULT_AVAILABLE_EXT);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(s.GPU_DISJOINT_EXT)),n&&!this.disjoint}}pollFence(e){return new Promise(t=>{this.addItemToPoll(()=>e.isFencePassed(),()=>t())})}pollItems(){const e=kB(this.itemsToPoll.map(t=>t.isDoneFn));for(let t=0;t<=e;++t){const{resolveFn:s}=this.itemsToPoll[t];s()}this.itemsToPoll=this.itemsToPoll.slice(e+1)}addItemToPoll(e,t){if(this.itemsToPoll.push({isDoneFn:e,resolveFn:t}),this.itemsToPoll.length>1)return;E.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0))}bindTextureToFrameBuffer(e){this.throwIfDisposed(),wf(this.gl,e,this.framebuffer),this.debug&&Mu(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(wf(this.gl,this.outputTexture,this.framebuffer),this.debug&&Mu(this.gl)):Kw(this.gl,this.framebuffer)}downloadMatrixDriver(e,t){this.bindTextureToFrameBuffer(e);const s=t();return this.unbindTextureToFrameBuffer(),s}setOutputMatrixTextureDriver(e,t,s){this.throwIfDisposed();const n=this.gl;wf(n,e,this.framebuffer),this.debug&&Mu(n),this.outputTexture=e,oe(n,()=>n.viewport(0,0,t,s)),oe(n,()=>n.scissor(0,0,t,s))}setOutputMatrixWriteRegionDriver(e,t,s,n){this.throwIfDisposed(),oe(this.gl,()=>this.gl.scissor(e,t,s,n))}throwIfDisposed(){if(this.disposed)throw new Error("Attempted to use disposed GPGPUContext.")}throwIfNoProgram(){if(this.program==null)throw new Error("No GPU program is currently set.")}}function kB(e){let t=0;for(;t{const f={logicalShape:d.shape,texShape:d.isUniform?null:d.texData.texShape,isUniform:d.isUniform,isPacked:d.isUniform?!1:d.texData.isPacked,flatOffset:null};return d.texData!=null&&d.texData.slice!=null&&d.texData.slice.flatOffset>0&&(f.flatOffset=d.texData.slice.flatOffset),{name:t.variableNames[m],shapeInfo:f}}),o=r.map(d=>d.shapeInfo),a={logicalShape:n.shape,texShape:n.texData.texShape,isUniform:!1,isPacked:n.texData.isPacked,flatOffset:null},l=GC(r,a,i,t.packedInputs),c=e.createProgram(l);let p=null;const u=e.getUniformLocation(c,"NAN",!1);$().getNumber("WEBGL_VERSION")===1&&(p=e.getUniformLocation(c,"INFINITY",!1));const h={};for(let d=0;d{const i=s.logicalShape,r=t[n],o=r.shape;if(!E.arraysEqual(i,o))throw Error(`Binary was compiled with different shapes than the current args. Shapes ${i} and ${o} must match`);if(s.isUniform&&r.isUniform)return;const a=s.texShape,l=r.isUniform?null:r.texData.texShape;if(!E.arraysEqual(a,l))throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${a} and ${l} must match`)})}function LR(e,t,s,n,i){xR(t.inShapeInfos,s),xR([t.outShapeInfo],[n]);const r=n.texData.texture,o=n.texData.texShape;n.texData.isPacked?e.setOutputPackedMatrixTexture(r,o[0],o[1]):e.setOutputMatrixTexture(r,o[0],o[1]),e.setProgram(t.webGLProgram),$().getNumber("WEBGL_VERSION")===1&&(t.infLoc!==null&&e.gl.uniform1f(t.infLoc,Infinity)),t.nanLoc!==null&&e.gl.uniform1f(t.nanLoc,NaN),s.forEach((a,l)=>{const c=t.program.variableNames[l],p=t.uniformLocations[c],u=t.uniformLocations[`offset${c}`];if(p==null)return;if(a.isUniform){if(E.sizeFromShape(a.shape)<2)e.gl.uniform1f(p,a.uniformValues[0]);else{let h=a.uniformValues;h instanceof Float32Array||(h=new Float32Array(h)),e.gl.uniform1fv(p,h)}return}a.texData.slice!=null&&u!=null&&e.gl.uniform1i(u,a.texData.slice.flatOffset),e.setInputMatrixTexture(a.texData.texture,p,l)}),i!=null&&i(e,t.webGLProgram),e.executeProgram()}function SR(e,t,s){let n="";t.concat(s).forEach(o=>{const a=o.texData!=null&&o.texData.slice!=null&&o.texData.slice.flatOffset>0,l=o.isUniform?"uniform":o.texData.texShape;n+=`${o.shape}_${l}_${a}`});const i=e.userCode;let r=e.constructor.name;return r+="_"+n+"_"+i,r}class vR{constructor(e,t,s){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e;const{filterWidth:n,inChannels:i,strideWidth:r,strideHeight:o,padInfo:a,outWidth:l,dilationWidth:c,dilationHeight:p,dataFormat:u}=s,{left:h,top:d}=a,m=i*n,f=ot(),y=u==="channelsLast",b=y?0:1,S=y?1:2;let x="";for(let I=0;I<=1;I++)for(let A=0;A<=1;A++)x+=` + blockIndex = rc.y + ${A}; + pos = rc.x + ${I}; + + if(blockIndex < ${e[1]} && pos < ${e[0]}) { + offsetY = int(blockIndex / (${l})) * ${o} - ${d}; + d0 = offsetY + ${p} * (pos / ${m}); + + if(d0 < ${t[b]} && d0 >= 0) { + + offsetX = int(mod(float(blockIndex), ${l}.) * ${r}. - ${h}.); + d1 = offsetX + ${c} * (int(mod(float(pos), ${m}.) / ${i}.)); + + if(d1 < ${t[S]} && d1 >= 0) { + + ch = int(mod(float(pos), ${i}.)); + + if (${y}) { + innerDims = vec2(d1, ch); + result[${I*2+A}] = getChannel( + getA(d0, int(innerDims.x), + int(innerDims.y)), innerDims); + } else { + innerDims = vec2(d0, d1); + result[${I*2+A}] = getChannel( + getA(ch, int(innerDims.x), + int(innerDims.y)), innerDims); + } + } + } + } + `;this.userCode=` + void main() { + ivec2 rc = getOutputCoords(); + + vec4 result = vec4(0); + + int blockIndex, pos, offsetY, d0, offsetX, d1, ch; + vec2 innerDims; + + ${x} + + ${f.output} = result; + } + `}}class TR{constructor(e,t,s,n,i){this.variableNames=["x"],this.outputShape=[];const r=t,o=e[3]-1;this.outputShape=e;let a;const l=`float(${s}) + float(${n}) * sum`;i===.5?a=`inversesqrt(${l})`:i===1?a=`1.0/(${l})`:a=`exp(log(${l}) * float(-${i}));`,this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int r = coords[1]; + int c = coords[2]; + int d = coords[3]; + float x = getX(b, r, c, d); + float sum = 0.0; + for (int j = -${r}; j <= ${r}; j++) { + int idx = d + j; + if (idx >= 0 && idx <= ${o}) { + float z = getX(b, r, c, idx); + sum += z * z; + } + } + float val = x * ${a}; + setOutput(val); + } + `}}class IR{constructor(e,t,s,n,i){this.variableNames=["inputImage","outputImage","dy"],this.outputShape=[],this.outputShape=e,this.depth=e[3],this.depthRadius=t,this.bias=s,this.alpha=n,this.beta=i,this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int r = coords[1]; + int c = coords[2]; + + float result = 0.0; + for (int d = 0; d < ${this.depth}; ++d) { + int depthBegin = int(max(0.0, float(d - ${t}))); + int depthEnd = int(min(float(${this.depth}), + float(d + ${t} + 1))); + + const int MIN_DEPTH_BEGIN = 0; + const int MAX_DEPTH_END = ${this.depth}; + + float norm = 0.0; + for (int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k) { + if (k < depthBegin){ + continue; + } + else if (k >= depthBegin && k < depthEnd) { + norm += getInputImage(b, r, c, k) * getInputImage(b, r, c, k); + } + else { + break; + } + } + + norm = float(${n}) * norm + float(${s}); + + for(int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k){ + if (k < depthBegin){ + continue; + } + else if (k >= depthBegin && k < depthEnd){ + float dyi = -2.0 * float(${n}) + * float(${i}) + * getInputImage(b ,r ,c, k) * getOutputImage(b, r, c, d) + / norm; + if (k == d) { + dyi += pow(norm, -1.0 * ${i}); + } + if (k == coords[3]) { + dyi *= getDy(b, r, c, d); + result += dyi; + } + } + else { + break; + } + } + } + setOutput(result); + } + `}}class AR{constructor(e,t,s,n,i){this.variableNames=["x"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;const r=t,o=e[3]-1;this.outputShape=e;let a;const l=`float(${s}) + float(${n}) * sum`;i===.5?a=`inversesqrt(${l})`:i===1?a=`1.0/(${l})`:a=`exp(log(${l}) * float(-${i}));`,this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int b = coords.x; + int r = coords.y; + int c = coords.z; + int d = coords.w; + + bool hasNextCol = d < ${this.outputShape[3]}; + bool hasNextRow = c < ${this.outputShape[2]}; + + vec4 sum = vec4(0.); + vec4 xFragAtOutputCoords = getX(b, r, c, d); + + vec4 xAtOutputCoords = vec4( + getChannel(xFragAtOutputCoords, vec2(c, d)), + hasNextCol ? + getChannel(xFragAtOutputCoords, vec2(c, d + 1)) : 0.0, + hasNextRow ? + getChannel(xFragAtOutputCoords , vec2(c + 1, d)) : 0.0, + (hasNextRow && hasNextCol) ? + getChannel(xFragAtOutputCoords, vec2(c + 1, d + 1)) : 0.0 + ); + + int firstChannel = d - ${r}; + vec2 cache = vec2(0.); + if(firstChannel >= 0){ + vec4 firstChannelFrag = getX(b, r, c, firstChannel); + cache.x = getChannel(firstChannelFrag, vec2(c, firstChannel)); + if(hasNextRow){ + cache.y = getChannel(firstChannelFrag, vec2(c + 1, firstChannel)); + } + } + + ivec2 depth = ivec2(d, d + 1); + for (int j = - ${r}; j <= ${r}; j++) { + ivec2 idx = depth + j; + bvec2 aboveLowerBound = greaterThanEqual(idx, ivec2(0)); + bvec2 belowUpperBound = lessThanEqual(idx, ivec2(${o})); + + bool depthInRange = aboveLowerBound.x && belowUpperBound.x; + bool depthPlusOneInRange = aboveLowerBound.y && belowUpperBound.y; + + if(depthInRange || depthPlusOneInRange){ + vec4 z = vec4(0.); + vec4 xFragAtCurrentDepth; + z.xz = cache.xy; + if(depthPlusOneInRange && hasNextCol){ + xFragAtCurrentDepth = idx.y != d ? + getX(b, r, c, idx.y) : xFragAtOutputCoords; + z.y = getChannel(xFragAtCurrentDepth, vec2(c, idx.y)); + if(hasNextRow){ + z.w = getChannel(xFragAtCurrentDepth, vec2(c + 1, idx.y)); + } + } + cache.xy = z.yw; + sum += z * z; + } + } + vec4 result = xAtOutputCoords * ${a}; + setOutput(result); + } + `}}class NR{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;const t=e.strideHeight,s=e.strideWidth,n=e.dilationHeight,i=e.effectiveFilterHeight,r=e.effectiveFilterWidth,o=i-1-e.padInfo.top,a=r-1-e.padInfo.left,l=i*r-1;this.userCode=` + const ivec2 pads = ivec2(${o}, ${a}); + + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int d = coords[3]; + + ivec2 dyRCCorner = coords.yz - pads; + int dyRCorner = dyRCCorner.x; + int dyCCorner = dyRCCorner.y; + + // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d). + // ? = to be determined. : = across all values in that axis. + float dotProd = 0.0; + for (int wR = 0; wR < ${i}; + wR += ${n}) { + float dyR = float(dyRCorner + wR) / ${t}.0; + + if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) { + continue; + } + int idyR = int(dyR); + + for (int wC = 0; wC < ${r}; wC++) { + float dyC = float(dyCCorner + wC) / ${s}.0; + + if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || + fract(dyC) > 0.0) { + continue; + } + int idyC = int(dyC); + + float dyValue = getDy(b, idyR, idyC, d); + int maxPosValue = ${l} - int(getMaxPos(b, idyR, idyC, d)); + + // Get the current value, check it against the value from the + // position matrix. + int curPosValue = wR * ${r} + wC; + float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0); + + dotProd += dyValue * mask; + } + } + setOutput(dotProd); + } + `}}class CR{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;const t=e.strideDepth,s=e.strideHeight,n=e.strideWidth,i=e.dilationDepth,r=e.dilationHeight,o=e.dilationWidth,a=e.effectiveFilterDepth,l=e.effectiveFilterHeight,c=e.effectiveFilterWidth,p=a-1-e.padInfo.front,u=l-1-e.padInfo.top,h=c-1-e.padInfo.left,d=a*l*c-1;this.userCode=` + const ivec3 pads = ivec3(${p}, ${u}, ${h}); + + void main() { + ivec5 coords = getOutputCoords(); + int batch = coords.x; + int ch = coords.u; + + ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads; + int dyDCorner = dyCorner.x; + int dyRCorner = dyCorner.y; + int dyCCorner = dyCorner.z; + + // Convolve dy(?, ?, ?, ch) with pos mask(:, :, :, d) to get + // dx(xD, xR, xC, ch). + // ? = to be determined. : = across all values in that axis. + float dotProd = 0.0; + + for (int wD = 0; wD < ${a}; + wD += ${i}) { + float dyD = float(dyDCorner + wD) / ${t}.0; + + if (dyD < 0.0 || dyD >= ${e.outDepth}.0 || fract(dyD) > 0.0) { + continue; + } + int idyD = int(dyD); + + for (int wR = 0; wR < ${l}; + wR += ${r}) { + float dyR = float(dyRCorner + wR) / ${s}.0; + + if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || + fract(dyR) > 0.0) { + continue; + } + int idyR = int(dyR); + + for (int wC = 0; wC < ${c}; + wC += ${o}) { + float dyC = float(dyCCorner + wC) / ${n}.0; + + if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || + fract(dyC) > 0.0) { + continue; + } + int idyC = int(dyC); + + float dyValue = getDy(batch, idyD, idyR, idyC, ch); + int maxPosValue = ${d} - + int(getMaxPos(batch, idyD, idyR, idyC, ch)); + + // Get the current value, check it against the value from the + // position matrix. + int curPosValue = + wD * ${l} * ${c} + + wR * ${c} + wC; + float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0); + + dotProd += dyValue * mask; + } + } + } + setOutput(dotProd); + } + `}}class Af{constructor(e,t,s=!1,n=!1,i=!1,r=null,o=!1){this.variableNames=["matrixA","matrixB"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t;const a=s?e[1]:e[2],l=Math.ceil(a/2),c=s?"i * 2, rc.y":"rc.y, i * 2",p=n?"rc.z, i * 2":"i * 2, rc.z",u=s?["a.xxyy","a.zzww"]:["a.xxzz","a.yyww"],h=n?["b.xzxz","b.ywyw"]:["b.xyxy","b.zwzw"];let d="",m="";r&&(o?d=`vec4 activation(vec4 a) { + vec4 b = getPreluActivationWeightsAtOutCoords(); + ${r} + }`:d=`vec4 activation(vec4 x) { + ${r} + }`,m="result = activation(result);");const f=i?"result += getBiasAtOutCoords();":"";i&&this.variableNames.push("bias"),o&&this.variableNames.push("preluActivationWeights"),this.userCode=` + ${d} + + const float sharedDimension = ${l}.0; + + vec4 dot2x2ARowBCol(ivec3 rc) { + vec4 result = vec4(0); + for (int i = 0; i < ${l}; i++) { + vec4 a = getMatrixA(rc.x, ${c}); + vec4 b = getMatrixB(rc.x, ${p}); + + // These swizzled products need to be separately added. + // See: https://github.com/tensorflow/tfjs/issues/1735 + result += (${u[0]} * ${h[0]}); + result += (${u[1]} * ${h[1]}); + } + return result; + } + + void main() { + ivec3 rc = getOutputCoords(); + vec4 result = dot2x2ARowBCol(rc); + + ${f} + + ${m} + + setOutput(result); + } + `}}class RR{constructor(e,t,s){this.variableNames=["probs"],this.outputShape=[e,s],this.userCode=` + uniform float seed; + + void main() { + ivec2 coords = getOutputCoords(); + int batch = coords[0]; + + float r = random(seed); + float cdf = 0.0; + + for (int i = 0; i < ${t-1}; i++) { + cdf += getProbs(batch, i); + + if (r < cdf) { + setOutput(float(i)); + return; + } + } + + // If no other event happened, last event happened. + setOutput(float(${t-1})); + } + `}getCustomSetupFunc(e){return(t,s)=>{this.seedLoc==null&&(this.seedLoc=t.getUniformLocation(s,"seed")),t.gl.uniform1f(this.seedLoc,e)}}}class OR{constructor(e,t,s,n){this.variableNames=["indices"],this.outputShape=[e,t],this.userCode=` + void main() { + ivec2 coords = getOutputCoords(); + int index = round(getIndices(coords.x)); + setOutput(mix(float(${n}), float(${s}), + float(index == coords.y))); + } + `}}class ER{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outputShape=e;const t=e.length;if(t===0)this.userCode=` + void main() { + setOutput(vec4(getA(), 0., 0., 0.)); + } + `;else{const s=Et("rc",t),n=Ce(t),i=_B(t,e,s),r=DB(t,e[e.length-1],e[e.length-2],s),o=FB(e,s);this.userCode=` + void main() { + ${n} rc = getOutputCoords(); + + if(${i}) { + setOutput(vec4(0)); + } else { + ${r} + + setOutput(vec4(${o})); + } + } + `}}}function MB(e,t){const s=[];for(let n=0;n<=1;n++)for(let i=0;i<=1;i++){let r=`${n===0?"r":"rp1"}, ${i===0?"c":"cp1"}`;for(let o=2;o ${t[0]}`;let n="";for(let i=e-2;i= ${t[i]}`,i= ${t}; + bool rEdge = rp1 >= ${s}; + `}function FB(e,t){const s=e.length,n=MB(s,t);return s===1?`getA(rc), + rc + 1 >= ${e[0]} ? 0. : getA(rc + 1), + 0, 0`:`getA(${n[0]}), + cEdge ? 0. : getA(${n[1]}), + rEdge ? 0. : getA(${n[2]}), + rEdge || cEdge ? 0. : getA(${n[3]})`}class kR{constructor(e,t,s){this.variableNames=["x"],this.outputShape=t.map((l,c)=>l[0]+e[c]+l[1]);const n=e.length,i=Ce(n),r=t.map(l=>l[0]).join(","),o=t.map((l,c)=>l[0]+e[c]).join(","),a=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,n);if(n===1){this.userCode=` + int start = ${r}; + int end = ${o}; + + void main() { + int outC = getOutputCoords(); + if (outC < start || outC >= end) { + setOutput(float(${s})); + } else { + setOutput(getX(outC - start)); + } + } + `;return}this.userCode=` + ${i} start = ${i}(${r}); + ${i} end = ${i}(${o}); + + void main() { + ${i} outC = getOutputCoords(); + if (any(lessThan(outC, start)) || any(greaterThanEqual(outC, end))) { + setOutput(float(${s})); + } else { + ${i} coords = outC - start; + setOutput(getX(${a})); + } + } + `}}class _R{constructor(e,t,s){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map((m,f)=>m[0]+e[f]+m[1]);const n=e.length,i=Ce(n),r=t.map(m=>m[0]).join(","),o=t.map((m,f)=>m[0]+e[f]).join(","),a=Et("rc",n),l=Et("source",n),c=`${a[n-1]} < ${this.outputShape[n-1]}`,p=n===1?"source":`vec2(${l.slice(-2).join()})`,u=[`${i} rc = outputLoc;`,`${a[n-1]} += 1; + if(${c}) { + `,n===1?"":`} + rc = outputLoc; + ${a[n-2]} += 1; + if(${a[n-2]} < ${this.outputShape[n-2]}) {`,n===1?"":` ${a[n-1]} += 1; + if(${c}) {`],h=n===1?"rc < start || rc >= end":"any(lessThan(rc, start)) || any(greaterThanEqual(rc, end))";let d="";for(let m=0,f=n===1?2:4;m= ${e.inHeight}) { + continue; + } + + for (int wC = 0; wC < ${u}; + wC += ${c}) { + int xC = xCCorner + wC; + + if (xC < 0 || xC >= ${e.inWidth}) { + continue; + } + + float value = getX(batch, xR, xC, d); + + // If a min / max value has already been found, use it. If not, + // use the current value. + float currMinMaxValue = mix( + value, minMaxValue, minMaxValueFound); + if (value ${R} currMinMaxValue) { + minMaxValue = value; + minMaxValueFound = 1.0; + minMaxPosition = ${n?i?f:y:`wR * ${u} + wC`}; + } + } + } + setOutput(float(minMaxPosition)); + } + `;return}const S="max";let x=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="avg"&&(x="avgValue / count");const I=Math.floor(r/4)*4,A=r%4,k=` + if (${m}) { + avgValue += dot(values, ones); + } else { + minMaxValue = ${S}(values, minMaxValue); + } + `;this.userCode=` + const ivec2 strides = ivec2(${o}, ${a}); + const ivec2 pads = ivec2(${h}, ${d}); + const float initializationValue = ${b}; + const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0); + + float count = 0.0; + + float getValue(int batch, int xR, int xC, int d) { + if (xC < 0 || xC >= ${e.inWidth}) { + return initializationValue; + } + count += 1.0; + return getX(batch, xR, xC, d); + } + + void main() { + ivec4 coords = getOutputCoords(); + int batch = coords[0]; + int d = coords[3]; + + ivec2 xRCCorner = coords.yz * strides - pads; + int xRCorner = xRCCorner.x; + int xCCorner = xRCCorner.y; + + // max/min x(?, ?, d) to get y(yR, yC, d). + // ? = to be determined + vec4 minMaxValue = vec4(${b}); + float avgValue = 0.0; + count = 0.0; + + for (int wR = 0; wR < ${p}; + wR += ${l}) { + int xR = xRCorner + wR; + + if (xR < 0 || xR >= ${e.inHeight}) { + continue; + } + + for (int wC = 0; wC < ${I}; wC += 4) { + int xC = xCCorner + wC * ${c}; + + vec4 values = vec4( + getValue(batch, xR, xC, d), + getValue(batch, xR, xC + ${c}, d), + getValue(batch, xR, xC + 2 * ${c}, d), + getValue(batch, xR, xC + 3 * ${c}, d) + ); + + ${k} + } + + int xC = xCCorner + ${I}; + if (${A===1}) { + vec4 values = vec4( + getValue(batch, xR, xC, d), + initializationValue, + initializationValue, + initializationValue + ); + + ${k} + } else if (${A===2}) { + vec4 values = vec4( + getValue(batch, xR, xC, d), + getValue(batch, xR, xC + ${c}, d), + initializationValue, + initializationValue + ); + + ${k} + } else if (${A===3}) { + vec4 values = vec4( + getValue(batch, xR, xC, d), + getValue(batch, xR, xC + ${c}, d), + getValue(batch, xR, xC + 2 * ${c}, d), + initializationValue + ); + + ${k} + } + } + setOutput(${x}); + } + `}}class Nf{constructor(e,t,s,n=!1,i=!1){if(this.variableNames=["x"],t==="avg"&&s)throw new Error("Cannot compute positions for average pool.");const r=e.filterWidth,o=e.strideDepth,a=e.strideHeight,l=e.strideWidth,c=e.dilationDepth,p=e.dilationHeight,u=e.dilationWidth,h=e.effectiveFilterDepth,d=e.effectiveFilterHeight,m=e.effectiveFilterWidth,f=e.padInfo.front,y=e.padInfo.top,b=e.padInfo.left;this.outputShape=e.outShape;const S=t==="avg";let x="0.0";if(S||(x="-1.0 / 1e-20"),s){const F=">=";this.userCode=` + const ivec3 strides = + ivec3(${o}, ${a}, ${l}); + const ivec3 pads = ivec3(${f}, ${y}, ${b}); + + void main() { + ivec5 coords = getOutputCoords(); + int batch = coords.x; + int ch = coords.u; + + ivec3 xCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads; + int xDCorner = xCorner.x; + int xRCorner = xCorner.y; + int xCCorner = xCorner.z; + + // max/min x(?, ?, ?, ch) to get y(yD, yR, yC, ch). + // ? = to be determined + float minMaxValue = 0.0; + float minMaxValueFound = 0.0; + int minMaxPosition = 0; + + for (int wD = 0; wD < ${h}; + wD += ${c}) { + int xD = xDCorner + wD; + + if (xD < 0 || xD >= ${e.inDepth}) { + continue; + } + + for (int wR = 0; wR < ${d}; + wR += ${p}) { + int xR = xRCorner + wR; + + if (xR < 0 || xR >= ${e.inHeight}) { + continue; + } + + for (int wC = 0; wC < ${m}; + wC += ${u}) { + int xC = xCCorner + wC; + + if (xC < 0 || xC >= ${e.inWidth}) { + continue; + } + + float value = getX(batch, xD, xR, xC, ch); + + // If a min / max value has already been found, use it. If not, + // use the current value. + float currMinMaxValue = mix( + value, minMaxValue, minMaxValueFound); + if (value ${F} currMinMaxValue) { + minMaxValue = value; + minMaxValueFound = 1.0; + minMaxPosition = ${n?i?`(((batch * ${e.inDepth} + xD) * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + ch`:`((xD * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + ch`:`wD * ${d} * ${m} + + wR * ${m} + wC`}; + } + } + } + } + setOutput(float(minMaxPosition)); + } + `;return}const I="max";let A=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="avg"&&(A="avgValue / count");const k=Math.floor(r/4)*4,R=r%4,D=` + if (${S}) { + avgValue += dot(values, ones); + } else { + minMaxValue = ${I}(values, minMaxValue); + } + `;this.userCode=` + const ivec3 strides = + ivec3(${o}, ${a}, ${l}); + const ivec3 pads = ivec3(${f}, ${y}, ${b}); + const float initializationValue = ${x}; + const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0); + + float count = 0.0; + + float getValue(int batch, int xD, int xR, int xC, int ch) { + if (xC < 0 || xC >= ${e.inWidth}) { + return initializationValue; + } + count += 1.0; + return getX(batch, xD, xR, xC, ch); + } + + void main() { + ivec5 coords = getOutputCoords(); + int batch = coords.x; + int ch = coords.u; + + ivec3 xCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads; + int xDCorner = xCorner.x; + int xRCorner = xCorner.y; + int xCCorner = xCorner.z; + + // max/min x(?, ?, ?, d) to get y(yD, yR, yC, ch). + // ? = to be determined + vec4 minMaxValue = vec4(${x}); + float avgValue = 0.0; + count = 0.0; + + for (int wD = 0; wD < ${h}; + wD += ${c}) { + int xD = xDCorner + wD; + + if (xD < 0 || xD >= ${e.inDepth}) { + continue; + } + + for (int wR = 0; wR < ${d}; + wR += ${p}) { + int xR = xRCorner + wR; + + if (xR < 0 || xR >= ${e.inHeight}) { + continue; + } + + for (int wC = 0; wC < ${k}; wC += 4) { + int xC = xCCorner + wC * ${u}; + + vec4 values = vec4( + getValue(batch, xD, xR, xC, ch), + getValue(batch, xD, xR, xC + ${u}, ch), + getValue(batch, xD, xR, xC + 2 * ${u}, ch), + getValue(batch, xD, xR, xC + 3 * ${u}, ch) + ); + + ${D} + } + + int xC = xCCorner + ${k}; + if (${R===1}) { + vec4 values = vec4( + getValue(batch, xD, xR, xC, ch), + initializationValue, + initializationValue, + initializationValue + ); + + ${D} + } else if (${R===2}) { + vec4 values = vec4( + getValue(batch, xD, xR, xC, ch), + getValue(batch, xD, xR, xC + ${u}, ch), + initializationValue, + initializationValue + ); + + ${D} + } else if (${R===3}) { + vec4 values = vec4( + getValue(batch, xD, xR, xC, ch), + getValue(batch, xD, xR, xC + ${u}, ch), + getValue(batch, xD, xR, xC + 2 * ${u}, ch), + initializationValue + ); + + ${D} + } + } + setOutput(${A}); + } + } + `}}class Cf{constructor(e,t){this.variableNames=["x"];const s=e.windowSize,n=e.batchSize,i=e.inSize,r=Math.ceil(i/s);this.outputShape=[n,r];let o="0.0",a="";t==="prod"?o="1.0":t==="min"?(o="1.0 / 1e-20",a="min"):t==="max"&&(o="-1.0 / 1e-20",a="max");let l=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="sum"?l="sumValue":t==="prod"?l="prodValue":t==="all"?l="allValue":t==="any"&&(l="anyValue");const c=Math.floor(s/4)*4,p=s%4;let u=` + if (${t==="sum"}) { + sumValue += dot(values, ones); + } else if (${t==="prod"}) { + vec2 tmp = vec2(values[0], values[1]) * vec2(values[2], values[3]); + prodValue *= tmp[0] * tmp[1]; + } else { + minMaxValue = ${a}(values, minMaxValue); + } + `,h="vec4";t==="all"?(o="1.0",u=` + bool reducedAllValue = all(values); + float floatedReducedAllValue = float(reducedAllValue); + allValue = float(allValue >= 1.0 && floatedReducedAllValue >= 1.0); + `,h="bvec4"):t==="any"&&(o="0.0",u=` + bool reducedAnyValue = any(values); + float floatedReducedAnyValue = float(reducedAnyValue); + anyValue = float(anyValue >= 1.0 || floatedReducedAnyValue >= 1.0); + `,h="bvec4");let d="";i%s>0&&(d=` + if (inIdx < 0 || inIdx >= ${i}) { + return initializationValue; + } + `),this.userCode=` + const float initializationValue = ${o}; + const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0); + + float getValue(int batch, int inIdx) { + ${d} + return getX(batch, inIdx); + } + + void main() { + ivec2 coords = getOutputCoords(); + int batch = coords[0]; + int outIdx = coords[1]; + int inOffset = outIdx * ${s}; + + vec4 minMaxValue = vec4(${o}); + float prodValue = 1.0; + float sumValue = 0.0; + float allValue = 1.0; + float anyValue = 0.0; + + for (int i = 0; i < ${c}; i += 4) { + int inIdx = inOffset + i; + ${h} values = ${h}( + getValue(batch, inIdx), + getValue(batch, inIdx + 1), + getValue(batch, inIdx + 2), + getValue(batch, inIdx + 3) + ); + + ${u} + } + + int inIdx = inOffset + ${c}; + if (${p===1}) { + ${h} values = ${h}( + getValue(batch, inIdx), + initializationValue, + initializationValue, + initializationValue + ); + + ${u} + } else if (${p===2}) { + ${h} values = ${h}( + getValue(batch, inIdx), + getValue(batch, inIdx + 1), + initializationValue, + initializationValue + ); + + ${u} + } else if (${p===3}) { + ${h} values = ${h}( + getValue(batch, inIdx), + getValue(batch, inIdx + 1), + getValue(batch, inIdx + 2), + initializationValue + ); + + ${u} + } + setOutput(${l}); + } + `}}class Rf{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e;let s="";for(let n=0;n<4;n++){let i="thisRC = rc;";n%2===1&&(i+="thisRC.z += 1;"),n>1&&(i+="thisRC.y += 1;"),s+=` + ${i} + ${n>0?"if(thisRC.y < rows && thisRC.z < cols){":""} + int flatIndex = getFlatIndex(thisRC); + + ivec3 inputRC = inputCoordsFromReshapedOutCoords(flatIndex); + vec2 inputRCInnerDims = vec2(float(inputRC.y),float(inputRC.z)); + + result[${n}] = + getChannel(getA(inputRC.x, inputRC.y, inputRC.z), inputRCInnerDims); + ${n>0?"}":""} + `}this.userCode=` + ${UB(t)} + ${Ua(e)} + + void main() { + ivec3 rc = getOutputCoords(); + + vec4 result = vec4(0.); + + ivec3 thisRC; + int rows = ${e[1]}; + int cols = ${e[2]}; + + ${s} + + setOutput(result); + } + `}}function UB(e){const t=zn(["r","c","d"],e);return` + ivec3 inputCoordsFromReshapedOutCoords(int index) { + ${t} + return ivec3(r, c, d); + } + `}class DR{constructor(e,t,s){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t.shape;const[,n,i]=t.shape,[,r,o]=e.shape,a=[s&&r>1?n-1:n,s&&o>1?i-1:i],l=[s&&r>1?r-1:r,s&&o>1?o-1:o],c=a[0]/l[0],p=a[1]/l[1],u=1/c,h=1/p,d=Math.ceil(u)*2+2,m=Math.ceil(h)*2+2;this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int d = coords[3]; + int r = coords[1]; + int c = coords[2]; + + float accumulator = 0.0; + + const float heightScale = float(${c}); + const float widthScale = float(${p}); + + const float invHeightScale = float(${u}); + const float invWidthScale = float(${h}); + + const int winHeight = int(${d}); + const int winWidth = int(${m}); + + // Compute bounds for where in dy we will look + float startRLerp = floor(float(r) * invHeightScale); + int startDyR = int(startRLerp - float(winHeight / 2)); + + float startCLerp = floor(float(c) * invWidthScale); + int startDyC = int(startCLerp - float(winWidth / 2)); + + // Loop over dy + for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) { + int dyR = dyROffset + startDyR; + + // Guard against the window exceeding the bounds of dy + if (dyR < 0 || dyR >= ${r}) { + continue; + } + + for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) { + int dyC = dyCOffset + startDyC; + + // Guard against the window exceeding the bounds of dy + if (dyC < 0 || dyC >= ${o}) { + continue; + } + + float dxR = float(dyR) * heightScale; + int topDxRIndex = int(floor(dxR)); + int bottomDxRIndex = int(min(ceil(dxR), ${n-1}.0)); + float dxRLerp = dxR - float(topDxRIndex); + float inverseDxRLerp = 1.0 - dxRLerp; + + float dxC = float(dyC) * widthScale; + int leftDxCIndex = int(floor(dxC)); + int rightDxCIndex = int(min(ceil(dxC), ${i-1}.0)); + float dxCLerp = dxC - float(leftDxCIndex); + float inverseDxCLerp = 1.0 - dxCLerp; + + if (r == topDxRIndex && c == leftDxCIndex) { + // topLeft + accumulator += + getDy(b, dyR, dyC, d) * inverseDxRLerp * inverseDxCLerp; + } + + if (r == topDxRIndex && c == rightDxCIndex) { + // topRight + accumulator += getDy(b, dyR, dyC, d) * inverseDxRLerp * dxCLerp; + } + + if (r == bottomDxRIndex && c == leftDxCIndex) { + // bottomLeft + accumulator += getDy(b, dyR, dyC, d) * dxRLerp * inverseDxCLerp; + } + + if (r == bottomDxRIndex && c == rightDxCIndex) { + // bottomRight + accumulator += getDy(b, dyR, dyC, d) * dxRLerp * dxCLerp; + } + } + } + // End loop over dy + + setOutput(accumulator); + } + `}}class FR{constructor(e,t,s,n){this.variableNames=["A"],this.outputShape=[];const[i,r,o,a]=e;this.outputShape=[i,t,s,a];const l=[n&&t>1?r-1:r,n&&s>1?o-1:o],c=[n&&t>1?t-1:t,n&&s>1?s-1:s];this.userCode=` + const vec2 effectiveInputOverOutputRatioRC = vec2( + ${l[0]/c[0]}, + ${l[1]/c[1]}); + const vec2 inputShapeRC = vec2(${r}.0, ${o}.0); + + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int d = coords[3]; + ivec2 yRC = coords.yz; + + // Fractional source index. + vec2 sourceFracIndexRC = vec2(yRC) * effectiveInputOverOutputRatioRC; + + // Compute the four integer indices. + ivec2 sourceFloorRC = ivec2(sourceFracIndexRC); + ivec2 sourceCeilRC = ivec2( + min(inputShapeRC - 1.0, ceil(sourceFracIndexRC))); + + float topLeft = getA(b, sourceFloorRC.x, sourceFloorRC.y, d); + float bottomLeft = getA(b, sourceCeilRC.x, sourceFloorRC.y, d); + float topRight = getA(b, sourceFloorRC.x, sourceCeilRC.y, d); + float bottomRight = getA(b, sourceCeilRC.x, sourceCeilRC.y, d); + + vec2 fracRC = sourceFracIndexRC - vec2(sourceFloorRC); + + float top = topLeft + (topRight - topLeft) * fracRC.y; + float bottom = bottomLeft + (bottomRight - bottomLeft) * fracRC.y; + float newValue = top + (bottom - top) * fracRC.x; + + setOutput(newValue); + } + `}}class MR{constructor(e,t,s,n){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];const[i,r,o,a]=e;this.outputShape=[i,t,s,a];const l=[n&&t>1?r-1:r,n&&s>1?o-1:o],c=[n&&t>1?t-1:t,n&&s>1?s-1:s];this.userCode=` + const vec3 effectiveInputOverOutputRatioRC = vec3( + ${l[0]/c[0]}, + ${l[1]/c[1]}, + ${l[1]/c[1]}); + const vec3 inputShapeRC = vec3(${r}.0, ${o}.0, + ${o}.0); + + float getAValue(int b, int r, int c, int d) { + return getChannel(getA(b, r, c, d), vec2(c, d)); + } + + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int d = coords[3]; + // Calculate values for next column in yRC.z. + ivec3 yRC = coords.yzz + ivec3(0, 0, 1); + + // Fractional source index. + vec3 sourceFracIndexRC = vec3(yRC) * effectiveInputOverOutputRatioRC; + + // Compute the four integer indices. + ivec3 sourceFloorRC = ivec3(sourceFracIndexRC); + ivec3 sourceCeilRC = ivec3( + min(inputShapeRC - 1.0, ceil(sourceFracIndexRC))); + + // Should we calculate next column and row elements in 2x2 packed cell. + bool hasNextCol = d < ${a-1}; + bool hasNextRow = coords.z < ${s-1}; + + // In parallel, construct four corners for all four components in + // packed 2x2 cell. + vec4 topLeft = vec4( + getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d), + hasNextCol ? getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d + 1) + : 0.0, + hasNextRow ? getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d) + : 0.0, + (hasNextRow && hasNextCol) ? + getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d + 1) : 0.0); + + vec4 bottomLeft = vec4( + getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d), + hasNextCol ? getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d + 1) + : 0.0, + hasNextRow ? getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d) + : 0.0, + (hasNextRow && hasNextCol) ? + getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d + 1) : 0.0); + + vec4 topRight = vec4( + getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d), + hasNextCol ? getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d + 1) + : 0.0, + hasNextRow ? getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d) + : 0.0, + (hasNextRow && hasNextCol) ? + getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d + 1) : 0.0); + + vec4 bottomRight = vec4( + getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d), + hasNextCol ? getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d + 1) + : 0.0, + hasNextRow ? getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d) + : 0.0, + (hasNextRow && hasNextCol) ? + getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d + 1) : 0.0); + + vec3 fracRC = sourceFracIndexRC - vec3(sourceFloorRC); + + vec4 top = mix(topLeft, topRight, fracRC.yyzz); + vec4 bottom = mix(bottomLeft, bottomRight, fracRC.yyzz); + vec4 newValue = mix(top, bottom, fracRC.x); + + setOutput(newValue); + } + `}}class UR{constructor(e,t,s){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t.shape;const[,n,i]=t.shape,[,r,o]=e.shape,a=[s&&r>1?n-1:n,s&&o>1?i-1:i],l=[s&&r>1?r-1:r,s&&o>1?o-1:o],c=a[0]/l[0],p=a[1]/l[1],u=1/c,h=1/p,d=Math.ceil(u)*2+2,m=Math.ceil(h)*2+2;this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int d = coords[3]; + int r = coords[1]; + int c = coords[2]; + + float accumulator = 0.0; + + const float heightScale = float(${c}); + const float widthScale = float(${p}); + + const float invHeightScale = float(${u}); + const float invWidthScale = float(${h}); + + const int winHeight = int(${d}); + const int winWidth = int(${m}); + + // Compute bounds for where in dy we will look + float startRLerp = floor(float(r) * invHeightScale); + int startDyR = int(floor(startRLerp - float(winHeight / 2))); + + float startCLerp = floor(float(c) * invWidthScale); + int startDyC = int(floor(startCLerp - float(winWidth / 2))); + + // Loop over dy + for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) { + int dyR = dyROffset + startDyR; + + // Guard against the window exceeding the bounds of dy + if (dyR < 0 || dyR >= ${r}) { + continue; + } + + for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) { + int dyC = dyCOffset + startDyC; + + // Guard against the window exceeding the bounds of dy + if (dyC < 0 || dyC >= ${o}) { + continue; + } + + float sourceFracRow = + float(${a[0]}) * + (float(dyR) / float(${l[0]})); + + float sourceFracCol = + float(${a[1]}) * + (float(dyC) / float(${l[1]})); + + int sourceNearestRow = int(min( + float(int(${n}) - 1), + ${s} ? float(round(sourceFracRow)) : + float(floor(sourceFracRow)))); + + int sourceNearestCol = int(min( + float(int(${i}) - 1), + ${s} ? float(round(sourceFracCol)) : + float(floor(sourceFracCol)))); + + if (r == sourceNearestRow && c == sourceNearestCol) { + accumulator += getDy(b, dyR, dyC, d); + } + } + } + // End loop over dy + + setOutput(accumulator); + } + `}}class $R{constructor(e,t,s,n){this.variableNames=["A"],this.outputShape=[];const[i,r,o,a]=e;this.outputShape=[i,t,s,a];const l=[n&&t>1?r-1:r,n&&s>1?o-1:o],c=[n&&t>1?t-1:t,n&&s>1?s-1:s],p=n?"0.5":"0.0";this.userCode=` + const vec2 effectiveInputOverOutputRatioRC = vec2( + ${l[0]/c[0]}, + ${l[1]/c[1]}); + const vec2 inputShapeRC = vec2(${r}.0, ${o}.0); + + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int d = coords[3]; + ivec2 yRC = coords.yz; + + // Fractional source index. + vec2 sourceFracIndexRC = vec2(yRC) * effectiveInputOverOutputRatioRC; + + // Compute the coordinators of nearest neighbor point. + ivec2 sourceNearestRC = ivec2( + min(inputShapeRC - 1.0, floor(sourceFracIndexRC + ${p}))); + + float newValue = getA(b, sourceNearestRC.x, sourceNearestRC.y, d); + + setOutput(newValue); + } + `}}class WR{constructor(e,t){this.variableNames=["x"];const s=e.length;if(s>4)throw new Error(`WebGL backend: Reverse of rank-${s} tensor is not yet supported`);if(this.outputShape=e,s===1){this.userCode=` + void main() { + int coord = getOutputCoords(); + setOutput(getX(${e[0]} - coord - 1)); + } + `;return}const n=o=>t.indexOf(o)!==-1&&e[o]!==1?`${e[o]} - coords[${o}] - 1`:`coords[${o}]`,i=e.map((o,a)=>n(a)).join(","),r=Ce(s);this.userCode=` + void main() { + ${r} coords = getOutputCoords(); + setOutput(getX(${i})); + } + `}}class zR{constructor(e,t){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0;const s=e.length;if(s>4)throw new Error(`WebGL backend: Reverse of rank-${s} tensor is not yet supported`);this.outputShape=e;const n=Et("rc",s),i=`${n[s-1]} + 1 < ${this.outputShape[s-1]}`,r=`${n[s-2]} + 1 < ${this.outputShape[s-2]}`,o=Ce(s);s===1?this.userCode=` + void main(){ + int rc = getOutputCoords(); + vec4 result = vec4(0.); + result.r = getChannel(getX(${e[0]} - rc - 1), + ${e[0]} - rc - 1); + if(${i}){ + result.g = getChannel(getX(${e[0]} - (rc + 1) - 1), + ${e[0]} - (rc + 1) - 1); + } + setOutput(result); + } + `:this.userCode=` + void main() { + ${o} rc = getOutputCoords(); + vec4 result = vec4(0.); + result.r = ${a(n.slice())}; + if(${i}){ + result.g = ${l(n.slice())}; + } + if(${r}) { + result.b = ${c(n.slice())}; + if(${i}) { + result.a = ${p(n.slice())}; + } + } + setOutput(result); + } + `;function a(d){return u(d)}function l(d){return d[s-1]="("+d[s-1]+" + 1)",u(d)}function c(d){return d[s-2]="("+d[s-2]+" + 1)",u(d)}function p(d){return d[s-1]="("+d[s-1]+" + 1)",d[s-2]="("+d[s-2]+" + 1)",u(d)}function u(d){const m=e.map((b,S)=>h(S,d)),f=m.join(","),y=m.slice(-2).join(",");return`getChannel(getX(${f}), vec2(${y}))`}function h(d,m){return t.indexOf(d)!==-1&&e[d]!==1?`${e[d]} - ${m[d]} - 1`:`${m[d]}`}}}class wx{constructor(e,t,s,n,i,r,o=!0){this.variableNames=["updates","indices","defaultValue"],this.outputShape=r;const a=Ce(i.length),l=Ce(r.length);let c="";s===1?c="i":s===2&&(c="i, j");const p=`getIndices(${c})`;let u="";n===1?u="i":n===2&&(u="i, coords[1]");const h=`getUpdates(${u})`,d=t>1?"strides[j]":"strides";this.userCode=` + ${a} strides = ${a}(${i}); + + void main() { + ${l} coords = getOutputCoords(); + float sum = 0.0; + bool found = false; + for (int i = 0; i < ${e}; i++) { + int flattenedIndex = 0; + for (int j = 0; j < ${t}; j++) { + int index = round(${p}); + flattenedIndex += index * ${d}; + } + if (flattenedIndex == coords[0]) { + sum += ${h}; + found = true; + } + } + setOutput(mix(getDefaultValue(), sum, float(found))); + } + `}}class BR{constructor(e,t){this.variableNames=["x","segmentIds"];const s=e.windowSize,n=e.batchSize,i=e.inSize,r=e.numSegments,o=r*Math.ceil(i/s);this.outputShape=[n,o];const a="0.0",l="sumValue",c=Math.floor(s/4)*4,p=s%4,u=` + sumValue += dot(values, segFilter); + `;let h="";i%s>0&&(h=` + if (inIdx < 0 || inIdx >= ${i}) { + return initializationValue; + } + `);let d="";i%s>0&&(d=` + if (inIdx < 0 || inIdx >= ${i}) { + return -1.0; + } + `),this.userCode=` + const float initializationValue = ${a}; + + float getValue(int batch, int inIdx) { + ${h} + return getX(batch, inIdx); + } + + float getSegmentIdAtIndex(int inIdx) { + ${d} + return getSegmentIds(inIdx); + } + + void main() { + ivec2 coords = getOutputCoords(); + int batch = coords[0]; + int outIdx = coords[1]; + int inOffset = int(floor(float(outIdx) / float( + ${r})) * float(${s})); + int currentSeg = int(mod(float(outIdx), float(${r}))); + + float sumValue = 0.0; + + for (int i = 0; i < ${c}; i += 4) { + int inIdx = inOffset + i; + vec4 values = vec4( + getValue(batch, inIdx), + getValue(batch, inIdx + 1), + getValue(batch, inIdx + 2), + getValue(batch, inIdx + 3) + ); + + vec4 segFilter = vec4( + int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0, + int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0, + int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0, + int(getSegmentIdAtIndex(inIdx + 3)) == currentSeg ? 1 : 0 + ); + + ${u} + } + + int inIdx = inOffset + ${c}; + if (${p===1}) { + vec4 values = vec4( + getValue(batch, inIdx), + initializationValue, + initializationValue, + initializationValue + ); + + int inIdxSeg = int(getSegmentIdAtIndex(inIdx)); + + vec4 segFilter = vec4( + int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0, + 0, + 0, + 0 + ); + + ${u} + } else if (${p===2}) { + vec4 values = vec4( + getValue(batch, inIdx), + getValue(batch, inIdx + 1), + initializationValue, + initializationValue + ); + + vec4 segFilter = vec4( + int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0, + int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0, + 0, + 0 + ); + + ${u} + } else if (${p===3}) { + vec4 values = vec4( + getValue(batch, inIdx), + getValue(batch, inIdx + 1), + getValue(batch, inIdx + 2), + initializationValue + ); + + vec4 segFilter = vec4( + int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0, + int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0, + int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0, + 0 + ); + + ${u} + } + setOutput(${l}); + } + `}}class PR{constructor(e,t,s){this.variableNames=["c","a","b"],this.outputShape=t;let n,i;if(s>4)throw Error(`Where for rank ${s} is not yet supported`);if(s===1)i="resRC",n="resRC";else{const o=["resRC.x","resRC.y","resRC.z","resRC.w"],a=[],l=[];for(let c=0;c= 1.0) { + setOutput(getA(${i})); + } else { + setOutput(getB(${i})); + } + } + `}}class jR{constructor(e){this.variableNames=["source"],this.outputShape=e,this.rank=e.length;const t=Ce(this.rank),s=`uniform int start[${this.rank}];`,n=$B(this.rank);let i;const r=e.map((o,a)=>`sourceLoc.${xx[a]} = start[${a}] + coords.${xx[a]};`);i=` + ${t} sourceLoc; + ${t} coords = getOutputCoords(); + ${r.join(` +`)} + `,this.userCode=` + ${s} + void main() { + ${i} + setOutput(getSource(${n})); + } + `}getCustomSetupFunc(e){if(e.length!==this.rank)throw Error(`The rank (${this.rank}) of the program must match the length of start (${e.length})`);return(t,s)=>{if(this.startLoc==null&&(this.startLoc=t.getUniformLocationNoThrow(s,"start"),this.startLoc==null))return;t.gl.uniform1iv(this.startLoc,e)}}}const xx=["x","y","z","w","u","v"];function $B(e){if(e===1)return"sourceLoc";if(e<=6)return xx.slice(0,e).map(t=>"sourceLoc."+t).join(",");throw Error(`Slicing for rank ${e} is not yet supported`)}class VR{constructor(e){this.variableNames=["source"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.rank=e.length;const t=Ce(this.rank),s=Et("coords",this.rank),n=Et("sourceLoc",this.rank),i=this.rank===1?"sourceLoc":`vec2(${n.slice(-2).join()})`,r=`getChannel(getSource(${n.join()}), ${i})`,o=` + result.x = ${r}; + if (++${s[this.rank-1]} < ${e[this.rank-1]}) { + ++${n[this.rank-1]}; + result.y = ${r}; + --${n[this.rank-1]}; + } + `,a=this.rank===1?"":` + --${s[this.rank-1]}; + if (++${s[this.rank-2]} < ${e[this.rank-2]}) { + ++${n[this.rank-2]}; + result.z = ${r}; + if (++${s[this.rank-1]} < ${e[this.rank-1]}) { + ++${n[this.rank-1]}; + result.w = ${r}; + } + } + `,l=this.rank<=4?`sourceLoc = coords + + ${t}(${e.map((c,p)=>`start[${p}]`).join()});`:e.map((c,p)=>`${n[p]} = ${s[p]} + start[${p}];`).join(` +`);this.userCode=` + uniform int start[${this.rank}]; + void main() { + ${t} coords = getOutputCoords(); + ${t} sourceLoc; + ${l} + vec4 result = vec4(0.); + ${o} + ${a} + setOutput(result); + } + `}getCustomSetupFunc(e){if(e.length!==this.rank)throw Error(`The rank (${this.rank}) of the program must match the length of start (${e.length})`);return(t,s)=>{if(this.startLoc==null&&(this.startLoc=t.getUniformLocationNoThrow(s,"start"),this.startLoc==null))return;t.gl.uniform1iv(this.startLoc,e)}}}class GR{constructor(e,t,s){this.variableNames=["x"],this.outputShape=s;const n=s.length,i=Ce(s.length),r=Ce(s.length);let o="";if(n===1)o="coords * strides + begin";else{let a=0;o=s.map((l,c)=>(a++,s.length===1?`coords * strides[${c}] + begin[${c}]`:`coords[${a-1}] * strides[${c}] + begin[${c}]`)).join(",")}this.userCode=` + ${i} begin = ${i}(${e}); + ${i} strides = ${i}(${t}); + + void main() { + ${r} coords = getOutputCoords(); + setOutput(getX(${o})); + } + `}}class KR{constructor(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.logEnabled=!1,this.usedTextures={}}acquireTexture(e,t,s){const n=qR(t,s),i=YR(e,n,s);i in this.freeTextures||(this.freeTextures[i]=[]),i in this.usedTextures||(this.usedTextures[i]=[]);const r=HR(e,n,this.gpgpu.gl,this.gpgpu.textureConfig,s);if(this.freeTextures[i].length>0){this.numFreeTextures--,this.numUsedTextures++,this._numBytesFree-=r,this.log();const a=this.freeTextures[i].shift();return this.usedTextures[i].push(a),a}let o;return n===Kt.PACKED_2X2_FLOAT32?o=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):n===Kt.PACKED_2X2_FLOAT16?o=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):n===Kt.UNPACKED_FLOAT32?o=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):n===Kt.UNPACKED_FLOAT16?o=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):n===Kt.PACKED_4X1_UNSIGNED_BYTE&&(o=this.gpgpu.createUnsignedBytesMatrixTexture(e[0],e[1])),this.usedTextures[i].push(o),this.numUsedTextures++,this._numBytesAllocated+=r,this.log(),o}releaseTexture(e,t,s,n){if(this.freeTextures==null)return;const i=qR(s,n),r=YR(t,i,n);r in this.freeTextures||(this.freeTextures[r]=[]);const o=HR(t,i,this.gpgpu.gl,this.gpgpu.textureConfig,n),a=$().get("WEBGL_DELETE_TEXTURE_THRESHOLD");a!==-1&&this._numBytesAllocated>a?(this.gpgpu.deleteMatrixTexture(e),this._numBytesAllocated-=o):(this.freeTextures[r].push(e),this.numFreeTextures++,this._numBytesFree+=o),this.numUsedTextures--;const l=this.usedTextures[r],c=l.indexOf(e);if(c<0)throw new Error("Cannot release a texture that was never provided by this texture manager");l.splice(c,1),this.log()}log(){if(!this.logEnabled)return;const e=this.numFreeTextures+this.numUsedTextures;console.log("Free/Used",`${this.numFreeTextures} / ${this.numUsedTextures}`,`(${e})`);const t=this._numBytesFree/this._numBytesAllocated;console.log(`Bytes allocated: ${this._numBytesAllocated}`),console.log(`Bytes unused: ${this._numBytesFree} (${Math.round(100*t)}%)`)}get numBytesAllocated(){return this._numBytesAllocated}get numBytesFree(){return this._numBytesFree}getNumUsedTextures(){return this.numUsedTextures}getNumFreeTextures(){return this.numFreeTextures}dispose(){if(this.freeTextures==null)return;for(const e in this.freeTextures)this.freeTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t)});for(const e in this.usedTextures)this.usedTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t)});this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}function WB(e,t){const s=e;if(t===s.R32F)return 4;if(t===s.R16F)return 2;if(t===s.RGBA32F)return 16;if(t===e.RGBA)return 16;if(t===s.RGBA16F)return 8;throw new Error(`Unknown internal format ${t}`)}function HR(e,t,s,n,i){const r=zB(t,n);let o;if(i){const[l,c]=oi(e[0],e[1]);o=l*c}else{const[l,c]=_o(e[0],e[1]);o=l*c}const a=WB(s,r);return o*a}function zB(e,t){switch(e){case Kt.PACKED_2X2_FLOAT32:return gx(t);case Kt.PACKED_2X2_FLOAT16:return yx(t);case Kt.UNPACKED_FLOAT32:return dx(t);case Kt.UNPACKED_FLOAT16:return mx(t);case Kt.PACKED_4X1_UNSIGNED_BYTE:return fx(t);default:throw new Error(`Unknown physical texture type ${e}`)}}function BB(e){return $().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?e?Kt.PACKED_2X2_FLOAT32:Kt.UNPACKED_FLOAT32:e?Kt.PACKED_2X2_FLOAT16:Kt.UNPACKED_FLOAT16}function qR(e,t){if(e===ns.UPLOAD)return Kt.PACKED_2X2_FLOAT32;if(e===ns.RENDER||e==null)return BB(t);if(e===ns.DOWNLOAD||e===ns.PIXELS)return Kt.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${e}`)}function YR(e,t,s){return`${e[0]}_${e[1]}_${t}_${s}`}class XR{constructor(e,t){this.variableNames=["A"];const s=new Array(e.length);for(let r=0;r5)throw Error(`Tile for rank ${t} is not yet supported`);if(t===1)return`imod(resRC, ${e[0]})`;const s=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u"],n=[];for(let i=0;i= 0.0) ? scale * x : scaleAlpha * (exp(x) - 1.0); +`;function QR(e=0){return Bn+` + return x > 0.0 ? 1.0 : float(${e}); + `}const Ix="return -x;",Ax="return ceil(x);",Nx="return floor(x);",e2=` + if (isnan(x)) { return 0.0; } + return sign(x); +`,t2="return float(isnan(x));",s2="return float(isinf(x));",n2="return float(!isnan(x) && !isinf(x));",i2=` + // OpenGL ES does not support round function. + // The algorithm is based on banker's rounding. + float base = floor(x); + if ((x - base) < 0.5) { + return floor(x); + } else if ((x - base) > 0.5) { + return ceil(x); + } else { + if (mod(base, 2.0) == 0.0) { + return base; + } else { + return base + 1.0; + } + } +`,Cx="return exp(x);",Rx="return exp(x) - 1.0;",r2=`if (x < 0.0) return NAN; + return log(x);`,o2="return log(1.0 + x);",a2="return sqrt(x);",l2="return inversesqrt(x);",c2="return 1.0 / (1.0 + exp(-1.0 * x));",p2=` + float epsilon = 1.1920928955078125e-7; + float threshold = log(epsilon) + 2.0; + + bool too_large = x > -threshold; + bool too_small = x < threshold; + + float result; + float exp_x = exp(x); + + if (too_large){ + result = x; + } + else if (too_small){ + result = exp_x; + } + else{ + result = log(exp_x + 1.0); + } + return result; +`,u2=Bn+` + return sin(x); +`,h2=Bn+` + return cos(x); +`,d2="return tan(x);",m2=Bn+` + if (abs(x) > 1.) { + return NAN; + } + return asin(x); +`,f2=Bn+` + if (abs(x) > 1.) { + return NAN; + } + return acos(x); +`,g2=Bn+` + return atan(x); +`,y2=` + float e2x = exp(x); + return (e2x - 1.0 / e2x) / 2.0; +`,b2=` + float e2x = exp(-x); + return (e2x + 1.0 / e2x) / 2.0; +`,w2=` + float e2x = exp(-2.0 * abs(x)); + return sign(x) * (1.0 - e2x) / (1.0 + e2x); +`,x2=Bn+"return log(x + sqrt(x * x + 1.0));",L2=Bn+` + if (x < 1.0) return NAN; + return log(x + sqrt(x * x - 1.0));`,S2=Bn+` + if ((x < -1.0) || (x > 1.0)) return NAN; + return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,v2=` + // Error function is calculated approximately with elementary function. + // See "Handbook of Mathematical Functions with Formulas, + // Graphs, and Mathematical Tables", Abramowitz and Stegun. + float p = ${U.ERF_P}; + float a1 = ${U.ERF_A1}; + float a2 = ${U.ERF_A2}; + float a3 = ${U.ERF_A3}; + float a4 = ${U.ERF_A4}; + float a5 = ${U.ERF_A5}; + + float sign = sign(x); + x = abs(x); + float t = 1.0 / (1.0 + p * x); + return sign * (1.0 - (((((a5*t + a4)*t) + a3)*t + a2)*t + a1)*t*exp(-x*x)); +`,T2="return x * x;",I2="return 1.0 / x;",A2="return float(!(x >= 1.0));",N2="return float(int(x));",Wu="return x;";const C2="return x;",R2=` + vec4 result = log(x); + vec4 isNaN = vec4(lessThan(x, vec4(0.0))); + result.r = isNaN.r == 1.0 ? NAN : result.r; + result.g = isNaN.g == 1.0 ? NAN : result.g; + result.b = isNaN.b == 1.0 ? NAN : result.b; + result.a = isNaN.a == 1.0 ? NAN : result.a; + + return result; +`,Ox=` + vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); + bvec4 isNaN = isnan(x); + + result.r = isNaN.r ? x.r : result.r; + result.g = isNaN.g ? x.g : result.g; + result.b = isNaN.b ? x.b : result.b; + result.a = isNaN.a ? x.a : result.a; + + return result; +`,Ex=` + vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); + bvec4 isNaN = isnan(x); + + result.r = isNaN.r ? x.r : result.r; + result.g = isNaN.g ? x.g : result.g; + result.b = isNaN.b ? x.b : result.b; + result.a = isNaN.a ? x.a : result.a; + + return result; +`,kx=` + vec4 result; + + result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); + result.g = (x.g >= 0.0) ? x.g : (exp(x.g) - 1.0); + result.b = (x.b >= 0.0) ? x.b : (exp(x.b) - 1.0); + result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); + + return result; +`;class Pa{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.userCode=` + vec4 unaryOperation(vec4 x) { + ${t} + } + + void main() { + vec4 x = getAAtOutCoords(); + vec4 y = unaryOperation(x); + + setOutput(y); + } + `}}class O2{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=e;const t=e.length,s=Et("rc",t),n=Ce(t),i=jC(t,s),r=s.slice(-2),o=t<=1?"rc":`vec2(${r.join(",")})`;this.userCode=` + void main() { + ${n} rc = getOutputCoords(); + vec4 packedInput = getA(${i}); + + setOutput(getChannel(packedInput, ${o})); + } + `}}const{segment_util:E2}=U,jB=St.split,VB=St.tile,GB=St.topkImpl,HB=St.whereImpl,qB=1e-7,YB=1e-4,Of={};function KB(e){return e in Of||(Of[e]={}),Of[e]}function Ef(e,t=!1){if(e==="linear")return t?C2:JR;if(e==="relu")return t?Ox:Sx;if(e==="elu")return t?kx:Tx;if(e==="relu6")return t?Ex:vx;if(e==="prelu")return t?ox:rx;throw new Error(`Activation ${e} has not been implemented for the WebGL backend.`)}const XB=128,JB=600;function ZB(){return $().global.screen==null?1024:$().global.screen.height*$().global.screen.width*window.devicePixelRatio*JB/1024/1024}const k2=1e3;class _x extends Jp{constructor(e){super();if(this.pendingRead=new WeakMap(),this.pendingDisposal=new WeakSet(),this.dataRefCount=new WeakMap(),this.numBytesInGPU=0,this.uploadWaitMs=0,this.downloadWaitMs=0,this.warnedAboutMemory=!1,this.warnedAboutCPUBackend=!1,this.pendingDeletes=0,this.disposed=!1,!$().getBool("HAS_WEBGL"))throw new Error("WebGL is not supported on this device");if(e==null){const t=Js($().getNumber("WEBGL_VERSION"));this.binaryCache=KB($().getNumber("WEBGL_VERSION")),this.gpgpu=new bx(t),this.canvas=t.canvas,this.gpgpuCreatedLocally=!0}else this.gpgpu=e,this.binaryCache={},this.gpgpuCreatedLocally=!1,this.canvas=e.gl.canvas;this.textureManager=new KR(this.gpgpu),this.numMBBeforeWarning=ZB(),this.texData=new Xp(this,os())}numDataIds(){return this.texData.numDataIds()+(this.cpuBackend?this.cpuBackend.numDataIds():0)-this.pendingDeletes}write(e,t,s){if(($().getBool("WEBGL_CHECK_NUMERICAL_PROBLEMS")||$().getBool("DEBUG"))&&this.checkNumericalProblems(e),s==="complex64"&&e!=null)throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");const n={};return this.texData.set(n,{shape:t,dtype:s,values:e,usage:ns.UPLOAD}),n}move(e,t,s,n){if($().getBool("DEBUG")&&this.checkNumericalProblems(t),n==="complex64")throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");this.texData.set(e,{shape:s,dtype:n,values:t,usage:ns.UPLOAD})}readSync(e){const t=this.texData.get(e),{values:s,dtype:n,complexTensors:i,slice:r,shape:o,isPacked:a}=t;if(r!=null){let u;a?u=new Pa(o,Wu):u=new _e(o,Wu);const h=this.runWebGLProgram(u,[{dataId:e,shape:o,dtype:n}],n),d=this.readSync(h.dataId);return this.disposeData(h.dataId),d}if(s!=null)return this.convertAndCacheOnCPU(e);if(n==="string")return s;const l=this.activeTimers!=null;let c;l&&(c=E.now());let p;if(n==="complex64"){const u=i.real.dataSync(),h=i.imag.dataSync();p=U.mergeRealAndImagArrays(u,h)}else p=this.getValuesFromTexture(e);return l&&(this.downloadWaitMs+=E.now()-c),this.convertAndCacheOnCPU(e,p)}async read(e){if(this.pendingRead.has(e)){const d=this.pendingRead.get(e);return new Promise(m=>d.push(m))}const t=this.texData.get(e),{values:s,shape:n,slice:i,dtype:r,complexTensors:o,isPacked:a}=t;if(i!=null){let d;a?d=new Pa(n,Wu):d=new _e(n,Wu);const m=this.runWebGLProgram(d,[{dataId:e,shape:n,dtype:r}],r),f=this.read(m.dataId);return this.disposeData(m.dataId),f}if(s!=null)return this.convertAndCacheOnCPU(e);if(!$().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&$().getNumber("WEBGL_VERSION")===2)throw new Error("tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.");let l=null,c;if(r!=="complex64"&&$().get("WEBGL_BUFFER_SUPPORTED")){c=this.decode(e);const d=this.texData.get(c.dataId);l=this.gpgpu.createBufferFromTexture(d.texture,...xr(n))}this.pendingRead.set(e,[]),r!=="complex64"&&await this.gpgpu.createAndWaitForFence();let p;if(r==="complex64"){const d=await Promise.all([o.real.data(),o.imag.data()]),m=d[0],f=d[1];p=U.mergeRealAndImagArrays(m,f)}else if(l==null)p=this.getValuesFromTexture(e);else{const d=E.sizeFromShape(n);p=this.gpgpu.downloadFloat32MatrixFromBuffer(l,d)}c!=null&&this.disposeData(c.dataId);const u=this.convertAndCacheOnCPU(e,p),h=this.pendingRead.get(e);return this.pendingRead.delete(e),h.forEach(d=>d(u)),this.pendingDisposal.has(e)&&(this.pendingDisposal.delete(e),this.disposeData(e),this.pendingDeletes--),u}checkNumericalProblems(e){if(e==null)return;for(let t=0;ta.query)).filter(a=>a!=null),r=E.flatten(this.activeTimers.map(a=>a.name)).filter(a=>a!=null);this.activeTimers=t,n&&(this.programTimersStack=null);const o={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};if($().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0){const a=await Promise.all(i);o.kernelMs=E.sum(a),o.getExtraProfileInfo=()=>a.map((l,c)=>({name:r[c],ms:l})).map(l=>`${l.name}: ${l.ms}`).join(", ")}else o.kernelMs={error:"WebGL query timers are not supported in this environment."};return this.uploadWaitMs=0,this.downloadWaitMs=0,o}memory(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU,numBytesInGPUAllocated:this.textureManager.numBytesAllocated,numBytesInGPUFree:this.textureManager.numBytesFree}}startTimer(){return $().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:E.now(),endMs:null}}endTimer(e){return $().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),e):(e.endMs=E.now(),e)}async getQueryTime(e){if($().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0)return this.gpgpu.waitForQueryAndGetTime(e);const t=e;return t.endMs-t.startMs}disposeData(e){if(this.pendingDisposal.has(e))return;if(this.pendingRead.has(e)){this.pendingDisposal.add(e),this.pendingDeletes++;return}if(!this.texData.has(e))return;this.releaseGPUData(e);const{complexTensors:t}=this.texData.get(e);t!=null&&(t.real.dispose(),t.imag.dispose()),this.texData.delete(e)}releaseGPUData(e){const{texture:t,dtype:s,texShape:n,usage:i,isPacked:r,slice:o}=this.texData.get(e),a=o&&o.origDataId||e,l=this.dataRefCount.get(a);l>1?this.dataRefCount.set(a,l-1):(this.dataRefCount.delete(a),t!=null&&(this.numBytesInGPU-=this.computeBytes(n,s),this.textureManager.releaseTexture(t,n,i,r)));const c=this.texData.get(e);c.texture=null,c.texShape=null,c.isPacked=!1,c.slice=null}getTexture(e){return this.uploadToGPU(e),this.texData.get(e).texture}getDataInfo(e){return this.texData.get(e)}getCPUBackend(){return $().getBool("WEBGL_CPU_FORWARD")?(this.cpuBackend==null&&(this.cpuBackend=os().findBackend("cpu")),this.cpuBackend):null}shouldExecuteOnCPU(e,t=XB){const s=this.getCPUBackend();return!this.warnedAboutCPUBackend&&s==null&&!$().getBool("IS_TEST")&&(console.warn("Your application contains ops that are small enough to be executed on the CPU backend, however the CPU backend cannot be found. Consider importing the CPU backend (@tensorflow/tfjs-backend-cpu) for better performance."),this.warnedAboutCPUBackend=!0),s!=null&&e.every(n=>this.texData.get(n.dataId).texture==null&&E.sizeFromShape(n.shape)o===0))return ze([],i);const r=new GR(t,n,i);return this.compileAndRun(r,[e])}reverse(e,t){const s=$().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new zR(e.shape,t):new WR(e.shape,t);return this.compileAndRun(s,[e])}concat(e,t){if(e[0].dtype==="complex64"){const o=e.map(l=>$t(l)),a=e.map(l=>Ht(l));return Ze(this.concat(o,t),this.concat(a,t))}if(this.shouldExecuteOnCPU(e))return this.cpuBackend.concat(e,t);if(e.length===1)return e[0];if(e.length>$().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER")){const o=Math.floor(e.length/2),a=this.concat(e.slice(0,o),t),l=this.concat(e.slice(o),t);return this.concat([a,l],t)}if($().getBool("WEBGL_PACK_ARRAY_OPERATIONS")&&e[0].rank>1){const o=new F0(e.map(a=>a.shape),t);return this.compileAndRun(o,e)}const s=U.computeOutShape(e.map(o=>o.shape),t),n=e.map(o=>o.as2D(-1,E.sizeFromShape(o.shape.slice(t)))),i=new D0(n.map(o=>o.shape)),r=this.compileAndRun(i,n);return r.reshape(s)}neg(e){if(this.shouldExecuteOnCPU([e]))return this.cpuBackend.neg(e);if($().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,Ix,e.dtype);const t=new _e(e.shape,Ix);return this.compileAndRun(t,[e])}batchMatMul(e,t,s,n){const i=s?e.shape[2]:e.shape[1],r=n?t.shape[1]:t.shape[2],o=s?e.shape[1]:e.shape[2],[a,,]=e.shape;if((i===1||r===1)&&o>k2){s&&(e=se(e,[0,2,1])),n&&(t=se(t,[0,2,1]));const p=r===1?e:e.as3D(a,o,1),u=r===1?2:1,h=r===1?t.as3D(a,1,o):t;return this.multiply(p,h).sum(u,!0)}const l=wt(e.dtype,t.dtype),c=new Af(e.shape,[a,i,r],s,n);return this.compileAndRun(c,[e,t],l)}fusedBatchMatMul({a:e,b:t,transposeA:s,transposeB:n,bias:i,activation:r,preluActivationWeights:o}){const a=s?e.shape[2]:e.shape[1],l=n?t.shape[1]:t.shape[2],[c,,]=e.shape,p=wt(e.dtype,t.dtype),u=i!=null,h=o!=null,d=r?Ef(r,!0):null,m=new Af(e.shape,[c,a,l],s,n,u,d,h),f=[e,t];return i&&f.push(i),o&&f.push(o),this.compileAndRun(m,f,p)}multiply(e,t){if(e.dtype==="complex64"){const n=this.texData.get(e.dataId),i=this.texData.get(t.dataId),r=new sx(tx.REAL,e.shape,t.shape),o=new sx(tx.IMAG,e.shape,t.shape),a=[this.makeComplexComponentTensorInfo(e,n.complexTensors.real),this.makeComplexComponentTensorInfo(e,n.complexTensors.imag),this.makeComplexComponentTensorInfo(t,i.complexTensors.real),this.makeComplexComponentTensorInfo(t,i.complexTensors.imag)],l=this.compileAndRun(r,a),c=this.compileAndRun(o,a),p=this.complex(l,c);return l.dispose(),c.dispose(),p}if(this.shouldExecuteOnCPU([e,t]))return this.cpuBackend.multiply(e,t);if($().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,ix,e.dtype);const s=new mt(ix,e.shape,t.shape);return this.compileAndRun(s,[e,t],e.dtype)}batchNorm(e,t,s,n,i,r){const o=[e,t,s];let a=null;n!=null&&(a=n.shape,o.push(n));let l=null;if(i!=null&&(l=i.shape,o.push(i)),$().getBool("WEBGL_PACK_NORMALIZATION")){const p=new ZC(e.shape,t.shape,s.shape,a,l,r);return this.compileAndRun(p,o)}const c=new JC(e.shape,t.shape,s.shape,a,l,r);return this.compileAndRun(c,o)}localResponseNormalization4D(e,t,s,n,i){const r=$().getBool("WEBGL_PACK_NORMALIZATION")?new AR(e.shape,t,s,n,i):new TR(e.shape,t,s,n,i);return this.compileAndRun(r,[e])}LRNGrad(e,t,s,n,i,r,o){const a=new IR(t.shape,n,i,r,o);return this.compileAndRun(a,[t,s,e])}tile(e,t){if(e.dtype==="string"){const n=this.readSync(e.dataId),i=n.map(o=>E.decodeString(o)),r=le(e.shape,e.dtype,i);return VB(r,t)}const s=new XR(e.shape,t);return this.compileAndRun(s,[e])}pad(e,t,s){const n=$().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new _R(e.shape,t,s):new kR(e.shape,t,s);return this.compileAndRun(n,[e])}gather(e,t,s){if(this.shouldExecuteOnCPU([e,t]))return this.cpuBackend.gather(e,t,s);const n=new tR(e.shape,t.size,s);return this.compileAndRun(n,[e,t])}batchToSpaceND(e,t,s){E.assert(e.rank<=4,()=>"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet");const n=t.reduce((c,p)=>c*p),i=U.getReshaped(e.shape,t,n),r=U.getPermuted(i.length,t.length),o=U.getReshapedPermuted(e.shape,t,n),a=U.getSliceBeginCoords(s,t.length),l=U.getSliceSize(o,s,t.length);return se(e.reshape(i),r).reshape(o).slice(a,l)}spaceToBatchND(e,t,s){E.assert(e.rank<=4,()=>"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet");const n=t.reduce((p,u)=>p*u),i=[[0,0]];i.push(...s);for(let p=1+t.length;p{const[c,p]=l,u=this.makeComplexComponentTensorInfo(e,c),h=this.makeComplexComponentTensorInfo(t,p),d=new mt(s,e.shape,t.shape);return this.compileAndRun(d,[u,h],wt(c.dtype,p.dtype))}),a=this.complex(r,o);return r.dispose(),o.dispose(),a}makeComplexComponentTensorInfo(e,t){return{dataId:t.dataId,dtype:t.dtype,shape:e.shape}}addN(e){if(e.length===1)return e[0];if(e.length>$().get("WEBGL_MAX_TEXTURES_IN_SHADER")){const r=Math.floor(e.length/2),o=this.addN(e.slice(0,r)),a=this.addN(e.slice(r));return this.addN([o,a])}const t=e.map(r=>r.dtype).reduce((r,o)=>wt(r,o)),s=e.map(r=>r.shape),n=$().getBool("WEBGL_PACK"),i=n?new BC(e[0].shape,s):new zC(e[0].shape,s);return this.compileAndRun(i,e,t)}subtract(e,t){if(e.dtype==="complex64"&&t.dtype==="complex64")return this.complexSeparableBinaryOp(e,t,Tf);if(this.shouldExecuteOnCPU([e,t]))return this.cpuBackend.subtract(e,t);const s=wt(e.dtype,t.dtype);if($().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,Tf,e.dtype);const n=new mt(Tf,e.shape,t.shape);return this.compileAndRun(n,[e,t],s)}pow(e,t){const s=$().getBool("WEBGL_PACK_BINARY_OPERATIONS"),n=s?new Qs(y0,e.shape,t.shape):new mt(t0,e.shape,t.shape),i=wt(e.dtype,t.dtype);return this.compileAndRun(n,[e,t],i)}ceil(e){if(this.shouldExecuteOnCPU([e]))return this.cpuBackend.ceil(e);if($().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,Ax,e.dtype);const t=new _e(e.shape,Ax);return this.compileAndRun(t,[e])}floor(e){if(this.shouldExecuteOnCPU([e]))return this.cpuBackend.floor(e);if($().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,Nx,e.dtype);const t=new _e(e.shape,Nx);return this.compileAndRun(t,[e])}sign(e){const t=new _e(e.shape,e2);return this.compileAndRun(t,[e])}isNaN(e){const t=new _e(e.shape,t2);return this.compileAndRun(t,[e],"bool")}isInf(e){const t=new _e(e.shape,s2);return this.compileAndRun(t,[e],"bool")}isFinite(e){const t=new _e(e.shape,n2);return this.compileAndRun(t,[e],"bool")}round(e){const t=new _e(e.shape,i2);return this.compileAndRun(t,[e])}exp(e){if(this.shouldExecuteOnCPU([e]))return this.cpuBackend.exp(e);if($().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,Cx,e.dtype);const t=new _e(e.shape,Cx);return this.compileAndRun(t,[e])}expm1(e){if(this.shouldExecuteOnCPU([e]))return this.cpuBackend.expm1(e);if($().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,Rx,e.dtype);const t=new _e(e.shape,Rx);return this.compileAndRun(t,[e])}softmax(e,t){const s=E.parseAxisParam([t],e.shape),n=st(e,s),i=U.expandShapeToKeepDim(n.shape,s),r=this.subtract(e,n.reshape(i)),o=this.exp(r),a=this.sum(o,s).reshape(i);return J(o,a)}log(e){if(this.shouldExecuteOnCPU([e]))return this.cpuBackend.log(e);if($().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,R2,e.dtype);const t=new _e(e.shape,r2);return this.compileAndRun(t,[e])}log1p(e){const t=new _e(e.shape,o2);return this.compileAndRun(t,[e])}sqrt(e){const t=new _e(e.shape,a2);return this.compileAndRun(t,[e])}rsqrt(e){if(this.shouldExecuteOnCPU([e]))return this.cpuBackend.rsqrt(e);const t=new _e(e.shape,l2);return this.compileAndRun(t,[e])}reciprocal(e){const t=new _e(e.shape,I2);return this.compileAndRun(t,[e])}relu(e){let t;return $().getBool("WEBGL_PACK")?t=new Pa(e.shape,Ox):t=new _e(e.shape,Sx),this.compileAndRun(t,[e])}relu6(e){let t;return $().getBool("WEBGL_PACK")?t=new Pa(e.shape,Ex):t=new _e(e.shape,vx),this.compileAndRun(t,[e])}prelu(e,t){const s=$().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Qs(ox,e.shape,t.shape):new mt(rx,e.shape,t.shape);return this.compileAndRun(s,[e,t])}elu(e){if($().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,kx,e.dtype);const t=new _e(e.shape,Tx);return this.compileAndRun(t,[e])}eluDer(e,t){const s=$().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Qs(b0,e.shape,t.shape):new mt(m0,e.shape,t.shape);return this.compileAndRun(s,[e,t])}selu(e){const t=new _e(e.shape,ZR);return this.compileAndRun(t,[e])}int(e){const t=new _e(e.shape,N2);return this.compileAndRun(t,[e],"int32")}clip(e,t,s){let n;$().getBool("WEBGL_PACK_CLIP")?n=new k0(e.shape):n=new E0(e.shape);const i=n.getCustomSetupFunc(t,s);return this.compileAndRun(n,[e],null,i)}abs(e){if(this.shouldExecuteOnCPU([e]))return this.cpuBackend.abs(e);if($().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,Lx,e.dtype);const t=new _e(e.shape,Lx);return this.compileAndRun(t,[e])}complexAbs(e){const t=this.texData.get(e.dataId),s=new _0(e.shape),n=[this.makeComplexComponentTensorInfo(e,t.complexTensors.real),this.makeComplexComponentTensorInfo(e,t.complexTensors.imag)];return this.compileAndRun(s,n)}sigmoid(e){const t=new _e(e.shape,c2);return this.compileAndRun(t,[e])}softplus(e){const t=new _e(e.shape,p2);return this.compileAndRun(t,[e])}sin(e){const t=new _e(e.shape,u2);return this.compileAndRun(t,[e])}cos(e){const t=new _e(e.shape,h2);return this.compileAndRun(t,[e])}tan(e){const t=new _e(e.shape,d2);return this.compileAndRun(t,[e])}asin(e){const t=new _e(e.shape,m2);return this.compileAndRun(t,[e])}acos(e){const t=new _e(e.shape,f2);return this.compileAndRun(t,[e])}atan(e){const t=new _e(e.shape,g2);return this.compileAndRun(t,[e])}atan2(e,t){const s=$().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Qs(w0,e.shape,t.shape):new mt(d0,e.shape,t.shape);return this.compileAndRun(s,[e,t])}sinh(e){const t=new _e(e.shape,y2);return this.compileAndRun(t,[e])}cosh(e){const t=new _e(e.shape,b2);return this.compileAndRun(t,[e])}tanh(e){const t=new _e(e.shape,w2);return this.compileAndRun(t,[e])}asinh(e){const t=new _e(e.shape,x2);return this.compileAndRun(t,[e])}acosh(e){const t=new _e(e.shape,L2);return this.compileAndRun(t,[e])}atanh(e){const t=new _e(e.shape,S2);return this.compileAndRun(t,[e])}erf(e){const t=new _e(e.shape,v2);return this.compileAndRun(t,[e])}step(e,t){const s=new _e(e.shape,QR(t));return this.compileAndRun(s,[e])}conv2dByMatMul(e,t,s,n,i,r){const o=e.shape,a=this.texData.get(e.dataId),l=s.inChannels,c=o[0]*o[1]*o[2],p=s.outChannels,u=s.dataFormat==="channelsLast",h=!1,d=!1,m=(c===1||p===1)&&l>k2,f=o[2]%2!==0&&!!a.isPacked;if(m||!$().getBool("WEBGL_LAZILY_UNPACK")||!$().getBool("WEBGL_PACK_BINARY_OPERATIONS")||!f){const k=u?o[0]*o[1]*o[2]:o[0]*o[2]*o[3],R=this.reshape(e,[1,k,s.inChannels]),D=this.reshape(t,[1,s.inChannels,s.outChannels]);return this.reshape(this.fusedBatchMatMul({a:R,b:D,transposeA:h,transposeB:d,bias:n,activation:i,preluActivationWeights:r}),s.outShape)}const y=u?o[0]*o[1]*(o[2]+1):o[0]*o[2]*(o[3]+1),b={dataId:e.dataId,shape:[1,y,s.inChannels],dtype:e.dtype},S=a.shape;a.shape=a.shape.slice(),a.shape[a.shape.length-2]++,E.assert(vr(a.shape,b.shape),()=>`packed reshape ${a.shape} to ${b.shape} isn't free`);const x=this.reshape(t,[1,s.inChannels,s.outChannels]),I=this.fusedBatchMatMul({a:b,b:x,transposeA:h,transposeB:d,bias:n,activation:i,preluActivationWeights:r}),A=this.texData.get(I.dataId);return E.assert(A.isPacked,()=>"batchMatMul result is expected to be packed"),a.shape=S,A.shape=s.outShape,os().makeTensorFromDataId(I.dataId,s.outShape,I.dtype)}conv2dWithIm2Row(e,t,s,n,i,r){const{filterWidth:o,filterHeight:a,inChannels:l,outWidth:c,outHeight:p,dataFormat:u}=s,h=u==="channelsLast",d=o*a*l,m=p*c,f=[d,m],y=!0,b=!1,S=e.squeeze([0]),x=t.reshape([1,d,-1]),I=new vR(f,S.shape,s),A=this.compileAndRun(I,[S]).reshape([1,f[0],f[1]]),k=n!=null,R=r!=null,D=i?Ef(i,!0):null,F=new Af(A.shape,[1,m,s.outChannels],y,b,k,D,R),M=[A,x];n&&M.push(n),R&&M.push(r);const B=this.compileAndRun(F,M);return h?B.reshape([1,p,c,s.outChannels]):B.reshape([1,s.outChannels,p,c])}fusedConv2d({input:e,filter:t,convInfo:s,bias:n,activation:i,preluActivationWeights:r}){if(s.filterHeight===1&&s.filterWidth===1&&s.dilationHeight===1&&s.dilationWidth===1&&s.strideHeight===1&&s.strideWidth===1&&(s.padInfo.type==="SAME"||s.padInfo.type==="VALID"))return this.conv2dByMatMul(e,t,s,n,i,r);if($().getBool("WEBGL_CONV_IM2COL")&&e.shape[0]===1)return this.conv2dWithIm2Row(e,t,s,n,i,r);const o=n!=null,a=r!=null,l=i?Ef(i,!1):null,c=new ax(s,o,l,a),p=[e,t];return n&&p.push(n),r&&p.push(r),this.compileAndRun(c,p)}conv2d(e,t,s){if(s.filterHeight===1&&s.filterWidth===1&&s.dilationHeight===1&&s.dilationWidth===1&&s.strideHeight===1&&s.strideWidth===1&&(s.padInfo.type==="SAME"||s.padInfo.type==="VALID"))return this.conv2dByMatMul(e,t,s);if($().getBool("WEBGL_CONV_IM2COL")&&e.shape[0]===1)return this.conv2dWithIm2Row(e,t,s);const n=new ax(s);return this.compileAndRun(n,[e,t])}conv2dDerInput(e,t,s){const n=new U0(s);return this.compileAndRun(n,[e,t])}conv2dDerFilter(e,t,s){const n=new M0(s);return this.compileAndRun(n,[e,t])}fusedDepthwiseConv2D({input:e,filter:t,convInfo:s,bias:n,activation:i,preluActivationWeights:r}){const o=$().getBool("WEBGL_PACK_DEPTHWISECONV")&&s.strideWidth<=2&&s.outChannels/s.inChannels===1,a=i?Ef(i,o):null,l=[e,t],c=n!=null,p=r!=null;c&&l.push(n),p&&l.push(r);let u;return o?(u=new cx(s,c,a,p),this.compileAndRun(u,l)):(u=new lx(s,c,a,p),this.compileAndRun(u,l))}depthwiseConv2D(e,t,s){let n;return $().getBool("WEBGL_PACK_DEPTHWISECONV")&&s.strideWidth<=2&&s.outChannels/s.inChannels===1?(n=new cx(s),this.compileAndRun(n,[e,t])):(n=new lx(s),this.compileAndRun(n,[e,t]))}depthwiseConv2DDerInput(e,t,s){const n=new B0(s);return this.compileAndRun(n,[e,t])}depthwiseConv2DDerFilter(e,t,s){const n=new z0(s);return this.compileAndRun(n,[e,t])}conv3d(e,t,s){const n=new P0(s);return this.compileAndRun(n,[e,t])}conv3dDerInput(e,t,s){const n=new W0(s);return this.compileAndRun(n,[e,t])}conv3dDerFilter(e,t,s){const n=new $0(s);return this.compileAndRun(n,[e,t])}maxPool(e,t){const s=new Fo(t,"max",!1);return this.compileAndRun(s,[e])}avgPool(e,t){const s=new Fo(t,"avg",!1);return this.compileAndRun(s,[e],"float32")}maxPoolBackprop(e,t,s,n){const i=!0,r=new Fo(n,"max",i),o=this.compileAndRun(r,[t]),a=new NR(n),l=this.compileAndRun(a,[e,o],t.dtype);return o.dispose(),l}avgPoolBackprop(e,t,s){const n=new KC(s);return this.compileAndRun(n,[e],t.dtype)}cast(e,t){return U.castTensor(e,t,this)}unstack(e,t){const s=e.shape[t],n=new Array(e.rank-1);let i=0;for(let l=0;l1,()=>`blockSize should be > 1 for depthToSpace, but was: ${t}`);const n=e.shape[0],i=s==="NHWC"?e.shape[1]:e.shape[2],r=s==="NHWC"?e.shape[2]:e.shape[3],o=s==="NHWC"?e.shape[3]:e.shape[1],a=i*t,l=r*t,c=o/(t*t),p=s==="NHWC"?[n,a,l,c]:[n,c,a,l],u=new Y0(p,t,s);return this.compileAndRun(u,[e])}split(e,t,s){return jB(e,t,s)}scatterND(e,t,s){const{sliceRank:n,numUpdates:i,sliceSize:r,strides:o,outputSize:a}=U.calculateShapes(t,e,s),l=[a/r,r],c=e.reshape([i,n]),p=t.reshape([i,r]);if(a===0)return U.reshapeTensor(ze([]),s);const u=j(0),h=new wx(i,n,c.rank,p.rank,o,l),d=this.compileAndRun(h,[p,c,u]);return d.reshape(s)}sparseToDense(e,t,s,n){const{sliceRank:i,numUpdates:r,strides:o,outputSize:a}=U.calculateShapes(t,e,s),l=!1,c=new wx(r,i,e.rank,t.rank,o,[a,1],l),p=this.compileAndRun(c,[t,e,n]);return p.reshape(s)}fft(e){const t=!1;return this.fftImpl(e,t)}ifft(e){const t=!0;return this.fftImpl(e,t)}fftImpl(e,t){const s=this.texData.get(e.dataId),n=new hx(ux.REAL,e.shape,t),i=new hx(ux.IMAG,e.shape,t),r=[this.makeComplexComponentTensorInfo(e,s.complexTensors.real),this.makeComplexComponentTensorInfo(e,s.complexTensors.imag)],o=this.compileAndRun(n,r),a=this.compileAndRun(i,r),l=this.complex(o,a).as2D(e.shape[0],e.shape[1]);return o.dispose(),a.dispose(),l}gatherND(e,t){const s=t.shape,n=s[s.length-1],[i,r,o,a]=U.prepareAndValidate(e,t),l=t.reshape([r,n]),c=e.reshape([e.size/o,o]),p=new sR(n,a,[r,o]),u=this.compileAndRun(p,[c,l]);return u.reshape(i)}fill(e,t,s){if(s=s||E.inferDtype(t),s==="string"){const n=E.getArrayFromDType(s,E.sizeFromShape(e));return n.fill(t),os().makeTensor(n,e,s,this)}else{const n=new eR(e,t),i=n.getCustomSetupFunc(t);return this.compileAndRun(n,[],s,i)}}onesLike(e){if(e.dtype==="string")throw new Error("onesLike is not supported under string dtype");return this.fill(e.shape,1,e.dtype)}zerosLike(e){return this.fill(e.shape,e.dtype==="string"?"":0,e.dtype)}linspace(e,t,s){return U.linspaceImpl(e,t,s)}makeTensorInfo(e,t){const s=this.write(null,e,t);return this.texData.get(s).usage=null,{dataId:s,shape:e,dtype:t}}makeOutput(e,t){const{dataId:s}=this.makeTensorInfo(e,t);return os().makeTensorFromDataId(s,e,t,this)}unpackTensor(e){const t=new O2(e.shape);return this.runWebGLProgram(t,[e],e.dtype)}packTensor(e){const t=new ER(e.shape),s=!0;return this.runWebGLProgram(t,[e],e.dtype,null,s)}packedReshape(e,t){const s=[Lr(e.shape),...Sr(e.shape)],n={dtype:e.dtype,shape:s,dataId:e.dataId},i=[Lr(t),...Sr(t)],r=new Rf(i,s),o=!0,a=this.runWebGLProgram(r,[n],e.dtype,null,o);return{dataId:a.dataId,shape:t,dtype:a.dtype}}decode(e){const t=this.texData.get(e),{isPacked:s,shape:n,dtype:i}=t,r=xf(n);let o;s?o=new q0(r):o=new H0(r);const a=!0,l=this.runWebGLProgram(o,[{shape:r,dtype:i,dataId:e}],i,null,a);return{dtype:i,shape:n,dataId:l.dataId}}runWebGLProgram(e,t,s,n,i=!1){const r=this.makeTensorInfo(e.outputShape,s),o=this.texData.get(r.dataId);if(e.packedOutput&&(o.isPacked=!0),e.outPackingScheme===wr.DENSE){const m=xr(e.outputShape);o.texShape=m.map(f=>f*2)}if(e.outTexUsage!=null&&(o.usage=e.outTexUsage),E.sizeFromShape(r.shape)===0)return o.values=E.getTypedArrayFromDType(r.dtype,0),r;const a=[],l=t.map(m=>{if(m.dtype==="complex64")throw new Error("GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.");let f=this.texData.get(m.dataId);if(f.texture==null){if(!e.packedInputs&&E.sizeFromShape(m.shape)<=$().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:m.shape,texData:null,isUniform:!0,uniformValues:f.values};e.packedInputs&&(f.isPacked=!0,f.shape=m.shape)}else if(!!f.isPacked!==!!e.packedInputs)m=f.isPacked?this.unpackTensor(m):this.packTensor(m),a.push(m),f=this.texData.get(m.dataId);else if(f.isPacked&&!vr(f.shape,m.shape)){const y=m,b=m.shape;m.shape=f.shape,m=this.packedReshape(m,b),a.push(m),f=this.texData.get(m.dataId),y.shape=b}return this.uploadToGPU(m.dataId),{shape:m.shape,texData:f,isUniform:!1}});this.uploadToGPU(r.dataId);const c={shape:r.shape,texData:o,isUniform:!1},p=SR(e,l,c),u=this.getAndSaveBinary(p,()=>wR(this.gpgpu,e,l,c)),h=this.activeTimers!=null;let d;if(h&&(d=this.startTimer()),LR(this.gpgpu,u,l,c,n),a.forEach(m=>this.disposeData(m.dataId)),h&&(d=this.endTimer(d),this.activeTimers.push({name:e.constructor.name,query:this.getQueryTime(d)})),!$().getBool("WEBGL_LAZILY_UNPACK")&&o.isPacked&&i===!1){const m=this.unpackTensor(r);return this.disposeData(r.dataId),m}return r}compileAndRun(e,t,s,n,i=!1){s=s||t[0].dtype;const r=this.runWebGLProgram(e,t,s,n,i);return os().makeTensorFromDataId(r.dataId,r.shape,r.dtype)}getAndSaveBinary(e,t){return e in this.binaryCache||(this.binaryCache[e]=t()),this.binaryCache[e]}getTextureManager(){return this.textureManager}dispose(){if(this.disposed)return;if(!$().getBool("IS_TEST")){const e=Object.keys(this.binaryCache);e.forEach(t=>{this.gpgpu.deleteProgram(this.binaryCache[t].webGLProgram),delete this.binaryCache[t]})}this.textureManager.dispose(),this.canvas!=null&&typeof HTMLCanvasElement!="undefined"&&this.canvas instanceof HTMLCanvasElement?this.canvas.remove():this.canvas=null,this.gpgpuCreatedLocally&&(this.gpgpu.program=null,this.gpgpu.dispose()),this.disposed=!0}floatPrecision(){return this.floatPrecisionValue==null&&(this.floatPrecisionValue=N(()=>{if(!$().get("WEBGL_RENDER_FLOAT32_ENABLED")){const e=$().getBool("DEBUG");$().set("DEBUG",!1);const t=this.abs(j(1e-8)).dataSync()[0];if($().set("DEBUG",e),t>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?qB:YB}uploadToGPU(e){const t=this.texData.get(e),{shape:s,dtype:n,values:i,texture:r,usage:o,isPacked:a}=t;if(r!=null)return;const l=this.activeTimers!=null;let c;l&&(c=E.now());let p=t.texShape;if(p==null&&(p=_C(s,a),t.texShape=p),i!=null){const u=xf(s);let h,d=p[1],m=p[0];const f=i instanceof Uint8Array;a?([d,m]=oi(p[0],p[1]),h=new Q0(u,[m,d],f)):h=new Z0(u,[m,d],f);const y=this.makeTensorInfo([m,d],n);f?this.texData.get(y.dataId).usage=ns.PIXELS:this.texData.get(y.dataId).usage=ns.UPLOAD,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(y.dataId),d,m,i);const b=!0,S=this.runWebGLProgram(h,[y],n,null,b),x=this.texData.get(S.dataId);t.texture=x.texture,t.texShape=x.texShape,t.isPacked=x.isPacked,t.usage=x.usage,this.disposeData(y.dataId),this.texData.delete(S.dataId),t.values=null,l&&(this.uploadWaitMs+=E.now()-c)}else{const u=this.acquireTexture(p,o,n,a);t.texture=u}}convertAndCacheOnCPU(e,t){const s=this.texData.get(e),{dtype:n}=s;return this.releaseGPUData(e),t!=null&&(s.values=QB(t,n)),s.values}acquireTexture(e,t,s,n){if(this.numBytesInGPU+=this.computeBytes(e,s),!this.warnedAboutMemory&&this.numBytesInGPU>this.numMBBeforeWarning*1024*1024){const i=(this.numBytesInGPU/1024/1024).toFixed(2);this.warnedAboutMemory=!0,console.warn(`High memory usage in GPU: ${i} MB, most likely due to a memory leak`)}return this.textureManager.acquireTexture(e,t,n)}computeBytes(e,t){return e[0]*e[1]*E.bytesPerElement(t)}}function QB(e,t){if(t==="float32"||t==="complex64")return e;if(t==="int32"||t==="bool"){const s=t==="int32"?new Int32Array(e.length):new Uint8Array(e.length);for(let n=0;nnew _x(),2);const a3e={forceHalfFloat:_2};function D2(e,t,s){let n=new mt(QC,e.shape,t.shape);$().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&(n=new Qs(f0,e.shape,t.shape,!0));const i=s.runWebGLProgram(n,[e,t],"float32");return i}const F2={kernelName:ui,backendName:"webgl",kernelFunc:({inputs:e,backend:t})=>{const{a:s,b:n}=e,i=t;return D2(s,n,i)}};class M2{constructor(e){this.variableNames=["Image"],this.outputShape=[];const t=e[2];this.outputShape=e,this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int x = coords[2]; + + int coordX = ${t} - x; + float outputValue; + if(coordX >= 0 && coordX < ${t}) { + outputValue = getImage(coords[0], coords[1], coordX, coords[3]); + } else { + outputValue = getImage(coords[0], coords[1], coords[2], coords[3]); + } + setOutput(outputValue); + } + `}}const U2={kernelName:Dr,backendName:"webgl",kernelFunc:({inputs:e,backend:t})=>{const{image:s}=e,n=t,i=new M2(s.shape),r=n.runWebGLProgram(i,[s],s.dtype);return r}};class $2{constructor(e){this.variableNames=["A"];const t=ot(),[s,n]=e;this.outputShape=e,this.userCode=` + void main() { + ivec3 coords = getOutputCoords(); + int texR = coords[0]; + int texC = coords[1]; + int depth = coords[2]; + vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${n}.0, ${s}.0); + + vec4 values = ${t.texture2D}(A, uv); + float value; + if (depth == 0) { + value = values.r; + } else if (depth == 1) { + value = values.g; + } else if (depth == 2) { + value = values.b; + } else if (depth == 3) { + value = values.a; + } + + setOutput(floor(value * 255.0 + 0.5)); + } + `}}class W2{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;const t=ot(),[s,n]=e;this.outputShape=e,this.userCode=` + void main() { + ivec3 coords = getOutputCoords(); + int texR = coords[0]; + int texC = coords[1]; + int depth = coords[2]; + + vec4 result = vec4(0.); + + for(int row=0; row<=1; row++) { + for(int col=0; col<=1; col++) { + texC = coords[1] + row; + depth = coords[2] + col; + + vec2 uv = (vec2(texC, texR) + halfCR) / + vec2(${n}.0, ${s}.0); + vec4 values = ${t.texture2D}(A, uv); + float value; + if (depth == 0) { + value = values.r; + } else if (depth == 1) { + value = values.g; + } else if (depth == 2) { + value = values.b; + } else if (depth == 3) { + value = values.a; + } + + result[row * 2 + col] = floor(value * 255.0 + 0.5); + } + } + + ${t.output} = result; + } + `}}const z2={kernelName:ta,backendName:"webgl",kernelFunc:eP};let ja;function eP(e){const{inputs:t,backend:s,attrs:n}=e;let{pixels:i}=t;const{numChannels:r}=n,o=typeof HTMLVideoElement!="undefined"&&i instanceof HTMLVideoElement,a=typeof HTMLImageElement!="undefined"&&i instanceof HTMLImageElement,[l,c]=o?[i.videoWidth,i.videoHeight]:[i.width,i.height],p=[c,l],u=[c,l,r];(a||o)&&(ja==null&&(ja=document.createElement("canvas").getContext("2d")),ja.canvas.width=l,ja.canvas.height=c,ja.drawImage(i,0,0,l,c),i=ja.canvas);const h=s.makeTensorInfo(p,"int32");s.texData.get(h.dataId).usage=ns.PIXELS,s.gpgpu.uploadPixelDataToTexture(s.getTexture(h.dataId),i);const d=$().getBool("WEBGL_PACK")?new W2(u):new $2(u),m=s.runWebGLProgram(d,[h],"int32");return s.disposeData(h.dataId),m}const{maxImpl:B2,transposeImpl:kf}=Vw;function Fx(e,t,s,n){const[i,r]=e.shape,o=U.computeOptimalWindowSize(r),a={windowSize:o,inSize:r,batchSize:i},l=new Cf(a,s),c=n.runWebGLProgram(l,[e],t);return c.shape[1]===1?c:Fx(c,t,s,n)}function tP(e,t,s){const n=[Lr(e.shape),...Sr(e.shape)],i={dtype:e.dtype,shape:n,dataId:e.dataId},r=[Lr(t),...Sr(t)],o=new Rf(r,n),a=!0,l=s.runWebGLProgram(o,[i],e.dtype,null,a);return{dataId:l.dataId,shape:t,dtype:l.dtype}}function Mx(e,t,s){const n=s.texData.get(e.dataId);return n.isPacked&&!vr(e.shape,t)&&!(n.texture!==null&&vr(n.shape,t))?tP(e,t,s):{dataId:e.dataId,shape:t,dtype:e.dtype}}function P2(e,t,s,n){const i=E.sizeFromShape(t),r=E.sizeFromShape(e.shape),o=r/i,a=Mx(e,[o,i],n),l=Fx(a,e.dtype,"max",n);return a.dataId!==e.dataId&&n.disposeData(a.dataId),Mx(l,s,n)}class j2{constructor(e,t){this.variableNames=["A"];const s=new Array(e.length);for(let r=0;r6)throw Error(`Transpose for rank ${t} is not yet supported`);const s=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u","resRC.v"],n=new Array(t);for(let i=0;i6)throw Error(`Packed transpose for rank ${this.rank} is not yet supported.`);const n=Ce(this.rank),i=ex("rc",this.rank),r=new Array(this.rank);for(let c=0;c{const{x:n}=e,{reductionIndices:i,keepDims:r}=t,o=s,a=n.shape.length,l=E.parseAxisParam(i,n.shape);let c=l;const p=U.getAxesPermutation(c,a),u=p!=null,h=o.shouldExecuteOnCPU([n]);let d=n;if(u){if(h){const S=o.texData.get(d.dataId),x=S.values,I=new Array(a);for(let R=0;R{const{x:n}=e,{filterSize:i,strides:r,pad:o,includeBatchInIndex:a}=t,l=s;E.assert(n.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${n.shape.length}.`);const c=[1,1];E.assert(U.eitherStridesOrDilationsAreOne(r,c),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${r} and dilations '${c}'`);const p=U.computePool2DInfo(n.shape,i,r,c,o),[u,h]=H2(n,a,p,l);return[u,h]}};const Y2={kernelName:pc,backendName:"webgl",kernelFunc:({inputs:e,backend:t,attrs:s})=>{U.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");const{boxes:n,scores:i}=e,{maxOutputSize:r,iouThreshold:o,scoreThreshold:a}=s,l=t,c=l.readSync(n.dataId),p=l.readSync(i.dataId),u=r,h=o,d=a;return St.nonMaxSuppressionV3Impl(c,p,u,h,d)}};const nP=St.nonMaxSuppressionV4Impl,K2={kernelName:Mr,backendName:"webgl",kernelFunc:({inputs:e,backend:t,attrs:s})=>{U.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");const{boxes:n,scores:i}=e,{maxOutputSize:r,iouThreshold:o,scoreThreshold:a,padToMaxOutputSize:l}=s,c=t,p=c.readSync(n.dataId),u=c.readSync(i.dataId),{selectedIndices:h,validOutputs:d}=nP(p,u,r,o,a,l);return[h,d]}};const iP=St.nonMaxSuppressionV5Impl,X2={kernelName:Ur,backendName:"webgl",kernelFunc:({inputs:e,backend:t,attrs:s})=>{U.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");const{boxes:n,scores:i}=e,{maxOutputSize:r,iouThreshold:o,scoreThreshold:a,softNmsSigma:l}=s,c=t,p=c.readSync(n.dataId),u=c.readSync(i.dataId),h=r,d=o,m=a,f=l,{selectedIndices:y,selectedScores:b}=iP(p,u,h,d,m,f);return[y,b]}};class J2{constructor(e,t,s,n){this.variableNames=["Image"],this.outputShape=[];const i=e[1],r=e[2],o=Math.sin(t).toFixed(3),a=Math.cos(t).toFixed(3);this.outputShape=e;const[l,c]=U.getImageCenter(n,i,r),p=l.toFixed(3),u=c.toFixed(3);let h="";typeof s=="number"?h=`float outputValue = ${s.toFixed(2)};`:h=` + vec3 fill = vec3(${s.join(",")}); + float outputValue = fill[coords[3]];`,this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int x = coords[2]; + int y = coords[1]; + float coordXFloat = (float(x) - ${p}) * ${a} - (float(y) - ${u}) * ${o}; + float coordYFloat = (float(x) - ${p}) * ${o} + (float(y) - ${u}) * ${a}; + int coordX = int(round(coordXFloat + ${p})); + int coordY = int(round(coordYFloat + ${u})); + ${h} + if(coordX >= 0 && coordX < ${r} && coordY >= 0 && coordY < ${i}) { + outputValue = getImage(coords[0], coordY, coordX, coords[3]); + } + setOutput(outputValue); + } + `}}const Z2={kernelName:Wr,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:s})=>{const{image:n}=e,{radians:i,fillValue:r,center:o}=t,a=s,l=new J2(n.shape,i,r,o),c=a.runWebGLProgram(l,[n],n.dtype);return c}};const Q2={kernelName:$r,backendName:"webgl",kernelFunc:({inputs:e,backend:t})=>{const{x:s}=e,n=t,i=new _e(s.shape,T2);return n.runWebGLProgram(i,[s],s.dtype)}};const eO={kernelName:di,backendName:"webgl",kernelFunc:({inputs:e,backend:t})=>{const{a:s,b:n}=e,i="return (a - b) * (a - b);",r=t,o=$().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Qs(i,s.shape,n.shape):new mt(i,s.shape,n.shape);return r.compileAndRun(o,[s,n])}};const tO={kernelName:mi,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:s})=>{const{x:n}=e,{perm:i}=t,r=s,o=n.shape.length,a=new Array(o);for(let c=0;cdl,Acos:()=>ml,Acosh:()=>fl,AdadeltaOptimizer:()=>bo,AdagradOptimizer:()=>wo,AdamOptimizer:()=>xo,AdamaxOptimizer:()=>Lo,Add:()=>Er,AddN:()=>gl,All:()=>mg,Any:()=>fg,ArgMax:()=>yl,ArgMin:()=>bl,Asin:()=>wl,Asinh:()=>xl,Atan:()=>Ll,Atan2:()=>vl,Atanh:()=>Sl,AvgPool:()=>Tl,AvgPool3D:()=>Il,AvgPool3DBackprop:()=>yg,AvgPoolBackprop:()=>gg,BatchMatMul:()=>Al,BatchToSpaceND:()=>Nl,BroadcastTo:()=>Cl,Callback:()=>lw,CallbackList:()=>zb,Cast:()=>kr,Ceil:()=>Rl,ClipByValue:()=>Ol,Complex:()=>bg,Concat:()=>El,Conv2D:()=>kl,Conv2DBackpropFilter:()=>wg,Conv2DBackpropInput:()=>_l,Conv3D:()=>Dl,Conv3DBackpropFilterV2:()=>xg,Conv3DBackpropInputV2:()=>Lg,Cos:()=>Fl,Cosh:()=>Ml,CropAndResize:()=>Sg,Cumsum:()=>Ul,CustomCallback:()=>Pb,DataStorage:()=>Xp,DepthToSpace:()=>vg,DepthwiseConv2dNative:()=>$l,DepthwiseConv2dNativeBackpropFilter:()=>Tg,DepthwiseConv2dNativeBackpropInput:()=>Ig,Diag:()=>Ag,Dilation2D:()=>_r,Dilation2DBackpropFilter:()=>ea,Dilation2DBackpropInput:()=>Qo,Div:()=>ui,ENV:()=>pg,EarlyStopping:()=>cw,Elu:()=>Wl,EluGrad:()=>Ng,Environment:()=>cg,Equal:()=>Cg,Erf:()=>zl,Exp:()=>Bl,Expm1:()=>Pl,FFT:()=>Rg,Fill:()=>Og,FlipLeftRight:()=>Dr,Floor:()=>jl,FloorDiv:()=>Vl,FromPixels:()=>ta,FusedBatchNorm:()=>Gl,FusedConv2D:()=>Ih,FusedDepthwiseConv2D:()=>Ah,GatherNd:()=>Eg,GatherV2:()=>Hl,GraphModel:()=>Dw,Greater:()=>kg,GreaterEqual:()=>ql,History:()=>Bb,IFFT:()=>_g,Identity:()=>Yl,Imag:()=>Dg,InputSpec:()=>rt,IsFinite:()=>Kl,IsInf:()=>Xl,IsNan:()=>Jl,KernelBackend:()=>Jp,LRN:()=>tc,LRNBackprop:()=>Bg,LayerVariable:()=>Td,LayersModel:()=>gn,Less:()=>Fg,LessEqual:()=>Mg,LinSpace:()=>Ug,Log:()=>Zl,Log1p:()=>Ql,LogSoftmax:()=>ec,LogicalAnd:()=>$g,LogicalNot:()=>Wg,LogicalOr:()=>zg,Max:()=>hi,MaxPool:()=>nc,MaxPool3D:()=>ic,MaxPool3DBackprop:()=>jg,MaxPoolBackprop:()=>Pg,MaxPoolWithArgmax:()=>Fr,Maximum:()=>sc,Mean:()=>e1,Min:()=>rc,Minimum:()=>oc,Mod:()=>ac,MomentumOptimizer:()=>So,Multiply:()=>lc,Negate:()=>cc,NonMaxSuppressionV3:()=>pc,NonMaxSuppressionV4:()=>Mr,NonMaxSuppressionV5:()=>Ur,NotEqual:()=>Vg,OneHot:()=>hc,OnesLike:()=>uc,Optimizer:()=>fs,PadV2:()=>dc,Pool:()=>t1,Pow:()=>mc,Prelu:()=>fc,Prod:()=>Gg,RMSPropOptimizer:()=>vo,RNN:()=>ri,Range:()=>Hg,Rank:()=>uy,Real:()=>qg,Reciprocal:()=>gc,Reduction:()=>ht,Relu:()=>yc,Relu6:()=>Lc,Reshape:()=>bc,ResizeBilinear:()=>xc,ResizeBilinearGrad:()=>Kg,ResizeNearestNeighbor:()=>wc,ResizeNearestNeighborGrad:()=>Yg,Reverse:()=>Sc,RotateWithOffset:()=>Wr,Round:()=>vc,Rsqrt:()=>Tc,SGDOptimizer:()=>Ei,ScatterNd:()=>Xg,SelectV2:()=>Ic,Selu:()=>Ac,Sequential:()=>yr,Sigmoid:()=>Ec,Sign:()=>Oc,Sin:()=>Cc,Sinh:()=>Rc,Slice:()=>Nc,Softmax:()=>Uc,Softplus:()=>kc,SpaceToBatchND:()=>Fc,SparseToDense:()=>Jg,SplitV:()=>Mc,Sqrt:()=>_c,Square:()=>$r,SquaredDifference:()=>di,Step:()=>Gc,StridedSlice:()=>Zg,Sub:()=>$c,Sum:()=>Dc,SymbolicTensor:()=>bs,Tan:()=>Wc,Tanh:()=>zc,Tensor:()=>ue,TensorBuffer:()=>fi,Tile:()=>Bc,TopK:()=>Qg,Transpose:()=>mi,Unpack:()=>Pc,UnsortedSegmentSum:()=>jc,Variable:()=>Xn,ZerosLike:()=>Vc,_FusedMatMul:()=>Th,abs:()=>Je,acos:()=>ip,acosh:()=>rp,add:()=>W,addN:()=>op,addStrict:()=>OS,all:()=>jr,any:()=>sr,argMax:()=>nr,argMin:()=>ap,asin:()=>lp,asinh:()=>cp,atan:()=>pp,atan2:()=>up,atanh:()=>hp,avgPool:()=>rs,avgPool3d:()=>Gr,backend:()=>Sy,backend_util:()=>U,basicLSTMCell:()=>_y,batchNorm:()=>on,batchNorm2d:()=>gp,batchNorm3d:()=>yp,batchNorm4d:()=>bp,batchToSpaceND:()=>wi,booleanMaskAsync:()=>vS,broadcastTo:()=>or,browser:()=>pr,buffer:()=>le,callbacks:()=>QA,cast:()=>K,ceil:()=>wp,clipByValue:()=>Dt,clone:()=>Ps,complex:()=>Ze,concat:()=>ge,concat1d:()=>xp,concat2d:()=>Lp,concat3d:()=>Sp,concat4d:()=>vp,constraints:()=>_b,conv1d:()=>Hr,conv2d:()=>yt,conv2dTranspose:()=>qr,conv3d:()=>Yr,conv3dTranspose:()=>Dy,cos:()=>xi,cosh:()=>Kr,cosineWindow:()=>ga,cumsum:()=>Xr,customGrad:()=>ms,data:()=>Bw,deprecationWarn:()=>xt,depthToSpace:()=>Tp,depthwiseConv2d:()=>In,deregisterOp:()=>sN,device_util:()=>la,diag:()=>Fy,dilation2d:()=>Ip,disableDeprecationWarnings:()=>sE,dispose:()=>ce,disposeVariables:()=>nE,div:()=>J,divNoNan:()=>Ap,divStrict:()=>ES,dot:()=>My,dropout:()=>jh,elu:()=>An,enableDebugMode:()=>tE,enableProdMode:()=>eE,enclosingPowerOfTwo:()=>Vh,engine:()=>os,env:()=>$,equal:()=>Qt,equalStrict:()=>TS,erf:()=>Np,exp:()=>At,expandDims:()=>Nt,expm1:()=>Cp,eye:()=>ar,fft:()=>Li,fill:()=>Ft,findBackend:()=>cE,findBackendFactory:()=>pE,floor:()=>Nn,floorDiv:()=>Jr,fused:()=>Hs,gather:()=>Cn,gatherND:()=>Ph,gather_util:()=>kv,getBackend:()=>aE,getGradient:()=>Nh,getKernel:()=>qc,getKernelsForBackend:()=>Ch,grad:()=>Dk,grads:()=>Fk,greater:()=>Ct,greaterEqual:()=>as,greaterEqualStrict:()=>IS,greaterStrict:()=>AS,ifft:()=>Qn,imag:()=>Ht,image:()=>ks,inTopKAsync:()=>GS,initializers:()=>$b,input:()=>zd,io:()=>Ot,irfft:()=>Zr,isFinite:()=>$y,isInf:()=>Wy,isNaN:()=>zy,keep:()=>gt,kernel_impls:()=>St,layers:()=>tw,leakyRelu:()=>Qr,less:()=>Si,lessEqual:()=>vs,lessEqualStrict:()=>NS,lessStrict:()=>CS,linalg:()=>Zh,linspace:()=>Rp,loadGraphModel:()=>kN,loadLayersModel:()=>LA,localResponseNormalization:()=>Op,log:()=>Mt,log1p:()=>eo,logSigmoid:()=>By,logSoftmax:()=>to,logSumExp:()=>Ep,logicalAnd:()=>zt,logicalNot:()=>vi,logicalOr:()=>so,logicalXor:()=>Py,losses:()=>Lv,matMul:()=>Le,math:()=>Ev,max:()=>st,maxPool:()=>lt,maxPool3d:()=>no,maxPoolWithArgmax:()=>kp,maximum:()=>Wt,maximumStrict:()=>kS,mean:()=>Ge,memory:()=>pa,metrics:()=>rw,min:()=>an,minimum:()=>Vs,minimumStrict:()=>_S,mod:()=>io,modStrict:()=>DS,model:()=>wA,models:()=>ow,moments:()=>lr,movingAverage:()=>zS,mul:()=>C,mulStrict:()=>FS,multiRNNCell:()=>jy,multinomial:()=>_p,neg:()=>Oe,nextFrame:()=>Kp,norm:()=>ma,notEqual:()=>Es,notEqualStrict:()=>RS,oneHot:()=>On,ones:()=>es,onesLike:()=>Bt,op:()=>L,outerProduct:()=>Vy,pad:()=>Ut,pad1d:()=>Gy,pad2d:()=>Hy,pad3d:()=>qy,pad4d:()=>Yy,pool:()=>Ky,pow:()=>qt,powStrict:()=>MS,prelu:()=>Ii,print:()=>Xy,prod:()=>ro,profile:()=>iE,rand:()=>Jy,randomGamma:()=>tb,randomNormal:()=>ha,randomUniform:()=>Gs,range:()=>ei,ready:()=>oE,real:()=>$t,reciprocal:()=>Fp,registerBackend:()=>dp,registerCallbackConstructor:()=>SA,registerGradient:()=>ty,registerKernel:()=>Yc,registerOp:()=>tN,regularizers:()=>aw,relu:()=>ke,relu6:()=>Mp,removeBackend:()=>lE,reshape:()=>O,reverse:()=>Lt,reverse1d:()=>sb,reverse2d:()=>nb,reverse3d:()=>ib,reverse4d:()=>rb,rfft:()=>Ai,round:()=>Up,rsqrt:()=>oo,scalar:()=>j,scatterND:()=>Bh,scatter_util:()=>BS,selu:()=>ao,separableConv2d:()=>Ni,sequential:()=>xA,serialization:()=>P,setBackend:()=>mS,setPlatform:()=>uE,setdiff1dAsync:()=>$p,sigmoid:()=>Ss,sign:()=>Wp,signal:()=>xv,sin:()=>lo,sinh:()=>co,slice:()=>he,slice1d:()=>po,slice2d:()=>da,slice3d:()=>Ci,slice4d:()=>cr,slice_util:()=>Jn,softmax:()=>Yt,softplus:()=>Rn,spaceToBatchND:()=>Ti,sparseToDense:()=>fa,spectral:()=>wv,split:()=>ls,sqrt:()=>He,square:()=>ye,squaredDifference:()=>Ri,squaredDifferenceStrict:()=>US,squeeze:()=>En,stack:()=>Xe,step:()=>kn,stridedSlice:()=>zp,sub:()=>X,subStrict:()=>$S,sum:()=>te,sumOutType:()=>tp,tan:()=>Bp,tanh:()=>Zn,tensor:()=>ze,tensor1d:()=>Fe,tensor2d:()=>ts,tensor3d:()=>Pp,tensor4d:()=>cs,tensor5d:()=>ab,tensor6d:()=>lb,tensor_util:()=>rn,test_util:()=>wS,tidy:()=>N,tile:()=>js,time:()=>rE,topk:()=>jp,train:()=>hr,transpose:()=>se,truncatedNormal:()=>Oi,unregisterGradient:()=>n1,unregisterKernel:()=>s1,unsortedSegmentSum:()=>Vp,unstack:()=>nt,upcastType:()=>wt,util:()=>E,valueAndGrad:()=>Mk,valueAndGrads:()=>Uk,variable:()=>Gp,variableGrads:()=>Uh,version:()=>oP,version_converter:()=>Zm,version_core:()=>Lb,version_layers:()=>fr,where:()=>at,whereAsync:()=>uo,zeros:()=>Ie,zerosLike:()=>ne});const oP={"tfjs-core":Lb,"tfjs-backend-cpu":Gw,"tfjs-backend-webgl":Dx,"tfjs-data":df,"tfjs-layers":fr,"tfjs-converter":Zm,tfjs:sO};function ji(e,t,s=!1){if(e.beginPath(),t.slice(1).forEach(({x:n,y:i},r)=>{const o=t[r];e.moveTo(o.x,o.y),e.lineTo(n,i)}),s){const n=t[t.length-1],i=t[0];if(!n||!i)return;e.moveTo(n.x,n.y),e.lineTo(i.x,i.y)}e.stroke()}class Ls{constructor(e,t){if(!Pn(e)||!Pn(t))throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({width:e,height:t})}`);this._width=e,this._height=t}get width(){return this._width}get height(){return this._height}reverse(){return new Ls(1/this.width,1/this.height)}}const Zu={};Re(Zu,{computeReshapedDimensions:()=>Wx,getCenterPoint:()=>Wo,isDimensions:()=>Ff,isEven:()=>Df,isFloat:()=>$x,isTensor:()=>Mo,isTensor1D:()=>aP,isTensor2D:()=>Ux,isTensor3D:()=>Uo,isTensor4D:()=>en,isValidNumber:()=>Pn,isValidProbablitiy:()=>Va,range:()=>ai,round:()=>$o});function Mo(e,t){return e instanceof ue&&e.shape.length===t}function aP(e){return Mo(e,1)}function Ux(e){return Mo(e,2)}function Uo(e){return Mo(e,3)}function en(e){return Mo(e,4)}function $x(e){return e%1!==0}function Df(e){return e%2===0}function $o(e,t=2){const s=Math.pow(10,t);return Math.floor(e*s)/s}function Ff(e){return e&&e.width&&e.height}function Wx({width:e,height:t},s){const n=s/Math.max(t,e);return new Ls(Math.round(e*n),Math.round(t*n))}function Wo(e){return e.reduce((t,s)=>t.add(s),new Ee(0,0)).div(new Ee(e.length,e.length))}function ai(e,t,s){return Array(e).fill(0).map((n,i)=>t+i*s)}function Pn(e){return!!e&&e!==Infinity&&e!==-Infinity&&!isNaN(e)||e===0}function Va(e){return Pn(e)&&0<=e&&e<=1}class Ee{constructor(e,t){this._x=e,this._y=t}get x(){return this._x}get y(){return this._y}add(e){return new Ee(this.x+e.x,this.y+e.y)}sub(e){return new Ee(this.x-e.x,this.y-e.y)}mul(e){return new Ee(this.x*e.x,this.y*e.y)}div(e){return new Ee(this.x/e.x,this.y/e.y)}abs(){return new Ee(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(Math.pow(this.x,2)+Math.pow(this.y,2))}floor(){return new Ee(Math.floor(this.x),Math.floor(this.y))}}class tt{constructor(e,t=!0){const s=e||{},n=[s.left,s.top,s.right,s.bottom].every(Pn),i=[s.x,s.y,s.width,s.height].every(Pn);if(!i&&!n)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(s)}`);const[r,o,a,l]=i?[s.x,s.y,s.width,s.height]:[s.left,s.top,s.right-s.left,s.bottom-s.top];tt.assertIsValidBox({x:r,y:o,width:a,height:l},"Box.constructor",t),this._x=r,this._y=o,this._width=a,this._height=l}static isRect(e){return!!e&&[e.x,e.y,e.width,e.height].every(Pn)}static assertIsValidBox(e,t,s=!1){if(!tt.isRect(e))throw new Error(`${t} - invalid box: ${JSON.stringify(e)}, expected object with properties x, y, width, height`);if(!s&&(e.width<0||e.height<0))throw new Error(`${t} - width (${e.width}) and height (${e.height}) must be positive numbers`)}get x(){return this._x}get y(){return this._y}get width(){return this._width}get height(){return this._height}get left(){return this.x}get top(){return this.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get area(){return this.width*this.height}get topLeft(){return new Ee(this.left,this.top)}get topRight(){return new Ee(this.right,this.top)}get bottomLeft(){return new Ee(this.left,this.bottom)}get bottomRight(){return new Ee(this.right,this.bottom)}round(){const[e,t,s,n]=[this.x,this.y,this.width,this.height].map(i=>Math.round(i));return new tt({x:e,y:t,width:s,height:n})}floor(){const[e,t,s,n]=[this.x,this.y,this.width,this.height].map(i=>Math.floor(i));return new tt({x:e,y:t,width:s,height:n})}toSquare(){let{x:e,y:t,width:s,height:n}=this;const i=Math.abs(s-n);return st&&(o=-p+t+s,p=t),u>e&&(a=-u+e+n,u=e),l<1&&(a=2-l,l=1),c<1&&(a=2-c,c=1),{dy:r,edy:a,dx:i,edx:o,y:c,ey:u,x:l,ex:p,w:s,h:n}}calibrate(e){return new tt({left:this.left+e.left*this.width,top:this.top+e.top*this.height,right:this.right+e.right*this.width,bottom:this.bottom+e.bottom*this.height}).toSquare().round()}}class Zo extends tt{constructor(e,t,s,n,i=!1){super({left:e,top:t,right:s,bottom:n},i)}}class Or{constructor(e,t,s,n,i){this._imageDims=new Ls(i.width,i.height),this._score=e,this._classScore=t,this._className=s,this._box=new tt(n).rescale(this._imageDims)}get score(){return this._score}get classScore(){return this._classScore}get className(){return this._className}get box(){return this._box}get imageDims(){return this._imageDims}get imageWidth(){return this.imageDims.width}get imageHeight(){return this.imageDims.height}get relativeBox(){return new tt(this._box).rescale(this.imageDims.reverse())}forSize(e,t){return new Or(this.score,this.classScore,this.className,this.relativeBox,{width:e,height:t})}}class bt extends Or{constructor(e,t,s){super(e,e,"",t,s)}forSize(e,t){const{score:s,relativeBox:n,imageDims:i}=super.forSize(e,t);return new bt(s,n,i)}}function ih(e,t,s=!0){const n=Math.max(0,Math.min(e.right,t.right)-Math.max(e.left,t.left)),i=Math.max(0,Math.min(e.bottom,t.bottom)-Math.max(e.top,t.top)),r=n*i;return s?r/(e.area+t.area-r):r/Math.min(e.area,t.area)}function nh(e){const t=e.map(a=>a.x),s=e.map(a=>a.y),n=t.reduce((a,l)=>llaa({score:o,boxIndex:a})).sort((o,a)=>o.score-a.score).map(o=>o.boxIndex);const r=[];for(;i.length>0;){const o=i.pop();r.push(o);const a=i,l=[];for(let c=0;cl[p]<=s)}return r}function sn(e,t){return N(()=>{const[s,n,i]=t,r=Ft([...e.shape.slice(0,3),1],s),o=Ft([...e.shape.slice(0,3),1],n),a=Ft([...e.shape.slice(0,3),1],i),l=ge([r,o,a],3);return X(e,l)})}function th(e,t=!1){return N(()=>{const[s,n]=e.shape.slice(1);if(s===n)return e;const i=Math.abs(s-n),r=Math.round(i*(t?.5:1)),o=s>n?2:1,a=h=>{const d=e.shape.slice();return d[o]=h,Ft(d,0)},l=a(r),c=i-l.shape[o],p=t&&c?a(c):null,u=[p,e,l].filter(h=>!!h).map(h=>h.toFloat());return ge(u,o)})}function wL(e){const t=e.slice();for(let s=t.length-1;s>0;s--){const n=Math.floor(Math.random()*(s+1)),i=t[s];t[s]=t[n],t[n]=i}return t}function Ho(e){return 1/(1+Math.exp(-e))}function xL(e){return Math.log(e/(1-e))}class Sh extends tt{constructor(e,t,s,n,i=!1){super({x:e,y:t,width:s,height:n},i)}}const lP=.5,cP=.43,pP=.45;class Ws{constructor(e,t,s=new Ee(0,0)){const{width:n,height:i}=t;this._imgDims=new Ls(n,i),this._shift=s,this._positions=e.map(r=>r.mul(new Ee(n,i)).add(s))}get shift(){return new Ee(this._shift.x,this._shift.y)}get imageWidth(){return this._imgDims.width}get imageHeight(){return this._imgDims.height}get positions(){return this._positions}get relativePositions(){return this._positions.map(e=>e.sub(this._shift).div(new Ee(this.imageWidth,this.imageHeight)))}forSize(e,t){return new this.constructor(this.relativePositions,{width:e,height:t})}shiftBy(e,t){return new this.constructor(this.relativePositions,this._imgDims,new Ee(e,t))}shiftByPoint(e){return this.shiftBy(e.x,e.y)}align(e,t={}){if(e){const i=e instanceof bt?e.box.floor():new tt(e);return this.shiftBy(i.x,i.y).align(null,t)}const{useDlibAlignment:s,minBoxPadding:n}=Object.assign({},{useDlibAlignment:!1,minBoxPadding:.2},t);return s?this.alignDlib():this.alignMinBbox(n)}alignDlib(){const e=this.getRefPointsForAlignment(),[t,s,n]=e,i=p=>n.sub(p).magnitude(),r=(i(t)+i(s))/2,o=Math.floor(r/pP),a=Wo(e),l=Math.floor(Math.max(0,a.x-lP*o)),c=Math.floor(Math.max(0,a.y-cP*o));return new Sh(l,c,Math.min(o,this.imageWidth+l),Math.min(o,this.imageHeight+c))}alignMinBbox(e){const t=nh(this.positions);return t.pad(t.width*e,t.height*e)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}}class GL extends Ws{getRefPointsForAlignment(){const e=this.positions;return[e[0],e[1],Wo([e[3],e[4]])]}}class Jo extends Ws{getJawOutline(){return this.positions.slice(0,17)}getLeftEyeBrow(){return this.positions.slice(17,22)}getRightEyeBrow(){return this.positions.slice(22,27)}getNose(){return this.positions.slice(27,36)}getLeftEye(){return this.positions.slice(36,42)}getRightEye(){return this.positions.slice(42,48)}getMouth(){return this.positions.slice(48,68)}getRefPointsForAlignment(){return[this.getLeftEye(),this.getRightEye(),this.getMouth()].map(Wo)}}class hl{constructor(e,t){this._label=e,this._distance=t}get label(){return this._label}get distance(){return this._distance}toString(e=!0){return`${this.label}${e?` (${$o(this.distance)})`:""}`}}class ul extends tt{constructor(e,t){super(e);this._label=t}static assertIsValidLabeledBox(e,t){if(tt.assertIsValidBox(e,t),!Pn(e.label))throw new Error(`${t} - expected property label (${e.label}) to be a number`)}get label(){return this._label}}class tr{constructor(e,t){if(!(typeof e=="string"))throw new Error("LabeledFaceDescriptors - constructor expected label to be a string");if(!Array.isArray(t)||t.some(s=>!(s instanceof Float32Array)))throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array");this._label=e,this._descriptors=t}get label(){return this._label}get descriptors(){return this._descriptors}toJSON(){return{label:this.label,descriptors:this.descriptors.map(e=>Array.from(e))}}static fromJSON(e){const t=e.descriptors.map(s=>new Float32Array(s));return new tr(e.label,t)}}class VL extends ul{constructor(e,t,s,n){super(e,t);this._score=s,this._classScore=n}static assertIsValidPredictedBox(e,t){if(ul.assertIsValidLabeledBox(e,t),!Va(e.score)||!Va(e.classScore))throw new Error(`${t} - expected properties score (${e.score}) and (${e.classScore}) to be a number between [0, 1]`)}get score(){return this._score}get classScore(){return this._classScore}}function Sn(e){return e.detection instanceof bt}function Xi(e,t){const s={detection:t};return Object.assign({},e,s)}function zx(){const e=window.fetch||function(){throw new Error("fetch - missing fetch implementation for browser environment")},t=function(){throw new Error("readFile - filesystem not available for browser environment")};return{Canvas:HTMLCanvasElement,CanvasRenderingContext2D,Image:HTMLImageElement,ImageData,Video:HTMLVideoElement,createCanvasElement:()=>document.createElement("canvas"),createImageElement:()=>document.createElement("img"),fetch:e,readFile:t}}function Mf(e){let t="";if(!e)try{e=require("fs")}catch(n){t=n.toString()}const s=e?function(n){return new Promise((i,r)=>{e.readFile(n,function(o,a){return o?r(o):i(a)})})}:function(){throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)};return{readFile:s}}function Bx(){const e=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,s=function(){if(e)return new e();throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},n=function(){if(t)return new t();throw new Error("createImageElement - missing Image implementation for nodejs environment")},i=global.fetch||function(){throw new Error("fetch - missing fetch implementation for nodejs environment")},r=Mf();return{Canvas:e||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:s,createImageElement:n,fetch:i,...r}}function Px(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}const jx=nl(gL());let Xt;function uP(){if(!Xt)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return Xt}function Vx(e){Xt=e}function Gx(){if(Px())return Vx(zx());if(jx.isNodejs())return Vx(Bx())}function hP(e){if(Xt||Gx(),!Xt)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");const{Canvas:t=Xt.Canvas,Image:s=Xt.Image}=e;Xt.Canvas=t,Xt.Image=s,Xt.createCanvasElement=e.createCanvasElement||(()=>new t()),Xt.createImageElement=e.createImageElement||(()=>new s()),Xt.ImageData=e.ImageData||Xt.ImageData,Xt.Video=e.Video||Xt.Video,Xt.fetch=e.fetch||Xt.fetch,Xt.readFile=e.readFile||Xt.readFile}const Ve={getEnv:uP,setEnv:Vx,initialize:Gx,createBrowserEnv:zx,createFileSystem:Mf,createNodejsEnv:Bx,monkeyPatch:hP,isBrowser:Px,isNodejs:jx.isNodejs};Gx();function Zi(e){return!Ve.isNodejs()&&typeof e=="string"?document.getElementById(e):e}function us(e){const{Canvas:t,CanvasRenderingContext2D:s}=Ve.getEnv();if(e instanceof s)return e;const n=Zi(e);if(!(n instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");const i=n.getContext("2d");if(!i)throw new Error("resolveContext2d - canvas 2d context is null");return i}var li;(function(e){e.TOP_LEFT="TOP_LEFT",e.TOP_RIGHT="TOP_RIGHT",e.BOTTOM_LEFT="BOTTOM_LEFT",e.BOTTOM_RIGHT="BOTTOM_RIGHT"})(li||(li={}));class Uf{constructor(e={}){const{anchorPosition:t,backgroundColor:s,fontColor:n,fontSize:i,fontStyle:r,padding:o}=e;this.anchorPosition=t||li.TOP_LEFT,this.backgroundColor=s||"rgba(0, 0, 0, 0.5)",this.fontColor=n||"rgba(255, 255, 255, 1)",this.fontSize=i||14,this.fontStyle=r||"Georgia",this.padding=o||4}}class Ga{constructor(e,t,s={}){this.text=typeof e=="string"?[e]:e instanceof Ga?e.text:e,this.anchor=t,this.options=new Uf(s)}measureWidth(e){const{padding:t}=this.options;return this.text.map(s=>e.measureText(s).width).reduce((s,n)=>s{const d=a+p.x,m=a+p.y+(h+1)*r;s.fillText(u,d,m)})}}class nO{constructor(e={}){const{boxColor:t,lineWidth:s,label:n,drawLabelOptions:i}=e;this.boxColor=t||"rgba(0, 0, 255, 1)",this.lineWidth=s||2,this.label=n;const r={anchorPosition:li.BOTTOM_LEFT,backgroundColor:this.boxColor};this.drawLabelOptions=new Uf(Object.assign({},r,i))}}class Hx{constructor(e,t={}){this.box=new tt(e),this.options=new nO(t)}draw(e){const t=us(e),{boxColor:s,lineWidth:n}=this.options,{x:i,y:r,width:o,height:a}=this.box;t.strokeStyle=s,t.lineWidth=n,t.strokeRect(i,r,o,a);const{label:l}=this.options;l&&new Ga([l],{x:i-n/2,y:r},this.options.drawLabelOptions).draw(e)}}function dP(e,t){const s=Array.isArray(t)?t:[t];s.forEach(n=>{const i=n instanceof bt?n.score:Sn(n)?n.detection.score:void 0,r=n instanceof bt?n.box:Sn(n)?n.detection.box:new tt(n),o=i?`${$o(i)}`:void 0;new Hx(r,{label:o}).draw(e)})}function Ko(e){const{Image:t,Video:s}=Ve.getEnv();return e instanceof t&&e.complete||e instanceof s&&e.readyState>=3}function Lh(e){return new Promise((t,s)=>{if(e instanceof Ve.getEnv().Canvas||Ko(e))return t();function n(r){if(!r.currentTarget)return;r.currentTarget.removeEventListener("load",n),r.currentTarget.removeEventListener("error",i),t(r)}function i(r){if(!r.currentTarget)return;r.currentTarget.removeEventListener("load",n),r.currentTarget.removeEventListener("error",i),s(r)}e.addEventListener("load",n),e.addEventListener("error",i)})}function xh(e){return new Promise((t,s)=>{if(!(e instanceof Blob))return s("bufferToImage - expected buf to be of type: Blob");const n=new FileReader();n.onload=()=>{if(typeof n.result!="string")return s("bufferToImage - expected reader.result to be a string, in onload");const i=Ve.getEnv().createImageElement();i.onload=()=>t(i),i.onerror=s,i.src=n.result},n.onerror=s,n.readAsDataURL(e)})}function Qi(e){const{Image:t,Video:s}=Ve.getEnv();return e instanceof t?new Ls(e.naturalWidth,e.naturalHeight):e instanceof s?new Ls(e.videoWidth,e.videoHeight):new Ls(e.width,e.height)}function Rr({width:e,height:t}){const{createCanvasElement:s}=Ve.getEnv(),n=s();return n.width=e,n.height=t,n}function Xo(e,t){const{ImageData:s}=Ve.getEnv();if(!(e instanceof s)&&!Ko(e))throw new Error("createCanvasFromMedia - media has not finished loading yet");const{width:n,height:i}=t||Qi(e),r=Rr({width:n,height:i});return e instanceof s?us(r).putImageData(e,0,0):us(r).drawImage(e,0,0,n,i),r}async function bh(e,t){const s=t||Ve.getEnv().createCanvasElement(),[n,i,r]=e.shape.slice(en(e)?1:0),o=N(()=>e.as3D(n,i,r).toInt());return await pr.toPixels(o,s),o.dispose(),s}function pl(e){const{Image:t,Canvas:s,Video:n}=Ve.getEnv();return e instanceof t||e instanceof s||e instanceof n}function yh(e,t,s=!1){const{Image:n,Canvas:i}=Ve.getEnv();if(!(e instanceof n||e instanceof i))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");const r=Qi(e),o=t/Math.max(r.height,r.width),a=o*r.width,l=o*r.height,c=Rr({width:t,height:t}),p=e instanceof i?e:Xo(e),u=Math.abs(a-l)/2,h=s&&a{if(Uo(s)){this._imageTensors[n]=s,this._inputDimensions[n]=s.shape;return}if(en(s)){const r=s.shape[0];if(r!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${r} passed, but not supported in input array`);this._imageTensors[n]=s,this._inputDimensions[n]=s.shape.slice(1);return}const i=s instanceof Ve.getEnv().Canvas?s:Xo(s);this._canvases[n]=i,this._inputDimensions[n]=[i.height,i.width,3]})}get imageTensors(){return this._imageTensors}get canvases(){return this._canvases}get isBatchInput(){return this.batchSize>1||this._treatAsBatchInput}get batchSize(){return this._batchSize}get inputDimensions(){return this._inputDimensions}get inputSize(){return this._inputSize}get reshapedInputDimensions(){return ai(this.batchSize,0,1).map((e,t)=>this.getReshapedInputDimensions(t))}getInput(e){return this.canvases[e]||this.imageTensors[e]}getInputDimensions(e){return this._inputDimensions[e]}getInputHeight(e){return this._inputDimensions[e][0]}getInputWidth(e){return this._inputDimensions[e][1]}getReshapedInputDimensions(e){if(typeof this.inputSize!="number")throw new Error("getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet");const t=this.getInputWidth(e),s=this.getInputHeight(e);return Wx({width:t,height:s},this.inputSize)}toBatchTensor(e,t=!0){return this._inputSize=e,N(()=>{const s=ai(this.batchSize,0,1).map(i=>{const r=this.getInput(i);if(r instanceof ue){let o=en(r)?r:r.expandDims();return o=th(o,t),(o.shape[1]!==e||o.shape[2]!==e)&&(o=ks.resizeBilinear(o,[e,e])),o.as3D(e,e,3)}if(r instanceof Ve.getEnv().Canvas)return pr.fromPixels(yh(r,e,t));throw new Error(`toBatchTensor - at batchIdx ${i}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${r}`)}),n=Xe(s.map(i=>i.toFloat())).as4D(this.batchSize,e,e,3);return n})}}async function pt(e){if(e instanceof pi)return e;let t=Array.isArray(e)?e:[e];if(!t.length)throw new Error("toNetInput - empty array passed as input");const s=i=>Array.isArray(e)?` at input index ${i}:`:"",n=t.map(Zi);return n.forEach((i,r)=>{if(!pl(i)&&!Uo(i)&&!en(i))throw typeof t[r]=="string"?new Error(`toNetInput -${s(r)} string passed, but could not resolve HTMLElement for element id ${t[r]}`):new Error(`toNetInput -${s(r)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(en(i)){const o=i.shape[0];if(o!==1)throw new Error(`toNetInput -${s(r)} tf.Tensor4D with batchSize ${o} passed, but not supported in input array`)}}),await Promise.all(n.map(i=>pl(i)&&Lh(i))),new pi(n,Array.isArray(e))}async function Nr(e,t){const{Canvas:s}=Ve.getEnv();let n=e;if(!(e instanceof s)){const o=await pt(e);if(o.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");const a=o.getInput(0);n=a instanceof s?a:await bh(a)}const i=us(n),r=t.map(o=>o instanceof bt?o.forSize(n.width,n.height).box.floor():o).map(o=>o.clipAtImageBorders(n.width,n.height));return r.map(({x:o,y:a,width:l,height:c})=>{const p=Rr({width:l,height:c});return us(p).putImageData(i.getImageData(o,a,l,c),0,0),p})}async function Cr(e,t){if(!Uo(e)&&!en(e))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(en(e)&&e.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return N(()=>{const[s,n,i]=e.shape.slice(en(e)?1:0),r=t.map(a=>a instanceof bt?a.forSize(n,s).box:a).map(a=>a.clipAtImageBorders(n,s)),o=r.map(({x:a,y:l,width:c,height:p})=>Ci(e.as3D(s,n,i),[l,a,0],[p,c,i]));return o})}async function er(e,t){const s=Ve.getEnv().fetch,n=await s(e,t);if(!(n.status<400))throw new Error(`failed to fetch: (${n.status}) ${n.statusText}, from url: ${n.url}`);return n}async function jL(e){const t=await er(e),s=await t.blob();if(!s.type.startsWith("image/"))throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${s.type}, for url: ${t.url}`);return xh(s)}async function wh(e){return(await er(e)).json()}async function PL(e){return new Float32Array(await(await er(e)).arrayBuffer())}function $f(e,t){const s=`${t}-weights_manifest.json`;if(!e)return{modelBaseUri:"",manifestUri:s};if(e==="/")return{modelBaseUri:"/",manifestUri:`/${s}`};const n=e.startsWith("http://")?"http://":e.startsWith("https://")?"https://":"";e=e.replace(n,"");const i=e.split("/").filter(a=>a),r=e.endsWith(".json")?i[i.length-1]:s;let o=n+(e.endsWith(".json")?i.slice(0,i.length-1):i).join("/");return o=e.startsWith("/")?`/${o}`:o,{modelBaseUri:o,manifestUri:o==="/"?`/${r}`:`${o}/${r}`}}async function gh(e,t){const{manifestUri:s,modelBaseUri:n}=$f(e,t),i=await wh(s);return Ot.loadWeights(i,n)}function BL(e,t,s=!1){const{width:n,height:i}=s?Qi(t):t;return e.width=n,e.height=i,{width:n,height:i}}class hs{constructor(e){this._name=e,this._params=void 0,this._paramMappings=[]}get params(){return this._params}get paramMappings(){return this._paramMappings}get isLoaded(){return!!this.params}getParamFromPath(e){const{obj:t,objProp:s}=this.traversePropertyPath(e);return t[s]}reassignParamFromPath(e,t){const{obj:s,objProp:n}=this.traversePropertyPath(e);s[n].dispose(),s[n]=t}getParamList(){return this._paramMappings.map(({paramPath:e})=>({path:e,tensor:this.getParamFromPath(e)}))}getTrainableParams(){return this.getParamList().filter(e=>e.tensor instanceof Xn)}getFrozenParams(){return this.getParamList().filter(e=>!(e.tensor instanceof Xn))}variable(){this.getFrozenParams().forEach(({path:e,tensor:t})=>{this.reassignParamFromPath(e,t.variable())})}freeze(){this.getTrainableParams().forEach(({path:e,tensor:t})=>{const s=ze(t.dataSync());t.dispose(),this.reassignParamFromPath(e,s)})}dispose(e=!0){this.getParamList().forEach(t=>{if(e&&t.tensor.isDisposed)throw new Error(`param tensor has already been disposed for path ${t.path}`);t.tensor.dispose()}),this._params=void 0}serializeParams(){return new Float32Array(this.getParamList().map(({tensor:e})=>Array.from(e.dataSync())).reduce((e,t)=>e.concat(t)))}async load(e){if(e instanceof Float32Array){this.extractWeights(e);return}await this.loadFromUri(e)}async loadFromUri(e){if(e&&typeof e!="string")throw new Error(`${this._name}.loadFromUri - expected model uri`);const t=await gh(e,this.getDefaultModelName());this.loadFromWeightMap(t)}async loadFromDisk(e){if(e&&typeof e!="string")throw new Error(`${this._name}.loadFromDisk - expected model file path`);const{readFile:t}=Ve.getEnv(),{manifestUri:s,modelBaseUri:n}=$f(e,this.getDefaultModelName()),i=l=>Promise.all(l.map(c=>t(c).then(p=>p.buffer))),r=Ot.weightsLoaderFactory(i),o=JSON.parse((await t(s)).toString()),a=await r(o,n);this.loadFromWeightMap(a)}loadFromWeightMap(e){const{paramMappings:t,params:s}=this.extractParamsFromWeigthMap(e);this._paramMappings=t,this._params=s}extractWeights(e){const{paramMappings:t,params:s}=this.extractParams(e);this._paramMappings=t,this._params=s}traversePropertyPath(e){if(!this.params)throw new Error("traversePropertyPath - model has no loaded params");const t=e.split("/").reduce((i,r)=>{if(!i.nextObj.hasOwnProperty(r))throw new Error(`traversePropertyPath - object does not have property ${r}, for path ${e}`);return{obj:i.nextObj,objProp:r,nextObj:i.nextObj[r]}},{nextObj:this.params}),{obj:s,objProp:n}=t;if(!s||!n||!(s[n]instanceof ue))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${e}`);return{obj:s,objProp:n}}}function Cs(e,t,s){return N(()=>{let n=Ni(e,t.depthwise_filter,t.pointwise_filter,s,"same");return n=W(n,t.bias),n})}function Wf(e,t,s=!1){return N(()=>{const n=ke(s?W(yt(e,t.conv0.filters,[2,2],"same"),t.conv0.bias):Cs(e,t.conv0,[2,2])),i=Cs(n,t.conv1,[1,1]),r=ke(W(n,i)),o=Cs(r,t.conv2,[1,1]);return ke(W(n,W(i,o)))})}function zu(e,t,s=!1,n=!0){return N(()=>{const i=ke(s?W(yt(e,t.conv0.filters,n?[2,2]:[1,1],"same"),t.conv0.bias):Cs(e,t.conv0,n?[2,2]:[1,1])),r=Cs(i,t.conv1,[1,1]),o=ke(W(i,r)),a=Cs(o,t.conv2,[1,1]),l=ke(W(i,W(r,a))),c=Cs(l,t.conv3,[1,1]);return ke(W(i,W(r,W(a,c))))})}function zf(e,t,s="same",n=!1){return N(()=>{const i=W(yt(e,t.filters,[1,1],s),t.bias);return n?ke(i):i})}function Fs(e,t){Object.keys(e).forEach(s=>{t.some(n=>n.originalPath===s)||e[s].dispose()})}function Ha(e,t){return function(s,n,i,r){const o=cs(e(s*n*i*i),[i,i,s,n]),a=Fe(e(n));return t.push({paramPath:`${r}/filters`},{paramPath:`${r}/bias`}),{filters:o,bias:a}}}function Bf(e,t){return function(s,n,i){const r=ts(e(s*n),[s,n]),o=Fe(e(n));return t.push({paramPath:`${i}/weights`},{paramPath:`${i}/bias`}),{weights:r,bias:o}}}class qx{constructor(e,t,s){this.depthwise_filter=e,this.pointwise_filter=t,this.bias=s}}function qa(e,t){return function(s,n,i){const r=cs(e(3*3*s),[3,3,s,1]),o=cs(e(s*n),[1,1,s,n]),a=Fe(e(n));return t.push({paramPath:`${i}/depthwise_filter`},{paramPath:`${i}/pointwise_filter`},{paramPath:`${i}/bias`}),new qx(r,o,a)}}function Ya(e){return function(t){const s=e(`${t}/depthwise_filter`,4),n=e(`${t}/pointwise_filter`,4),i=e(`${t}/bias`,1);return new qx(s,n,i)}}function wn(e,t){return function(s,n,i){const r=e[s];if(!Mo(r,n))throw new Error(`expected weightMap[${s}] to be a Tensor${n}D, instead have ${r}`);return t.push({originalPath:s,paramPath:i||s}),r}}function Ms(e){let t=e;function s(i){const r=t.slice(0,i);return t=t.slice(i),r}function n(){return t}return{extractWeights:s,getRemainingWeights:n}}function Pf(e,t){const s=Ha(e,t),n=qa(e,t);function i(o,a,l,c=!1){const p=c?s(o,a,3,`${l}/conv0`):n(o,a,`${l}/conv0`),u=n(a,a,`${l}/conv1`),h=n(a,a,`${l}/conv2`);return{conv0:p,conv1:u,conv2:h}}function r(o,a,l,c=!1){const{conv0:p,conv1:u,conv2:h}=i(o,a,l,c),d=n(a,a,`${l}/conv3`);return{conv0:p,conv1:u,conv2:h,conv3:d}}return{extractDenseBlock3Params:i,extractDenseBlock4Params:r}}function iO(e){const t=[],{extractWeights:s,getRemainingWeights:n}=Ms(e),{extractDenseBlock4Params:i}=Pf(s,t),r=i(3,32,"dense0",!0),o=i(32,64,"dense1"),a=i(64,128,"dense2"),l=i(128,256,"dense3");if(n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{paramMappings:t,params:{dense0:r,dense1:o,dense2:a,dense3:l}}}function jf(e){return function(t){const s=e(`${t}/filters`,4),n=e(`${t}/bias`,1);return{filters:s,bias:n}}}function Vf(e,t){const s=wn(e,t),n=jf(s),i=Ya(s);function r(a,l=!1){const c=l?n(`${a}/conv0`):i(`${a}/conv0`),p=i(`${a}/conv1`),u=i(`${a}/conv2`);return{conv0:c,conv1:p,conv2:u}}function o(a,l=!1){const c=l?n(`${a}/conv0`):i(`${a}/conv0`),p=i(`${a}/conv1`),u=i(`${a}/conv2`),h=i(`${a}/conv3`);return{conv0:c,conv1:p,conv2:u,conv3:h}}return{extractDenseBlock3Params:r,extractDenseBlock4Params:o}}function rO(e){const t=[],{extractDenseBlock4Params:s}=Vf(e,t),n={dense0:s("dense0",!0),dense1:s("dense1"),dense2:s("dense2"),dense3:s("dense3")};return Fs(e,t),{params:n,paramMappings:t}}class Gf extends hs{constructor(){super("FaceFeatureExtractor")}forwardInput(e){const{params:t}=this;if(!t)throw new Error("FaceFeatureExtractor - load model before inference");return N(()=>{const s=e.toBatchTensor(112,!0),n=[122.782,117.001,104.298],i=sn(s,n).div(j(255));let r=zu(i,t.dense0,!0);return r=zu(r,t.dense1),r=zu(r,t.dense2),r=zu(r,t.dense3),r=rs(r,[7,7],[2,2],"valid"),r})}async forward(e){return this.forwardInput(await pt(e))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeigthMap(e){return rO(e)}extractParams(e){return iO(e)}}function Bu(e,t){return N(()=>W(Le(e,t.weights),t.bias))}function oO(e,t,s){const n=[],{extractWeights:i,getRemainingWeights:r}=Ms(e),o=Bf(i,n),a=o(t,s,"fc");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:n,params:{fc:a}}}function aO(e){const t=[],s=wn(e,t);function n(r){const o=s(`${r}/weights`,2),a=s(`${r}/bias`,1);return{weights:o,bias:a}}const i={fc:n("fc")};return Fs(e,t),{params:i,paramMappings:t}}function Hf(e){const t={},s={};return Object.keys(e).forEach(n=>{const i=n.startsWith("fc")?s:t;i[n]=e[n]}),{featureExtractorMap:t,classifierMap:s}}class qf extends hs{constructor(e,t){super(e);this._faceFeatureExtractor=t}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(e){const{params:t}=this;if(!t)throw new Error(`${this._name} - load model before inference`);return N(()=>{const s=e instanceof pi?this.faceFeatureExtractor.forwardInput(e):e;return Bu(s.as2D(s.shape[0],-1),t.fc)})}dispose(e=!0){this.faceFeatureExtractor.dispose(e),super.dispose(e)}loadClassifierParams(e){const{params:t,paramMappings:s}=this.extractClassifierParams(e);this._params=t,this._paramMappings=s}extractClassifierParams(e){return oO(e,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeigthMap(e){const{featureExtractorMap:t,classifierMap:s}=Hf(e);return this.faceFeatureExtractor.loadFromWeightMap(t),aO(s)}extractParams(e){const t=this.getClassifierChannelsIn(),s=this.getClassifierChannelsOut(),n=s*t+s,i=e.slice(0,e.length-n),r=e.slice(e.length-n);return this.faceFeatureExtractor.extractWeights(i),this.extractClassifierParams(r)}}const dh=["neutral","happy","sad","angry","fearful","disgusted","surprised"];class Ji{constructor(e){if(e.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${e.length}`);dh.forEach((t,s)=>{this[t]=e[s]})}asSortedArray(){return dh.map(e=>({expression:e,probability:this[e]})).sort((e,t)=>t.probability-e.probability)}}class mh extends qf{constructor(e=new Gf()){super("FaceExpressionNet",e)}forwardInput(e){return N(()=>Yt(this.runNet(e)))}async forward(e){return this.forwardInput(await pt(e))}async predictExpressions(e){const t=await pt(e),s=await this.forwardInput(t),n=await Promise.all(nt(s).map(async r=>{const o=await r.data();return r.dispose(),o}));s.dispose();const i=n.map(r=>new Ji(r));return t.isBatchInput?i:i[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}}function uh(e){return e.expressions instanceof Ji}function al(e,t){const s={expressions:t};return Object.assign({},e,s)}function mP(e,t,s=.1,n){const i=Array.isArray(t)?t:[t];i.forEach(r=>{const o=r instanceof Ji?r:uh(r)?r.expressions:void 0;if(!o)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");const a=o.asSortedArray(),l=a.filter(u=>u.probability>s),c=Sn(r)?r.detection.box.bottomLeft:n||new Ee(0,0),p=new Ga(l.map(u=>`${u.expression} (${$o(u.probability)})`),c);p.draw(e)})}function Ki(e){return Sn(e)&&e.landmarks instanceof Ws&&e.unshiftedLandmarks instanceof Ws&&e.alignedRect instanceof bt}function Ar(e,t){const{box:s}=e.detection,n=t.shiftBy(s.x,s.y),i=n.align(),{imageDims:r}=e.detection,o=new bt(e.detection.score,i.rescale(r.reverse()),r),a={landmarks:n,unshiftedLandmarks:t,alignedRect:o};return Object.assign({},e,a)}class lO{constructor(e={}){const{drawLines:t=!0,drawPoints:s=!0,lineWidth:n,lineColor:i,pointSize:r,pointColor:o}=e;this.drawLines=t,this.drawPoints=s,this.lineWidth=n||1,this.pointSize=r||2,this.lineColor=i||"rgba(0, 255, 255, 1)",this.pointColor=o||"rgba(255, 0, 255, 1)"}}class cO{constructor(e,t={}){this.faceLandmarks=e,this.options=new lO(t)}draw(e){const t=us(e),{drawLines:s,drawPoints:n,lineWidth:i,lineColor:r,pointSize:o,pointColor:a}=this.options;if(s&&this.faceLandmarks instanceof Jo&&(t.strokeStyle=r,t.lineWidth=i,ji(t,this.faceLandmarks.getJawOutline()),ji(t,this.faceLandmarks.getLeftEyeBrow()),ji(t,this.faceLandmarks.getRightEyeBrow()),ji(t,this.faceLandmarks.getNose()),ji(t,this.faceLandmarks.getLeftEye(),!0),ji(t,this.faceLandmarks.getRightEye(),!0),ji(t,this.faceLandmarks.getMouth(),!0)),n){t.strokeStyle=a,t.fillStyle=a;const l=c=>{t.beginPath(),t.arc(c.x,c.y,o,0,2*Math.PI),t.fill()};this.faceLandmarks.positions.forEach(l)}}}function fP(e,t){const s=Array.isArray(t)?t:[t];s.forEach(n=>{const i=n instanceof Ws?n:Ki(n)?n.landmarks:void 0;if(!i)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new cO(i).draw(e)})}const Ju={};Re(Ju,{AnchorPosition:()=>li,DrawBox:()=>Hx,DrawBoxOptions:()=>nO,DrawFaceLandmarks:()=>cO,DrawFaceLandmarksOptions:()=>lO,DrawTextField:()=>Ga,DrawTextFieldOptions:()=>Uf,drawContour:()=>ji,drawDetections:()=>dP,drawFaceExpressions:()=>mP,drawFaceLandmarks:()=>fP});function gP(e,t){const s=Ha(e,t),n=qa(e,t);function i(o,a,l){const c=n(o,a,`${l}/separable_conv0`),p=n(a,a,`${l}/separable_conv1`),u=s(o,a,1,`${l}/expansion_conv`);return{separable_conv0:c,separable_conv1:p,expansion_conv:u}}function r(o,a){const l=n(o,o,`${a}/separable_conv0`),c=n(o,o,`${a}/separable_conv1`),p=n(o,o,`${a}/separable_conv2`);return{separable_conv0:l,separable_conv1:c,separable_conv2:p}}return{extractConvParams:s,extractSeparableConvParams:n,extractReductionBlockParams:i,extractMainBlockParams:r}}function pO(e,t){const s=[],{extractWeights:n,getRemainingWeights:i}=Ms(e),{extractConvParams:r,extractSeparableConvParams:o,extractReductionBlockParams:a,extractMainBlockParams:l}=gP(n,s),c=r(3,32,3,"entry_flow/conv_in"),p=a(32,64,"entry_flow/reduction_block_0"),u=a(64,128,"entry_flow/reduction_block_1"),h={conv_in:c,reduction_block_0:p,reduction_block_1:u},d={};ai(t,0,1).forEach(b=>{d[`main_block_${b}`]=l(128,`middle_flow/main_block_${b}`)});const m=a(128,256,"exit_flow/reduction_block"),f=o(256,512,"exit_flow/separable_conv"),y={reduction_block:m,separable_conv:f};if(i().length!==0)throw new Error(`weights remaing after extract: ${i().length}`);return{paramMappings:s,params:{entry_flow:h,middle_flow:d,exit_flow:y}}}function yP(e,t){const s=wn(e,t),n=jf(s),i=Ya(s);function r(a){const l=i(`${a}/separable_conv0`),c=i(`${a}/separable_conv1`),p=n(`${a}/expansion_conv`);return{separable_conv0:l,separable_conv1:c,expansion_conv:p}}function o(a){const l=i(`${a}/separable_conv0`),c=i(`${a}/separable_conv1`),p=i(`${a}/separable_conv2`);return{separable_conv0:l,separable_conv1:c,separable_conv2:p}}return{extractConvParams:n,extractSeparableConvParams:i,extractReductionBlockParams:r,extractMainBlockParams:o}}function uO(e,t){const s=[],{extractConvParams:n,extractSeparableConvParams:i,extractReductionBlockParams:r,extractMainBlockParams:o}=yP(e,s),a=n("entry_flow/conv_in"),l=r("entry_flow/reduction_block_0"),c=r("entry_flow/reduction_block_1"),p={conv_in:a,reduction_block_0:l,reduction_block_1:c},u={};ai(t,0,1).forEach(f=>{u[`main_block_${f}`]=o(`middle_flow/main_block_${f}`)});const h=r("exit_flow/reduction_block"),d=i("exit_flow/separable_conv"),m={reduction_block:h,separable_conv:d};return Fs(e,s),{params:{entry_flow:p,middle_flow:u,exit_flow:m},paramMappings:s}}function hO(e,t,s){return W(yt(e,t.filters,s,"same"),t.bias)}function Yx(e,t,s=!0){let n=s?ke(e):e;return n=Cs(n,t.separable_conv0,[1,1]),n=Cs(ke(n),t.separable_conv1,[1,1]),n=lt(n,[3,3],[2,2],"same"),n=W(n,hO(e,t.expansion_conv,[2,2])),n}function bP(e,t){let s=Cs(ke(e),t.separable_conv0,[1,1]);return s=Cs(ke(s),t.separable_conv1,[1,1]),s=Cs(ke(s),t.separable_conv2,[1,1]),s=W(s,e),s}class dO extends hs{constructor(e){super("TinyXception");this._numMainBlocks=e}forwardInput(e){const{params:t}=this;if(!t)throw new Error("TinyXception - load model before inference");return N(()=>{const s=e.toBatchTensor(112,!0),n=[122.782,117.001,104.298],i=sn(s,n).div(j(256));let r=ke(hO(i,t.entry_flow.conv_in,[2,2]));return r=Yx(r,t.entry_flow.reduction_block_0,!1),r=Yx(r,t.entry_flow.reduction_block_1),ai(this._numMainBlocks,0,1).forEach(o=>{r=bP(r,t.middle_flow[`main_block_${o}`])}),r=Yx(r,t.exit_flow.reduction_block),r=ke(Cs(r,t.exit_flow.separable_conv,[1,1])),r})}async forward(e){return this.forwardInput(await pt(e))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeigthMap(e){return uO(e,this._numMainBlocks)}extractParams(e){return pO(e,this._numMainBlocks)}}function mO(e){const t=[],{extractWeights:s,getRemainingWeights:n}=Ms(e),i=Bf(s,t),r=i(512,1,"fc/age"),o=i(512,2,"fc/gender");if(n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{paramMappings:t,params:{fc:{age:r,gender:o}}}}function fO(e){const t=[],s=wn(e,t);function n(r){const o=s(`${r}/weights`,2),a=s(`${r}/bias`,1);return{weights:o,bias:a}}const i={fc:{age:n("fc/age"),gender:n("fc/gender")}};return Fs(e,t),{params:i,paramMappings:t}}var Vn;(function(e){e.FEMALE="female",e.MALE="male"})(Vn||(Vn={}));class vh extends hs{constructor(e=new dO(2)){super("AgeGenderNet");this._faceFeatureExtractor=e}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(e){const{params:t}=this;if(!t)throw new Error(`${this._name} - load model before inference`);return N(()=>{const s=e instanceof pi?this.faceFeatureExtractor.forwardInput(e):e,n=rs(s,[7,7],[2,2],"valid").as2D(s.shape[0],-1),i=Bu(n,t.fc.age).as1D(),r=Bu(n,t.fc.gender);return{age:i,gender:r}})}forwardInput(e){return N(()=>{const{age:t,gender:s}=this.runNet(e);return{age:t,gender:Yt(s)}})}async forward(e){return this.forwardInput(await pt(e))}async predictAgeAndGender(e){const t=await pt(e),s=await this.forwardInput(t),n=nt(s.age),i=nt(s.gender),r=n.map((a,l)=>({ageTensor:a,genderTensor:i[l]})),o=await Promise.all(r.map(async({ageTensor:a,genderTensor:l})=>{const c=(await a.data())[0],p=(await l.data())[0],u=p>.5,h=u?Vn.MALE:Vn.FEMALE,d=u?p:1-p;return a.dispose(),l.dispose(),{age:c,gender:h,genderProbability:d}}));return s.age.dispose(),s.gender.dispose(),t.isBatchInput?o:o[0]}getDefaultModelName(){return"age_gender_model"}dispose(e=!0){this.faceFeatureExtractor.dispose(e),super.dispose(e)}loadClassifierParams(e){const{params:t,paramMappings:s}=this.extractClassifierParams(e);this._params=t,this._paramMappings=s}extractClassifierParams(e){return mO(e)}extractParamsFromWeigthMap(e){const{featureExtractorMap:t,classifierMap:s}=Hf(e);return this.faceFeatureExtractor.loadFromWeightMap(t),fO(s)}extractParams(e){const t=512*1+1+(512*2+2),s=e.slice(0,e.length-t),n=e.slice(e.length-t);return this.faceFeatureExtractor.extractWeights(s),this.extractClassifierParams(n)}}class Yf extends qf{postProcess(e,t,s){const n=s.map(({width:r,height:o})=>{const a=t/Math.max(o,r);return{width:r*a,height:o*a}}),i=n.length;return N(()=>{const r=(p,u)=>Xe([Ft([68],p),Ft([68],u)],1).as2D(1,136).as1D(),o=(p,u)=>{const{width:h,height:d}=n[p];return u(h,d)?Math.abs(h-d)/2:0},a=p=>o(p,(u,h)=>uo(p,(u,h)=>hr(a(u),l(u))))).div(Xe(Array.from(Array(i),(p,u)=>r(n[u].width,n[u].height))));return c})}forwardInput(e){return N(()=>{const t=this.runNet(e);return this.postProcess(t,e.inputSize,e.inputDimensions.map(([s,n])=>({height:s,width:n})))})}async forward(e){return this.forwardInput(await pt(e))}async detectLandmarks(e){const t=await pt(e),s=N(()=>nt(this.forwardInput(t))),n=await Promise.all(s.map(async(i,r)=>{const o=Array.from(await i.data()),a=o.filter((c,p)=>Df(p)),l=o.filter((c,p)=>!Df(p));return new Jo(Array(68).fill(0).map((c,p)=>new Ee(a[p],l[p])),{height:t.getInputHeight(r),width:t.getInputWidth(r)})}));return s.forEach(i=>i.dispose()),t.isBatchInput?n:n[0]}getClassifierChannelsOut(){return 136}}class Yo extends Yf{constructor(e=new Gf()){super("FaceLandmark68Net",e)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}}function gO(e){const t=[],{extractDenseBlock3Params:s}=Vf(e,t),n={dense0:s("dense0",!0),dense1:s("dense1"),dense2:s("dense2")};return Fs(e,t),{params:n,paramMappings:t}}function yO(e){const t=[],{extractWeights:s,getRemainingWeights:n}=Ms(e),{extractDenseBlock3Params:i}=Pf(s,t),r=i(3,32,"dense0",!0),o=i(32,64,"dense1"),a=i(64,128,"dense2");if(n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{paramMappings:t,params:{dense0:r,dense1:o,dense2:a}}}class bO extends hs{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(e){const{params:t}=this;if(!t)throw new Error("TinyFaceFeatureExtractor - load model before inference");return N(()=>{const s=e.toBatchTensor(112,!0),n=[122.782,117.001,104.298],i=sn(s,n).div(j(255));let r=Wf(i,t.dense0,!0);return r=Wf(r,t.dense1),r=Wf(r,t.dense2),r=rs(r,[14,14],[2,2],"valid"),r})}async forward(e){return this.forwardInput(await pt(e))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeigthMap(e){return gO(e)}extractParams(e){return yO(e)}}class hh extends Yf{constructor(e=new bO()){super("FaceLandmark68TinyNet",e)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}}class zL extends Yo{}function wO(e,t){return W(C(e,t.weights),t.biases)}function Kx(e,t,s,n,i="same"){const{filters:r,bias:o}=t.conv;let a=yt(e,r,s,i);return a=W(a,o),a=wO(a,t.scale),n?ke(a):a}function xO(e,t){return Kx(e,t,[1,1],!0)}function Xx(e,t){return Kx(e,t,[1,1],!1)}function Kf(e,t){return Kx(e,t,[2,2],!0,"valid")}function wP(e,t){function s(a,l,c){const p=e(a),u=p.length/(l*c*c);if($x(u))throw new Error(`depth has to be an integer: ${u}, weights.length: ${p.length}, numFilters: ${l}, filterSize: ${c}`);return N(()=>se(cs(p,[l,u,c,c]),[2,3,1,0]))}function n(a,l,c,p){const u=s(a,l,c),h=Fe(e(l));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/bias`}),{filters:u,bias:h}}function i(a,l){const c=Fe(e(a)),p=Fe(e(a));return t.push({paramPath:`${l}/weights`},{paramPath:`${l}/biases`}),{weights:c,biases:p}}function r(a,l,c,p){const u=n(a,l,c,`${p}/conv`),h=i(l,`${p}/scale`);return{conv:u,scale:h}}function o(a,l,c,p,u=!1){const h=r((u?.5:1)*a,l,c,`${p}/conv1`),d=r(a,l,c,`${p}/conv2`);return{conv1:h,conv2:d}}return{extractConvLayerParams:r,extractResidualLayerParams:o}}function LO(e){const{extractWeights:t,getRemainingWeights:s}=Ms(e),n=[],{extractConvLayerParams:i,extractResidualLayerParams:r}=wP(t,n),o=i(4704,32,7,"conv32_down"),a=r(9216,32,3,"conv32_1"),l=r(9216,32,3,"conv32_2"),c=r(9216,32,3,"conv32_3"),p=r(36864,64,3,"conv64_down",!0),u=r(36864,64,3,"conv64_1"),h=r(36864,64,3,"conv64_2"),d=r(36864,64,3,"conv64_3"),m=r(147456,128,3,"conv128_down",!0),f=r(147456,128,3,"conv128_1"),y=r(147456,128,3,"conv128_2"),b=r(589824,256,3,"conv256_down",!0),S=r(589824,256,3,"conv256_1"),x=r(589824,256,3,"conv256_2"),I=r(589824,256,3,"conv256_down_out"),A=N(()=>se(ts(t(256*128),[128,256]),[1,0]));if(n.push({paramPath:"fc"}),s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);const k={conv32_down:o,conv32_1:a,conv32_2:l,conv32_3:c,conv64_down:p,conv64_1:u,conv64_2:h,conv64_3:d,conv128_down:m,conv128_1:f,conv128_2:y,conv256_down:b,conv256_1:S,conv256_2:x,conv256_down_out:I,fc:A};return{params:k,paramMappings:n}}function xP(e,t){const s=wn(e,t);function n(o){const a=s(`${o}/scale/weights`,1),l=s(`${o}/scale/biases`,1);return{weights:a,biases:l}}function i(o){const a=s(`${o}/conv/filters`,4),l=s(`${o}/conv/bias`,1),c=n(o);return{conv:{filters:a,bias:l},scale:c}}function r(o){return{conv1:i(`${o}/conv1`),conv2:i(`${o}/conv2`)}}return{extractConvLayerParams:i,extractResidualLayerParams:r}}function SO(e){const t=[],{extractConvLayerParams:s,extractResidualLayerParams:n}=xP(e,t),i=s("conv32_down"),r=n("conv32_1"),o=n("conv32_2"),a=n("conv32_3"),l=n("conv64_down"),c=n("conv64_1"),p=n("conv64_2"),u=n("conv64_3"),h=n("conv128_down"),d=n("conv128_1"),m=n("conv128_2"),f=n("conv256_down"),y=n("conv256_1"),b=n("conv256_2"),S=n("conv256_down_out"),x=e.fc;if(t.push({originalPath:"fc",paramPath:"fc"}),!Ux(x))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${x}`);const I={conv32_down:i,conv32_1:r,conv32_2:o,conv32_3:a,conv64_down:l,conv64_1:c,conv64_2:p,conv64_3:u,conv128_down:h,conv128_1:d,conv128_2:m,conv256_down:f,conv256_1:y,conv256_2:b,conv256_down_out:S,fc:x};return Fs(e,t),{params:I,paramMappings:t}}function jn(e,t){let s=xO(e,t.conv1);return s=Xx(s,t.conv2),s=W(s,e),s=ke(s),s}function Pu(e,t){let s=Kf(e,t.conv1);s=Xx(s,t.conv2);let n=rs(e,2,2,"valid");const i=Ie(n.shape),r=n.shape[3]!==s.shape[3],o=n.shape[1]!==s.shape[1]||n.shape[2]!==s.shape[2];if(o){const a=[...s.shape];a[1]=1;const l=Ie(a);s=ge([s,l],1);const c=[...s.shape];c[2]=1;const p=Ie(c);s=ge([s,p],2)}return n=r?ge([n,i],3):n,s=W(n,s),s=ke(s),s}class qo extends hs{constructor(){super("FaceRecognitionNet")}forwardInput(e){const{params:t}=this;if(!t)throw new Error("FaceRecognitionNet - load model before inference");return N(()=>{const s=e.toBatchTensor(150,!0).toFloat(),n=[122.782,117.001,104.298],i=sn(s,n).div(j(256));let r=Kf(i,t.conv32_down);r=lt(r,3,2,"valid"),r=jn(r,t.conv32_1),r=jn(r,t.conv32_2),r=jn(r,t.conv32_3),r=Pu(r,t.conv64_down),r=jn(r,t.conv64_1),r=jn(r,t.conv64_2),r=jn(r,t.conv64_3),r=Pu(r,t.conv128_down),r=jn(r,t.conv128_1),r=jn(r,t.conv128_2),r=Pu(r,t.conv256_down),r=jn(r,t.conv256_1),r=jn(r,t.conv256_2),r=Pu(r,t.conv256_down_out);const o=r.mean([1,2]),a=Le(o,t.fc);return a})}async forward(e){return this.forwardInput(await pt(e))}async computeFaceDescriptor(e){const t=await pt(e),s=N(()=>nt(this.forwardInput(t))),n=await Promise.all(s.map(i=>i.data()));return s.forEach(i=>i.dispose()),t.isBatchInput?n:n[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeigthMap(e){return SO(e)}extractParams(e){return LO(e)}}function WL(e){const t=new qo();return t.extractWeights(e),t}function ll(e,t){const s={descriptor:t};return Object.assign({},e,s)}function $L(e){return typeof e.age=="number"}function cl(e,t){const s={age:t};return Object.assign({},e,s)}function UL(e){return(e.gender===Vn.MALE||e.gender===Vn.FEMALE)&&Va(e.genderProbability)}function ol(e,t,s){const n={gender:t,genderProbability:s};return Object.assign({},e,n)}class nn{async then(e){return e(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}}async function zo(e,t,s,n,i=({alignedRect:r})=>r){const r=e.map(l=>Ki(l)?i(l):l.detection),o=n||(t instanceof ue?await Cr(t,r):await Nr(t,r)),a=await s(o);return o.forEach(l=>l instanceof ue&&l.dispose()),a}async function Ka(e,t,s,n,i){return zo([e],t,async r=>s(r[0]),n,i)}const Xf=e=>typeof e=="number";function Qu(e){if(!e)throw new Error(`invalid config: ${e}`);if(typeof e.withSeparableConvs!="boolean")throw new Error(`config.withSeparableConvs has to be a boolean, have: ${e.withSeparableConvs}`);if(!Xf(e.iouThreshold)||e.iouThreshold<0||e.iouThreshold>1)throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${e.iouThreshold}`);if(!Array.isArray(e.classes)||!e.classes.length||!e.classes.every(t=>typeof t=="string"))throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(e.classes)}`);if(!Array.isArray(e.anchors)||!e.anchors.length||!e.anchors.map(t=>t||{}).every(t=>Xf(t.x)&&Xf(t.y)))throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(e.anchors)}`);if(e.meanRgb&&(!Array.isArray(e.meanRgb)||e.meanRgb.length!==3||!e.meanRgb.every(Xf)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(e.meanRgb)}`)}function Xa(e){return N(()=>{const t=C(e,j(.10000000149011612));return W(ke(X(e,t)),t)})}function Vi(e,t){return N(()=>{let s=Ut(e,[[0,0],[1,1],[1,1],[0,0]]);return s=yt(s,t.conv.filters,[1,1],"valid"),s=X(s,t.bn.sub),s=C(s,t.bn.truediv),s=W(s,t.conv.bias),Xa(s)})}function Gi(e,t){return N(()=>{let s=Ut(e,[[0,0],[1,1],[1,1],[0,0]]);return s=Ni(s,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),s=W(s,t.bias),Xa(s)})}function LP(e,t){const s=Ha(e,t);function n(o,a){const l=Fe(e(o)),c=Fe(e(o));return t.push({paramPath:`${a}/sub`},{paramPath:`${a}/truediv`}),{sub:l,truediv:c}}function i(o,a,l){const c=s(o,a,3,`${l}/conv`),p=n(a,`${l}/bn`);return{conv:c,bn:p}}const r=qa(e,t);return{extractConvParams:s,extractConvWithBatchNormParams:i,extractSeparableConvParams:r}}function vO(e,t,s,n){const{extractWeights:i,getRemainingWeights:r}=Ms(e),o=[],{extractConvParams:a,extractConvWithBatchNormParams:l,extractSeparableConvParams:c}=LP(i,o);let p;if(t.withSeparableConvs){const[u,h,d,m,f,y,b,S,x]=n,I=t.isFirstLayerConv2d?a(u,h,3,"conv0"):c(u,h,"conv0"),A=c(h,d,"conv1"),k=c(d,m,"conv2"),R=c(m,f,"conv3"),D=c(f,y,"conv4"),F=c(y,b,"conv5"),M=S?c(b,S,"conv6"):void 0,B=x?c(S,x,"conv7"):void 0,V=a(x||S||b,5*s,1,"conv8");p={conv0:I,conv1:A,conv2:k,conv3:R,conv4:D,conv5:F,conv6:M,conv7:B,conv8:V}}else{const[u,h,d,m,f,y,b,S,x]=n,I=l(u,h,"conv0"),A=l(h,d,"conv1"),k=l(d,m,"conv2"),R=l(m,f,"conv3"),D=l(f,y,"conv4"),F=l(y,b,"conv5"),M=l(b,S,"conv6"),B=l(S,x,"conv7"),V=a(x,5*s,1,"conv8");p={conv0:I,conv1:A,conv2:k,conv3:R,conv4:D,conv5:F,conv6:M,conv7:B,conv8:V}}if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{params:p,paramMappings:o}}function SP(e,t){const s=wn(e,t);function n(a){const l=s(`${a}/sub`,1),c=s(`${a}/truediv`,1);return{sub:l,truediv:c}}function i(a){const l=s(`${a}/filters`,4),c=s(`${a}/bias`,1);return{filters:l,bias:c}}function r(a){const l=i(`${a}/conv`),c=n(`${a}/bn`);return{conv:l,bn:c}}const o=Ya(s);return{extractConvParams:i,extractConvWithBatchNormParams:r,extractSeparableConvParams:o}}function TO(e,t){const s=[],{extractConvParams:n,extractConvWithBatchNormParams:i,extractSeparableConvParams:r}=SP(e,s);let o;if(t.withSeparableConvs){const a=t.filterSizes&&t.filterSizes.length||9;o={conv0:t.isFirstLayerConv2d?n("conv0"):r("conv0"),conv1:r("conv1"),conv2:r("conv2"),conv3:r("conv3"),conv4:r("conv4"),conv5:r("conv5"),conv6:a>7?r("conv6"):void 0,conv7:a>8?r("conv7"):void 0,conv8:n("conv8")}}else o={conv0:i("conv0"),conv1:i("conv1"),conv2:i("conv2"),conv3:i("conv3"),conv4:i("conv4"),conv5:i("conv5"),conv6:i("conv6"),conv7:i("conv7"),conv8:n("conv8")};return Fs(e,s),{params:o,paramMappings:s}}var eh;(function(e){e[e.XS=224]="XS",e[e.SM=320]="SM",e[e.MD=416]="MD",e[e.LG=608]="LG"})(eh||(eh={}));class Vo{constructor({inputSize:e,scoreThreshold:t}={}){if(this._name="TinyYolov2Options",this._inputSize=e||416,this._scoreThreshold=t||.5,typeof this._inputSize!="number"||this._inputSize%32!==0)throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);if(typeof this._scoreThreshold!="number"||this._scoreThreshold<=0||this._scoreThreshold>=1)throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`)}get inputSize(){return this._inputSize}get scoreThreshold(){return this._scoreThreshold}}class Ja extends hs{constructor(e){super("TinyYolov2");Qu(e),this._config=e}get config(){return this._config}get withClassScores(){return this.config.withClassScores||this.config.classes.length>1}get boxEncodingSize(){return 5+(this.withClassScores?this.config.classes.length:0)}runTinyYolov2(e,t){let s=Vi(e,t.conv0);return s=lt(s,[2,2],[2,2],"same"),s=Vi(s,t.conv1),s=lt(s,[2,2],[2,2],"same"),s=Vi(s,t.conv2),s=lt(s,[2,2],[2,2],"same"),s=Vi(s,t.conv3),s=lt(s,[2,2],[2,2],"same"),s=Vi(s,t.conv4),s=lt(s,[2,2],[2,2],"same"),s=Vi(s,t.conv5),s=lt(s,[2,2],[1,1],"same"),s=Vi(s,t.conv6),s=Vi(s,t.conv7),zf(s,t.conv8,"valid",!1)}runMobilenet(e,t){let s=this.config.isFirstLayerConv2d?Xa(zf(e,t.conv0,"valid",!1)):Gi(e,t.conv0);return s=lt(s,[2,2],[2,2],"same"),s=Gi(s,t.conv1),s=lt(s,[2,2],[2,2],"same"),s=Gi(s,t.conv2),s=lt(s,[2,2],[2,2],"same"),s=Gi(s,t.conv3),s=lt(s,[2,2],[2,2],"same"),s=Gi(s,t.conv4),s=lt(s,[2,2],[2,2],"same"),s=Gi(s,t.conv5),s=lt(s,[2,2],[1,1],"same"),s=t.conv6?Gi(s,t.conv6):s,s=t.conv7?Gi(s,t.conv7):s,zf(s,t.conv8,"valid",!1)}forwardInput(e,t){const{params:s}=this;if(!s)throw new Error("TinyYolov2 - load model before inference");return N(()=>{let n=e.toBatchTensor(t,!1).toFloat();return n=this.config.meanRgb?sn(n,this.config.meanRgb):n,n=n.div(j(256)),this.config.withSeparableConvs?this.runMobilenet(n,s):this.runTinyYolov2(n,s)})}async forward(e,t){return await this.forwardInput(await pt(e),t)}async detect(e,t={}){const{inputSize:s,scoreThreshold:n}=new Vo(t),i=await pt(e),r=await this.forwardInput(i,s),o=N(()=>nt(r)[0].expandDims()),a={width:i.getInputWidth(0),height:i.getInputHeight(0)},l=await this.extractBoxes(o,i.getReshapedInputDimensions(0),n);r.dispose(),o.dispose();const c=l.map(f=>f.box),p=l.map(f=>f.score),u=l.map(f=>f.classScore),h=l.map(f=>this.config.classes[f.label]),d=sh(c.map(f=>f.rescale(s)),p,this.config.iouThreshold,!0),m=d.map(f=>new Or(p[f],u[f],h[f],c[f],a));return m}getDefaultModelName(){return""}extractParamsFromWeigthMap(e){return TO(e,this.config)}extractParams(e){const t=this.config.filterSizes||Ja.DEFAULT_FILTER_SIZES,s=t?t.length:void 0;if(s!==7&&s!==8&&s!==9)throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${s} filterSizes in config`);return vO(e,this.config,this.boxEncodingSize,t)}async extractBoxes(e,t,s){const{width:n,height:i}=t,r=Math.max(n,i),o=r/n,a=r/i,l=e.shape[1],c=this.config.anchors.length,[p,u,h]=N(()=>{const y=e.reshape([l,l,c,this.boxEncodingSize]),b=y.slice([0,0,0,0],[l,l,c,4]),S=y.slice([0,0,0,4],[l,l,c,1]),x=this.withClassScores?Yt(y.slice([0,0,0,5],[l,l,c,this.config.classes.length]),3):j(0);return[b,S,x]}),d=[],m=await u.array(),f=await p.array();for(let y=0;ys){const I=(b+Ho(f[y][b][S][0]))/l*o,A=(y+Ho(f[y][b][S][1]))/l*a,k=Math.exp(f[y][b][S][2])*this.config.anchors[S].x/l*o,R=Math.exp(f[y][b][S][3])*this.config.anchors[S].y/l*a,D=I-k/2,F=A-R/2,M={row:y,col:b,anchor:S},{classScore:B,label:V}=this.withClassScores?await this.extractPredictedClass(h,M):{classScore:1,label:0};d.push({box:new Zo(D,F,D+k,F+R),score:x,classScore:x*B,label:V,...M})}}return p.dispose(),u.dispose(),h.dispose(),d}async extractPredictedClass(e,t){const{row:s,col:n,anchor:i}=t,r=await e.array();return Array(this.config.classes.length).fill(0).map((o,a)=>r[s][n][i][a]).map((o,a)=>({classScore:o,label:a})).reduce((o,a)=>o.classScore>a.classScore?o:a)}}Ja.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];const IO=.4,AO=[new Ee(1.603231,2.094468),new Ee(6.041143,7.080126),new Ee(2.882459,3.518061),new Ee(4.266906,5.178857),new Ee(9.041765,10.66308)],NO=[117.001,114.697,97.404];class Ir extends Ja{constructor(){const e={withSeparableConvs:!0,iouThreshold:IO,classes:["face"],anchors:AO,meanRgb:NO,isFirstLayerConv2d:!0,filterSizes:[3,16,32,64,128,256,512]};super(e)}get anchors(){return this.config.anchors}async locateFaces(e,t){const s=await this.detect(e,t);return s.map(n=>new bt(n.score,n.relativeBox,{width:n.imageWidth,height:n.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeigthMap(e){return super.extractParamsFromWeigthMap(e)}}const CO=.4,RO=[new Ee(.738768,.874946),new Ee(2.42204,2.65704),new Ee(4.30971,7.04493),new Ee(10.246,4.59428),new Ee(12.6868,11.8741)],OO=[new Ee(1.603231,2.094468),new Ee(6.041143,7.080126),new Ee(2.882459,3.518061),new Ee(4.266906,5.178857),new Ee(9.041765,10.66308)],EO=[117.001,114.697,97.404],kO="tiny_yolov2_model",_O="tiny_yolov2_separable_conv_model";class Go extends Ja{constructor(e=!0){const t=Object.assign({},{withSeparableConvs:e,iouThreshold:CO,classes:["face"]},e?{anchors:OO,meanRgb:EO}:{anchors:RO,withClassScores:!0});super(t)}get withSeparableConvs(){return this.config.withSeparableConvs}get anchors(){return this.config.anchors}async locateFaces(e,t){const s=await this.detect(e,t);return s.map(n=>new bt(n.score,n.relativeBox,{width:n.imageWidth,height:n.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?_O:kO}extractParamsFromWeigthMap(e){return super.extractParamsFromWeigthMap(e)}}function yL(e,t=!0){const s=new Go(t);return s.extractWeights(e),s}const Qe={tinyFaceDetector:new Ir(),tinyYolov2:new Go(),faceLandmark68Net:new Yo(),faceLandmark68TinyNet:new hh(),faceRecognitionNet:new qo(),faceExpressionNet:new mh(),ageGenderNet:new vh()},LL=(e,t)=>Qe.tinyFaceDetector.locateFaces(e,t),og=e=>Qe.faceLandmark68Net.detectLandmarks(e),SL=e=>Qe.faceLandmark68TinyNet.detectLandmarks(e),vL=e=>Qe.faceRecognitionNet.computeFaceDescriptor(e),TL=e=>Qe.faceExpressionNet.predictExpressions(e),IL=e=>Qe.ageGenderNet.predictAgeAndGender(e),ag=e=>Qe.tinyFaceDetector.load(e),AL=e=>Qe.tinyYolov2.load(e),NL=e=>Qe.faceLandmark68Net.load(e),CL=e=>Qe.faceLandmark68TinyNet.load(e),RL=e=>Qe.faceRecognitionNet.load(e),OL=e=>Qe.faceExpressionNet.load(e),EL=e=>Qe.ageGenderNet.load(e),kL=ag,_L=Ir,DL=og;class DO extends nn{constructor(e,t,s){super();this.parentTask=e,this.input=t,this.extractedFaces=s}}class Gu extends DO{async run(){const e=await this.parentTask,t=await zo(e,this.input,async s=>await Promise.all(s.map(n=>Qe.faceExpressionNet.predictExpressions(n))),this.extractedFaces);return e.map((s,n)=>al(s,t[n]))}withAgeAndGender(){return new ju(this,this.input)}}class Hu extends DO{async run(){const e=await this.parentTask;if(!e)return;const t=await Ka(e,this.input,s=>Qe.faceExpressionNet.predictExpressions(s),this.extractedFaces);return al(e,t)}withAgeAndGender(){return new Vu(this,this.input)}}class el extends Gu{withAgeAndGender(){return new Za(this,this.input)}withFaceDescriptors(){return new qi(this,this.input)}}class tl extends Hu{withAgeAndGender(){return new Qa(this,this.input)}withFaceDescriptor(){return new Yi(this,this.input)}}class FO extends nn{constructor(e,t,s){super();this.parentTask=e,this.input=t,this.extractedFaces=s}}class ju extends FO{async run(){const e=await this.parentTask,t=await zo(e,this.input,async s=>await Promise.all(s.map(n=>Qe.ageGenderNet.predictAgeAndGender(n))),this.extractedFaces);return e.map((s,n)=>{const{age:i,gender:r,genderProbability:o}=t[n];return cl(ol(s,r,o),i)})}withFaceExpressions(){return new Gu(this,this.input)}}class Vu extends FO{async run(){const e=await this.parentTask;if(!e)return;const{age:t,gender:s,genderProbability:n}=await Ka(e,this.input,i=>Qe.ageGenderNet.predictAgeAndGender(i),this.extractedFaces);return cl(ol(e,s,n),t)}withFaceExpressions(){return new Hu(this,this.input)}}class Za extends ju{withFaceExpressions(){return new el(this,this.input)}withFaceDescriptors(){return new qi(this,this.input)}}class Qa extends Vu{withFaceExpressions(){return new tl(this,this.input)}withFaceDescriptor(){return new Yi(this,this.input)}}class ph extends nn{constructor(e,t){super();this.parentTask=e,this.input=t}}class qi extends ph{async run(){const e=await this.parentTask,t=await zo(e,this.input,s=>Promise.all(s.map(n=>Qe.faceRecognitionNet.computeFaceDescriptor(n))),null,s=>s.landmarks.align(null,{useDlibAlignment:!0}));return t.map((s,n)=>ll(e[n],s))}withFaceExpressions(){return new el(this,this.input)}withAgeAndGender(){return new Za(this,this.input)}}class Yi extends ph{async run(){const e=await this.parentTask;if(!e)return;const t=await Ka(e,this.input,s=>Qe.faceRecognitionNet.computeFaceDescriptor(s),null,s=>s.landmarks.align(null,{useDlibAlignment:!0}));return ll(e,t)}withFaceExpressions(){return new tl(this,this.input)}withAgeAndGender(){return new Qa(this,this.input)}}class Hi extends Vo{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}}class ah extends nn{constructor(e,t,s){super();this.parentTask=e,this.input=t,this.useTinyLandmarkNet=s}get landmarkNet(){return this.useTinyLandmarkNet?Qe.faceLandmark68TinyNet:Qe.faceLandmark68Net}}class lh extends ah{async run(){const e=await this.parentTask,t=e.map(i=>i.detection),s=this.input instanceof ue?await Cr(this.input,t):await Nr(this.input,t),n=await Promise.all(s.map(i=>this.landmarkNet.detectLandmarks(i)));return s.forEach(i=>i instanceof ue&&i.dispose()),e.map((i,r)=>Ar(i,n[r]))}withFaceExpressions(){return new el(this,this.input)}withAgeAndGender(){return new Za(this,this.input)}withFaceDescriptors(){return new qi(this,this.input)}}class ch extends ah{async run(){const e=await this.parentTask;if(!e)return;const{detection:t}=e,s=this.input instanceof ue?await Cr(this.input,[t]):await Nr(this.input,[t]),n=await this.landmarkNet.detectLandmarks(s[0]);return s.forEach(i=>i instanceof ue&&i.dispose()),Ar(e,n)}withFaceExpressions(){return new tl(this,this.input)}withAgeAndGender(){return new Qa(this,this.input)}withFaceDescriptor(){return new Yi(this,this.input)}}class rh extends nn{constructor(e,t=new Hi()){super();this.input=e,this.options=t}}class rl extends rh{async run(){const{input:e,options:t}=this,s=t instanceof Hi?n=>Qe.tinyFaceDetector.locateFaces(n,t):null;if(!s)throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | MtcnnOptions | TinyYolov2Options");return s(e)}runAndExtendWithFaceDetections(){return new Promise(async e=>{const t=await this.run();return e(t.map(s=>Xi({},s)))})}withFaceLandmarks(e=!1){return new lh(this.runAndExtendWithFaceDetections(),this.input,e)}withFaceExpressions(){return new Gu(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new ju(this.runAndExtendWithFaceDetections(),this.input)}}class oh extends rh{async run(){const e=await new rl(this.input,this.options);let t=e[0];return e.forEach(s=>{s.score>t.score&&(t=s)}),t}runAndExtendWithFaceDetection(){return new Promise(async e=>{const t=await this.run();return e(t?Xi({},t):void 0)})}withFaceLandmarks(e=!1){return new ch(this.runAndExtendWithFaceDetection(),this.input,e)}withFaceExpressions(){return new Hu(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new Vu(this.runAndExtendWithFaceDetection(),this.input)}}function FL(e,t=new Hi()){return new oh(e,t)}function ML(e,t=new Hi()){return new rl(e,t)}function fh(e,t){if(e.length!==t.length)throw new Error("euclideanDistance: arr1.length !== arr2.length");const s=Array.from(e),n=Array.from(t);return Math.sqrt(s.map((i,r)=>i-n[r]).reduce((i,r)=>i+Math.pow(r,2),0))}class lg{constructor(e,t=.6){this._distanceThreshold=t;const s=Array.isArray(e)?e:[e];if(!s.length)throw new Error("FaceRecognizer.constructor - expected atleast one input");let n=1;const i=()=>`person ${n++}`;this._labeledDescriptors=s.map(r=>{if(r instanceof tr)return r;if(r instanceof Float32Array)return new tr(i(),[r]);if(r.descriptor&&r.descriptor instanceof Float32Array)return new tr(i(),[r.descriptor]);throw new Error("FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>")})}get labeledDescriptors(){return this._labeledDescriptors}get distanceThreshold(){return this._distanceThreshold}computeMeanDistance(e,t){return t.map(s=>fh(s,e)).reduce((s,n)=>s+n,0)/(t.length||1)}matchDescriptor(e){return this.labeledDescriptors.map(({descriptors:t,label:s})=>new hl(s,this.computeMeanDistance(e,t))).reduce((t,s)=>t.distancee.toJSON())}}static fromJSON(e){const t=e.labeledDescriptors.map(s=>tr.fromJSON(s));return new lg(t,e.distanceThreshold)}}function bL(e){const t=new Ir();return t.extractWeights(e),t}function rg(e,t){const{width:s,height:n}=new Ls(t.width,t.height);if(s<=0||n<=0)throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({width:s,height:n})}`);if(Array.isArray(e))return e.map(i=>rg(i,{width:s,height:n}));if(Ki(e)){const i=e.detection.forSize(s,n),r=e.unshiftedLandmarks.forSize(i.box.width,i.box.height);return Ar(Xi(e,i),r)}return Sn(e)?Xi(e,e.detection.forSize(s,n)):e instanceof Ws||e instanceof bt?e.forSize(s,n):e}return HL();})(); /** * @license * Copyright 2017 Google LLC. All Rights Reserved. @@ -31,6 +3823,15 @@ Manifest JSON has weights with names: ${s.join(", ")}.`)}const c=o.reduce((b,y,w * limitations under the License. * ============================================================================= */ +/** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ /** * @license * Copyright 2018 Google LLC. All Rights Reserved. @@ -45,6 +3846,49 @@ Manifest JSON has weights with names: ${s.join(", ")}.`)}const c=o.reduce((b,y,w * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. + * + * ============================================================================= + */ +/** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ +/** + * @license + * Copyright 2019 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ +/** + * @license + * Copyright 2019 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * * ============================================================================= */ /** diff --git a/dist/face-api.min.js.map b/dist/face-api.min.js.map index 44e1814..9cbb9a1 100644 --- a/dist/face-api.min.js.map +++ b/dist/face-api.min.js.map @@ -1,7 +1,7 @@ { "version": 3, - "sources": ["node_modules/seedrandom/lib/alea.js", "node_modules/seedrandom/lib/xor128.js", "node_modules/seedrandom/lib/xorwow.js", "node_modules/seedrandom/lib/xorshift7.js", "node_modules/seedrandom/lib/xor4096.js", "node_modules/seedrandom/lib/tychei.js", "disabled:crypto", "node_modules/seedrandom/seedrandom.js", "node_modules/seedrandom/index.js", "build/env/../../src/env/isNodejs.ts", "build/env/types.js", "build/env/../../src/env/index.ts", "build/dom/types.js", "build/dom/../../src/dom/index.ts", "build/tinyYolov2/types.js", "build/tinyYolov2/../../src/tinyYolov2/index.ts", "build/globalApi/types.js", "build/globalApi/../../src/globalApi/index.ts", "build/../src/index.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/environment.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/global_util.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/kernel_names.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/kernel_registry.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/util.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/profiler.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/tape.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/tensor_format.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/tensor.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/types.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/tensor_util.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/engine.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/device_util.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/flags.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/tensor_util_env.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/operation.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/abs.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/acos.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/acosh.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/add.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/add_n.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/axis_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reshape.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/transpose.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/all.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/any.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/arg_max.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/arg_min.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/asin.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/asinh.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/atan.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/atan2.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/atanh.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/cast.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/avg_pool.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/globals.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/avg_pool_3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/concat_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor_ops_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/concat.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/mat_mul.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/mul.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sigmoid.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/slice_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/slice.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tanh.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/basic_lstm_cell.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/batch_to_space_nd.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/batchnorm_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/batchnorm.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/batchnorm2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/batchnorm3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/batchnorm4d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/clone.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/broadcast_to.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/buffer.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/ceil.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/clip_by_value.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/complex.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/concat_1d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/concat_2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/concat_3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/concat_4d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv1d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv2d_backprop_input.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv2d_transpose.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv3d_backprop_input.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv3d_transpose.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/cos.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/cosh.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/cumsum.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/depth_to_space.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/depthwise_conv2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/diag.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/dilation2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/floorDiv.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/div.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/broadcast_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/equal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/where.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/zeros_like.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/div_no_nan.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/dot.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/elu.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/erf.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/exp.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/expand_dims.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/expm1.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tile.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/eye.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/fft.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/fill.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/floor.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reduce_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/segment_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/gather.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/greater.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/greater_equal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/ifft.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/imag.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/real.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reverse.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/scalar.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/irfft.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/is_finite.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/is_inf.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/is_nan.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/maximum.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/leaky_relu.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/less.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/less_equal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/linspace.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/local_response_normalization.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/log.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/log1p.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/gradients.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/neg.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/softplus.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/log_sigmoid.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/max.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sub.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sum.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/log_softmax.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/log_sum_exp.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/logical_and.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/logical_not.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/logical_or.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/logical_xor.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/max_pool.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/max_pool_3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/max_pool_with_argmax.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/zeros.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/ones.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/mean.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/min.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/minimum.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/mod.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/square.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/moments.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/multi_rnn_cell.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/multinomial.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/not_equal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/one_hot.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/ones_like.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/outer_product.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pad1d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pad2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pad3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pad4d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/space_to_batch_nd.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pool.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pow.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/prelu.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/print.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/prod.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/rand.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/test_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/rand_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/random_gamma.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/random_normal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/random_uniform.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor1d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/range.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reciprocal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/relu.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/relu6.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reverse_1d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reverse_2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reverse_3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reverse_4d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/split_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/split.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/rfft.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/round.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/rsqrt.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/selu.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/separable_conv2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/setdiff1d_async.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sign.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sin.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sinh.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/slice1d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/slice2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/slice3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/slice4d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/softmax.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sqrt.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/squared_difference.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/squeeze.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/stack.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/step.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/strided_slice.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tan.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor4d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor5d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor6d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/topk.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/truncated_normal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/unsorted_segment_sum.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/unstack.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/variable.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/where_impl.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/where_async.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/boolean_mask.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/compare.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/binary_ops.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/norm.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/moving_average.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/scatter_nd_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/scatter_nd.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sparse_to_dense_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sparse_to_dense.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/gather_nd.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/dropout_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/dropout.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/signal_ops_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/in_top_k.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv2d_backprop_filter.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/fused_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/fused_conv2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/depthwise_conv2d_native_backprop_filter.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/depthwise_conv2d_native_backprop_input.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/fused_depthwise_conv2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/fused_mat_mul.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/fused_ops.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/hamming_window.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/hann_window.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/frame.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/stft.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/crop_and_resize.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/flip_left_right.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/rotate_with_offset.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/nonmax_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/non_max_suppression.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/array_util.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/non_max_suppression_impl.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/non_max_suppression_async.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/non_max_suppression_with_score.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/non_max_suppression_with_score_async.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/non_max_suppression_padded.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/non_max_suppression_padded_async.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/resize_bilinear.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/resize_nearest_neighbor.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/band_part.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/gram_schmidt.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/qr.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/loss_ops_utils.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/compute_weighted_loss.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/absolute_difference.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/cosine_distance.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/hinge_loss.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/huber_loss.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/log_loss.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/mean_squared_error.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sigmoid_cross_entropy.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/softmax_cross_entropy.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/ops.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/base_side_effects.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/types.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/io_utils.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/router_registry.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/model_management.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/browser_files.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/progress.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/weights_loader.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/http.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/passthrough.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/io.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/confusion_matrix.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/math.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/browser.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/gather_nd_util.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/serialization.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/version.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/adadelta_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/adagrad_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/adam_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/adamax_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/sgd_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/momentum_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/rmsprop_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/optimizer_constructors.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/train.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/browser_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/rotate_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/array_ops_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/selu_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/erf_util.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/log.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/complex_util.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/backend_util.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/split_shared.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/tile_impl.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/topk_impl.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/kernel_impls.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/backend.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Abs_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Acos_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Acosh_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Add_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/AddN_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/ArgMax_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/ArgMin_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Asin_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Asinh_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Atan2_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Atan_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Atanh_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/avg_pool_3d_backprop.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/AvgPool3D_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/avg_pool_backprop.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/AvgPool_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/BatchMatMul_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/BatchToSpaceND_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/BroadcastTo_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Cast_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Ceil_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/ClipByValue_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Concat_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Conv2D_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Conv2DBackpropInput_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv3d_backprop_filter.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Conv3D_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Cos_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Cosh_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Cumsum_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/DepthwiseConv2dNative_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Dilation2D_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Div_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Elu_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Erf_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Exp_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Expm1_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Floor_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/FloorDiv_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/FusedBatchNorm_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/GatherV2_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/GreaterEqual_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Identity_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/IsFinite_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/IsInf_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/IsNan_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Log1p_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Log_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/LogSoftmax_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/local_response_normalization_backprop.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/LRN_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/min_max_grad_util.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Max_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Maximum_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/max_pool_3d_backprop.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/MaxPool3D_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/max_pool_backprop.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/MaxPool_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Min_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Minimum_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Mod_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Multiply_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Negate_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/OneHot_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/OnesLike_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/PadV2_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Pow_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Prelu_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Reciprocal_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Relu6_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Relu_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Reshape_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/ResizeBilinear_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/ResizeNearestNeighbor_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Reverse_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Round_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Rsqrt_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/SelectV2_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Selu_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sigmoid_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sign_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sin_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sinh_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Slice_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Softmax_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Softplus_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/SpaceToBatchND_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/SplitV_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sqrt_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Square_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/SquaredDifference_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Step_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sub_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sum_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Tan_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Tanh_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Tile_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Transpose_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Unpack_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/UnsortedSegmentSum_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/ZerosLike_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/register_all_gradients.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/index.ts", "build/draw/../../src/draw/drawContour.ts", "build/classes/../../src/classes/Dimensions.ts", "build/utils/../../src/utils/index.ts", "build/classes/../../src/classes/Point.ts", "build/classes/../../src/classes/Box.ts", "build/classes/../../src/classes/BoundingBox.ts", "build/classes/../../src/classes/ObjectDetection.ts", "build/classes/../../src/classes/FaceDetection.ts", "build/ops/../../src/ops/iou.ts", "build/ops/../../src/ops/minBbox.ts", "build/ops/../../src/ops/nonMaxSuppression.ts", "build/ops/../../src/ops/normalize.ts", "build/ops/../../src/ops/padToSquare.ts", "build/ops/../../src/ops/shuffleArray.ts", "build/ops/../../src/ops/index.ts", "build/classes/../../src/classes/Rect.ts", "build/classes/../../src/classes/FaceLandmarks.ts", "build/classes/../../src/classes/FaceLandmarks5.ts", "build/classes/../../src/classes/FaceLandmarks68.ts", "build/classes/../../src/classes/FaceMatch.ts", "build/classes/../../src/classes/LabeledBox.ts", "build/classes/../../src/classes/LabeledFaceDescriptors.ts", "build/classes/../../src/classes/PredictedBox.ts", "build/factories/../../src/factories/WithFaceDetection.ts", "build/env/../../src/env/createBrowserEnv.ts", "build/env/../../src/env/createFileSystem.ts", "build/env/../../src/env/createNodejsEnv.ts", "build/env/../../src/env/isBrowser.ts", "build/dom/../../src/dom/resolveInput.ts", "build/dom/../../src/dom/getContext2dOrThrow.ts", "build/draw/../../src/draw/DrawTextField.ts", "build/draw/../../src/draw/DrawBox.ts", "build/draw/../../src/draw/drawDetections.ts", "build/dom/../../src/dom/isMediaLoaded.ts", "build/dom/../../src/dom/awaitMediaLoaded.ts", "build/dom/../../src/dom/bufferToImage.ts", "build/dom/../../src/dom/getMediaDimensions.ts", "build/dom/../../src/dom/createCanvas.ts", "build/dom/../../src/dom/imageTensorToCanvas.ts", "build/dom/../../src/dom/isMediaElement.ts", "build/dom/../../src/dom/imageToSquare.ts", "build/dom/../../src/dom/NetInput.ts", "build/dom/../../src/dom/toNetInput.ts", "build/dom/../../src/dom/extractFaces.ts", "build/dom/../../src/dom/extractFaceTensors.ts", "build/dom/../../src/dom/fetchOrThrow.ts", "build/dom/../../src/dom/fetchImage.ts", "build/dom/../../src/dom/fetchJson.ts", "build/dom/../../src/dom/fetchNetWeights.ts", "build/common/../../src/common/getModelUris.ts", "build/dom/../../src/dom/loadWeightMap.ts", "build/dom/../../src/dom/matchDimensions.ts", "build/../src/NeuralNetwork.ts", "build/common/../../src/common/depthwiseSeparableConv.ts", "build/faceFeatureExtractor/../../src/faceFeatureExtractor/denseBlock.ts", "build/common/../../src/common/convLayer.ts", "build/common/../../src/common/disposeUnusedWeightTensors.ts", "build/common/../../src/common/extractConvParamsFactory.ts", "build/common/../../src/common/extractFCParamsFactory.ts", "build/common/../../src/common/types.ts", "build/common/../../src/common/extractSeparableConvParamsFactory.ts", "build/common/../../src/common/extractWeightEntryFactory.ts", "build/common/../../src/common/extractWeightsFactory.ts", "build/faceFeatureExtractor/../../src/faceFeatureExtractor/extractorsFactory.ts", "build/faceFeatureExtractor/../../src/faceFeatureExtractor/extractParams.ts", "build/common/../../src/common/loadConvParamsFactory.ts", "build/faceFeatureExtractor/../../src/faceFeatureExtractor/loadParamsFactory.ts", "build/faceFeatureExtractor/../../src/faceFeatureExtractor/extractParamsFromWeigthMap.ts", "build/faceFeatureExtractor/../../src/faceFeatureExtractor/FaceFeatureExtractor.ts", "build/common/../../src/common/fullyConnectedLayer.ts", "build/faceProcessor/../../src/faceProcessor/extractParams.ts", "build/faceProcessor/../../src/faceProcessor/extractParamsFromWeigthMap.ts", "build/faceProcessor/../../src/faceProcessor/util.ts", "build/faceProcessor/../../src/faceProcessor/FaceProcessor.ts", "build/faceExpressionNet/../../src/faceExpressionNet/FaceExpressions.ts", "build/faceExpressionNet/../../src/faceExpressionNet/FaceExpressionNet.ts", "build/factories/../../src/factories/WithFaceExpressions.ts", "build/draw/../../src/draw/drawFaceExpressions.ts", "build/factories/../../src/factories/WithFaceLandmarks.ts", "build/draw/../../src/draw/DrawFaceLandmarks.ts", "build/draw/../../src/draw/index.ts", "build/xception/../../src/xception/extractParams.ts", "build/xception/../../src/xception/extractParamsFromWeigthMap.ts", "build/xception/../../src/xception/TinyXception.ts", "build/ageGenderNet/../../src/ageGenderNet/extractParams.ts", "build/ageGenderNet/../../src/ageGenderNet/extractParamsFromWeigthMap.ts", "build/ageGenderNet/../../src/ageGenderNet/types.ts", "build/ageGenderNet/../../src/ageGenderNet/AgeGenderNet.ts", "build/faceLandmarkNet/../../src/faceLandmarkNet/FaceLandmark68NetBase.ts", "build/faceLandmarkNet/../../src/faceLandmarkNet/FaceLandmark68Net.ts", "build/faceFeatureExtractor/../../src/faceFeatureExtractor/extractParamsFromWeigthMapTiny.ts", "build/faceFeatureExtractor/../../src/faceFeatureExtractor/extractParamsTiny.ts", "build/faceFeatureExtractor/../../src/faceFeatureExtractor/TinyFaceFeatureExtractor.ts", "build/faceLandmarkNet/../../src/faceLandmarkNet/FaceLandmark68TinyNet.ts", "build/faceLandmarkNet/../../src/faceLandmarkNet/index.ts", "build/faceRecognitionNet/../../src/faceRecognitionNet/scaleLayer.ts", "build/faceRecognitionNet/../../src/faceRecognitionNet/convLayer.ts", "build/faceRecognitionNet/../../src/faceRecognitionNet/extractParams.ts", "build/faceRecognitionNet/../../src/faceRecognitionNet/extractParamsFromWeigthMap.ts", "build/faceRecognitionNet/../../src/faceRecognitionNet/residualLayer.ts", "build/faceRecognitionNet/../../src/faceRecognitionNet/FaceRecognitionNet.ts", "build/faceRecognitionNet/../../src/faceRecognitionNet/index.ts", "build/factories/../../src/factories/WithFaceDescriptor.ts", "build/factories/../../src/factories/WithAge.ts", "build/factories/../../src/factories/WithGender.ts", "build/globalApi/../../src/globalApi/ComposableTask.ts", "build/globalApi/../../src/globalApi/extractFacesAndComputeResults.ts", "build/tinyYolov2/../../src/tinyYolov2/config.ts", "build/tinyYolov2/../../src/tinyYolov2/leaky.ts", "build/tinyYolov2/../../src/tinyYolov2/convWithBatchNorm.ts", "build/tinyYolov2/../../src/tinyYolov2/depthwiseSeparableConv.ts", "build/tinyYolov2/../../src/tinyYolov2/extractParams.ts", "build/tinyYolov2/../../src/tinyYolov2/extractParamsFromWeigthMap.ts", "build/tinyYolov2/../../src/tinyYolov2/TinyYolov2Options.ts", "build/tinyYolov2/../../src/tinyYolov2/TinyYolov2Base.ts", "build/tinyFaceDetector/../../src/tinyFaceDetector/const.ts", "build/tinyFaceDetector/../../src/tinyFaceDetector/TinyFaceDetector.ts", "build/tinyYolov2/../../src/tinyYolov2/const.ts", "build/tinyYolov2/../../src/tinyYolov2/TinyYolov2.ts", "build/globalApi/../../src/globalApi/nets.ts", "build/globalApi/../../src/globalApi/PredictFaceExpressionsTask.ts", "build/globalApi/../../src/globalApi/PredictAgeAndGenderTask.ts", "build/globalApi/../../src/globalApi/ComputeFaceDescriptorsTasks.ts", "build/tinyFaceDetector/../../src/tinyFaceDetector/TinyFaceDetectorOptions.ts", "build/globalApi/../../src/globalApi/DetectFaceLandmarksTasks.ts", "build/globalApi/../../src/globalApi/DetectFacesTasks.ts", "build/globalApi/../../src/globalApi/detectFaces.ts", "build/../src/euclideanDistance.ts", "build/globalApi/../../src/globalApi/FaceMatcher.ts", "build/tinyFaceDetector/../../src/tinyFaceDetector/index.ts", "build/../src/resizeResults.ts"], - "sourcesContent": ["// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", null, "//# sourceMappingURL=types.js.map", null, "//# sourceMappingURL=types.js.map", null, "//# sourceMappingURL=types.js.map", null, "//# sourceMappingURL=types.js.map", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null], - "mappings": "mdAAA,oBA2BA,AAAC,UAAS,EAAQ,EAAQ,GAE1B,WAAc,GACZ,GAAI,GAAK,KAAM,EAAO,IAEtB,EAAG,KAAO,WACR,GAAI,GAAI,QAAU,EAAG,GAAK,EAAG,EAAI,sBACjC,SAAG,GAAK,EAAG,GACX,EAAG,GAAK,EAAG,GACJ,EAAG,GAAK,EAAK,GAAG,EAAI,EAAI,IAIjC,EAAG,EAAI,EACP,EAAG,GAAK,EAAK,KACb,EAAG,GAAK,EAAK,KACb,EAAG,GAAK,EAAK,KACb,EAAG,IAAM,EAAK,GACd,AAAI,EAAG,GAAK,GAAK,GAAG,IAAM,GAC1B,EAAG,IAAM,EAAK,GACd,AAAI,EAAG,GAAK,GAAK,GAAG,IAAM,GAC1B,EAAG,IAAM,EAAK,GACd,AAAI,EAAG,GAAK,GAAK,GAAG,IAAM,GAC1B,EAAO,KAGT,WAAc,EAAG,GACf,SAAE,EAAI,EAAE,EACR,EAAE,GAAK,EAAE,GACT,EAAE,GAAK,EAAE,GACT,EAAE,GAAK,EAAE,GACF,EAGT,WAAc,EAAM,GAClB,GAAI,GAAK,GAAI,GAAK,GACd,EAAQ,GAAQ,EAAK,MACrB,EAAO,EAAG,KACd,SAAK,MAAQ,WAAa,MAAQ,GAAG,OAAS,WAAe,GAC7D,EAAK,OAAS,WACZ,MAAO,KAAU,KAAS,QAAW,GAAK,uBAE5C,EAAK,MAAQ,EACb,AAAI,GACF,CAAI,MAAO,IAAU,UAAU,EAAK,EAAO,GAC3C,EAAK,MAAQ,WAAa,MAAO,GAAK,EAAI,MAErC,EAGT,aACE,GAAI,GAAI,WAEJ,EAAO,SAAS,GAClB,EAAO,EAAK,WACZ,OAAS,GAAI,EAAG,EAAI,EAAK,OAAQ,KAC/B,GAAK,EAAK,WAAW,GACrB,GAAI,GAAI,mBAAsB,EAC9B,EAAI,IAAM,EACV,GAAK,EACL,GAAK,EACL,EAAI,IAAM,EACV,GAAK,EACL,GAAK,EAAI,WAEX,MAAQ,KAAM,GAAK,uBAGrB,MAAO,GAIT,AAAI,GAAU,EAAO,QACnB,EAAO,QAAU,EACZ,AAAI,GAAU,EAAO,IAC1B,EAAO,WAAa,MAAO,KAE3B,KAAK,KAAO,IAIZ,GACC,MAAO,KAAW,UAAY,GAC9B,MAAO,SAAW,YAAc,UC9GnC,oBAGA,AAAC,UAAS,EAAQ,EAAQ,GAE1B,WAAgB,GACd,GAAI,GAAK,KAAM,EAAU,GAEzB,EAAG,EAAI,EACP,EAAG,EAAI,EACP,EAAG,EAAI,EACP,EAAG,EAAI,EAGP,EAAG,KAAO,WACR,GAAI,GAAI,EAAG,EAAK,EAAG,GAAK,GACxB,SAAG,EAAI,EAAG,EACV,EAAG,EAAI,EAAG,EACV,EAAG,EAAI,EAAG,EACH,EAAG,GAAM,EAAG,IAAM,GAAM,EAAK,IAAM,GAG5C,AAAI,IAAU,GAAO,GAEnB,EAAG,EAAI,EAGP,GAAW,EAIb,OAAS,GAAI,EAAG,EAAI,EAAQ,OAAS,GAAI,IACvC,EAAG,GAAK,EAAQ,WAAW,GAAK,EAChC,EAAG,OAIP,WAAc,EAAG,GACf,SAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACD,EAGT,WAAc,EAAM,GAClB,GAAI,GAAK,GAAI,GAAO,GAChB,EAAQ,GAAQ,EAAK,MACrB,EAAO,WAAa,MAAQ,GAAG,SAAW,GAAK,YACnD,SAAK,OAAS,WACZ,EACE,IAAI,GAAM,EAAG,SAAW,GACpB,EAAO,GAAG,SAAW,GAAK,WAC1B,EAAU,GAAM,GAAQ,IAAK,UAC1B,IAAW,GACpB,MAAO,IAET,EAAK,MAAQ,EAAG,KAChB,EAAK,MAAQ,EACb,AAAI,GACF,CAAI,MAAO,IAAU,UAAU,EAAK,EAAO,GAC3C,EAAK,MAAQ,WAAa,MAAO,GAAK,EAAI,MAErC,EAGT,AAAI,GAAU,EAAO,QACnB,EAAO,QAAU,EACZ,AAAI,GAAU,EAAO,IAC1B,EAAO,WAAa,MAAO,KAE3B,KAAK,OAAS,IAId,GACC,MAAO,KAAW,UAAY,GAC9B,MAAO,SAAW,YAAc,UC7EnC,oBAGA,AAAC,UAAS,EAAQ,EAAQ,GAE1B,WAAgB,GACd,GAAI,GAAK,KAAM,EAAU,GAGzB,EAAG,KAAO,WACR,GAAI,GAAK,EAAG,EAAK,EAAG,IAAM,EAC1B,SAAG,EAAI,EAAG,EAAG,EAAG,EAAI,EAAG,EAAG,EAAG,EAAI,EAAG,EAAG,EAAG,EAAI,EAAG,EACzC,GAAG,EAAK,EAAG,EAAI,OAAS,GAC5B,GAAG,EAAK,EAAG,EAAK,EAAG,GAAK,EAAO,GAAK,GAAK,IAAO,GAGtD,EAAG,EAAI,EACP,EAAG,EAAI,EACP,EAAG,EAAI,EACP,EAAG,EAAI,EACP,EAAG,EAAI,EAEP,AAAI,IAAU,GAAO,GAEnB,EAAG,EAAI,EAGP,GAAW,EAIb,OAAS,GAAI,EAAG,EAAI,EAAQ,OAAS,GAAI,IACvC,EAAG,GAAK,EAAQ,WAAW,GAAK,EAChC,AAAI,GAAK,EAAQ,QACf,GAAG,EAAI,EAAG,GAAK,GAAK,EAAG,IAAM,GAE/B,EAAG,OAIP,WAAc,EAAG,GACf,SAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACD,EAGT,WAAc,EAAM,GAClB,GAAI,GAAK,GAAI,GAAO,GAChB,EAAQ,GAAQ,EAAK,MACrB,EAAO,WAAa,MAAQ,GAAG,SAAW,GAAK,YACnD,SAAK,OAAS,WACZ,EACE,IAAI,GAAM,EAAG,SAAW,GACpB,EAAO,GAAG,SAAW,GAAK,WAC1B,EAAU,GAAM,GAAQ,IAAK,UAC1B,IAAW,GACpB,MAAO,IAET,EAAK,MAAQ,EAAG,KAChB,EAAK,MAAQ,EACb,AAAI,GACF,CAAI,MAAO,IAAU,UAAU,EAAK,EAAO,GAC3C,EAAK,MAAQ,WAAa,MAAO,GAAK,EAAI,MAErC,EAGT,AAAI,GAAU,EAAO,QACnB,EAAO,QAAU,EACZ,AAAI,GAAU,EAAO,IAC1B,EAAO,WAAa,MAAO,KAE3B,KAAK,OAAS,IAId,GACC,MAAO,KAAW,UAAY,GAC9B,MAAO,SAAW,YAAc,UClFnC,oBAKA,AAAC,UAAS,EAAQ,EAAQ,GAE1B,WAAgB,GACd,GAAI,GAAK,KAGT,EAAG,KAAO,WAER,GAAI,GAAI,EAAG,EAAG,EAAI,EAAG,EAAG,EAAG,EAAG,EAC9B,SAAI,EAAE,GAAI,GAAM,IAAM,EAAI,EAAI,EAAK,GAAK,GACxC,EAAI,EAAG,EAAI,EAAK,GAAI,GAAK,EAAK,IAAM,GACpC,EAAI,EAAG,EAAI,EAAK,GAAI,GAAK,EAAK,IAAM,EACpC,EAAI,EAAG,EAAI,EAAK,GAAI,GAAK,EAAK,GAAK,EACnC,EAAI,EAAG,EAAI,EAAK,GAAI,EAAI,EAAK,GAAK,GAAK,GAAK,EAAK,GAAK,EACtD,EAAE,GAAK,EACP,EAAG,EAAK,EAAI,EAAK,EACV,GAGT,WAAc,EAAI,GAChB,GAAI,GAAG,EAAG,EAAI,GAEd,GAAI,IAAU,GAAO,GAEnB,EAAI,EAAE,GAAK,MAIX,KADA,EAAO,GAAK,EACP,EAAI,EAAG,EAAI,EAAK,OAAQ,EAAE,EAC7B,EAAE,EAAI,GAAM,EAAE,EAAI,IAAM,GACnB,EAAK,WAAW,GAAK,EAAG,EAAI,EAAK,IAAM,GAIhD,KAAO,EAAE,OAAS,GAAG,EAAE,KAAK,GAC5B,IAAK,EAAI,EAAG,EAAI,GAAK,EAAE,KAAO,EAAG,EAAE,EAAE,CAOrC,IANA,AAAI,GAAK,EAAG,EAAI,EAAE,GAAK,GAAS,EAAI,EAAE,GAEtC,EAAG,EAAI,EACP,EAAG,EAAI,EAGF,EAAI,IAAK,EAAI,EAAG,EAAE,EACrB,EAAG,OAIP,EAAK,EAAI,GAGX,WAAc,EAAG,GACf,SAAE,EAAI,EAAE,EAAE,QACV,EAAE,EAAI,EAAE,EACD,EAGT,WAAc,EAAM,GAClB,AAAI,GAAQ,MAAM,GAAO,CAAE,GAAI,SAC/B,GAAI,GAAK,GAAI,GAAO,GAChB,EAAQ,GAAQ,EAAK,MACrB,EAAO,WAAa,MAAQ,GAAG,SAAW,GAAK,YACnD,SAAK,OAAS,WACZ,EACE,IAAI,GAAM,EAAG,SAAW,GACpB,EAAO,GAAG,SAAW,GAAK,WAC1B,EAAU,GAAM,GAAQ,IAAK,UAC1B,IAAW,GACpB,MAAO,IAET,EAAK,MAAQ,EAAG,KAChB,EAAK,MAAQ,EACb,AAAI,GACF,CAAI,EAAM,GAAG,EAAK,EAAO,GACzB,EAAK,MAAQ,WAAa,MAAO,GAAK,EAAI,MAErC,EAGT,AAAI,GAAU,EAAO,QACnB,EAAO,QAAU,EACZ,AAAI,GAAU,EAAO,IAC1B,EAAO,WAAa,MAAO,KAE3B,KAAK,UAAY,IAIjB,GACC,MAAO,KAAW,UAAY,GAC9B,MAAO,SAAW,YAAc,UC9FnC,oBAyBA,AAAC,UAAS,EAAQ,EAAQ,GAE1B,WAAgB,GACd,GAAI,GAAK,KAGT,EAAG,KAAO,WACR,GAAI,GAAI,EAAG,EACP,EAAI,EAAG,EAAG,EAAI,EAAG,EAAG,EAAG,EAE3B,SAAG,EAAI,EAAK,EAAI,WAAc,EAE9B,EAAI,EAAG,EAAI,GAAM,KACjB,EAAI,EAAE,EAAM,EAAI,EAAK,KACrB,GAAK,GAAK,GACV,GAAK,GAAK,GACV,GAAK,IAAM,GACX,GAAK,IAAM,GAEX,EAAI,EAAE,GAAK,EAAI,EACf,EAAG,EAAI,EAEC,EAAK,GAAK,IAAM,IAAQ,GAGlC,WAAc,EAAI,GAChB,GAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAI,GAAI,EAAQ,IAYnC,IAXA,AAAI,IAAU,GAAO,GAEnB,GAAI,EACJ,EAAO,MAGP,GAAO,EAAO,KACd,EAAI,EACJ,EAAQ,KAAK,IAAI,EAAO,EAAK,SAG1B,EAAI,EAAG,EAAI,IAAK,EAAI,EAAO,EAAE,EAEhC,AAAI,GAAM,IAAK,EAAK,WAAY,GAAI,IAAM,EAAK,SAE/C,AAAI,IAAM,GAAG,GAAI,GACjB,GAAK,GAAK,GACV,GAAK,IAAM,GACX,GAAK,GAAK,EACV,GAAK,IAAM,GACX,AAAI,GAAK,GACP,GAAK,EAAI,WAAc,EACvB,EAAK,EAAE,EAAI,MAAS,EAAI,EACxB,EAAK,AAAK,GAAL,EAAU,EAAI,EAAI,GAW3B,IAPA,AAAI,GAAK,KACP,GAAG,IAAQ,EAAK,QAAU,GAAK,KAAO,IAKxC,EAAI,IACC,EAAI,EAAI,IAAK,EAAI,EAAG,EAAE,EACzB,EAAI,EAAG,EAAI,GAAM,KACjB,EAAI,EAAE,EAAM,EAAI,EAAK,KACrB,GAAK,GAAK,GACV,GAAK,GAAK,GACV,GAAK,IAAM,GACX,GAAK,IAAM,GACX,EAAE,GAAK,EAAI,EAGb,EAAG,EAAI,EACP,EAAG,EAAI,EACP,EAAG,EAAI,EAGT,EAAK,EAAI,GAGX,WAAc,EAAG,GACf,SAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EAAE,QACH,EAGT,WAAc,EAAM,GAClB,AAAI,GAAQ,MAAM,GAAO,CAAE,GAAI,SAC/B,GAAI,GAAK,GAAI,GAAO,GAChB,EAAQ,GAAQ,EAAK,MACrB,EAAO,WAAa,MAAQ,GAAG,SAAW,GAAK,YACnD,SAAK,OAAS,WACZ,EACE,IAAI,GAAM,EAAG,SAAW,GACpB,EAAO,GAAG,SAAW,GAAK,WAC1B,EAAU,GAAM,GAAQ,IAAK,UAC1B,IAAW,GACpB,MAAO,IAET,EAAK,MAAQ,EAAG,KAChB,EAAK,MAAQ,EACb,AAAI,GACF,CAAI,EAAM,GAAG,EAAK,EAAO,GACzB,EAAK,MAAQ,WAAa,MAAO,GAAK,EAAI,MAErC,EAGT,AAAI,GAAU,EAAO,QACnB,EAAO,QAAU,EACZ,AAAI,GAAU,EAAO,IAC1B,EAAO,WAAa,MAAO,KAE3B,KAAK,QAAU,IAIf,GACC,MAAO,KAAW,UAAY,GAC9B,MAAO,SAAW,YAAc,UChJnC,oBAIA,AAAC,UAAS,EAAQ,EAAQ,GAE1B,WAAgB,GACd,GAAI,GAAK,KAAM,EAAU,GAGzB,EAAG,KAAO,WACR,GAAI,GAAI,EAAG,EAAG,EAAI,EAAG,EAAG,EAAI,EAAG,EAAG,EAAI,EAAG,EACzC,SAAK,GAAK,GAAO,IAAM,EAAK,EAC5B,EAAK,EAAI,EAAK,EACd,EAAK,GAAK,GAAO,IAAM,EAAK,EAC5B,EAAK,EAAI,EAAK,EACd,EAAG,EAAI,EAAK,GAAK,GAAO,IAAM,GAAM,EACpC,EAAG,EAAI,EAAK,EAAI,EAAK,EACrB,EAAG,EAAK,GAAK,GAAO,IAAM,GAAM,EACzB,EAAG,EAAK,EAAI,EAAK,GAmB1B,EAAG,EAAI,EACP,EAAG,EAAI,EACP,EAAG,EAAI,WAAa,EACpB,EAAG,EAAI,WAEP,AAAI,IAAS,KAAK,MAAM,GAEtB,GAAG,EAAK,EAAO,WAAe,EAC9B,EAAG,EAAI,EAAO,GAGd,GAAW,EAIb,OAAS,GAAI,EAAG,EAAI,EAAQ,OAAS,GAAI,IACvC,EAAG,GAAK,EAAQ,WAAW,GAAK,EAChC,EAAG,OAIP,WAAc,EAAG,GACf,SAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACD,EAGT,WAAc,EAAM,GAClB,GAAI,GAAK,GAAI,GAAO,GAChB,EAAQ,GAAQ,EAAK,MACrB,EAAO,WAAa,MAAQ,GAAG,SAAW,GAAK,YACnD,SAAK,OAAS,WACZ,EACE,IAAI,GAAM,EAAG,SAAW,GACpB,EAAO,GAAG,SAAW,GAAK,WAC1B,EAAU,GAAM,GAAQ,IAAK,UAC1B,IAAW,GACpB,MAAO,IAET,EAAK,MAAQ,EAAG,KAChB,EAAK,MAAQ,EACb,AAAI,GACF,CAAI,MAAO,IAAU,UAAU,EAAK,EAAO,GAC3C,EAAK,MAAQ,WAAa,MAAO,GAAK,EAAI,MAErC,EAGT,AAAI,GAAU,EAAO,QACnB,EAAO,QAAU,EACZ,AAAI,GAAU,EAAO,IAC1B,EAAO,WAAa,MAAO,KAE3B,KAAK,OAAS,IAId,GACC,MAAO,KAAW,UAAY,GAC9B,MAAO,SAAW,YAAc,UCnGnC,kBCAA,oBAwBA,AAAC,UAAU,EAAM,GAIjB,GAAI,GAAS,KACT,EAAQ,IACR,EAAS,EACT,EAAS,GACT,EAAU,SACV,EAAa,EAAK,IAAI,EAAO,GAC7B,EAAe,EAAK,IAAI,EAAG,GAC3B,EAAW,EAAe,EAC1B,EAAO,EAAQ,EACf,EAMJ,WAAoB,EAAM,EAAS,GACjC,GAAI,GAAM,GACV,EAAW,GAAW,GAAQ,CAAE,QAAS,IAAU,GAAW,GAG9D,GAAI,GAAY,EAAO,EACrB,EAAQ,QAAU,CAAC,EAAM,EAAS,IACjC,GAAQ,KAAQ,IAAa,EAAM,GAAI,GAGtC,EAAO,GAAI,GAAK,GAIhB,EAAO,WAIT,OAHI,GAAI,EAAK,EAAE,GACX,GAAI,EACJ,GAAI,EACD,EAAI,GACT,EAAK,GAAI,IAAK,EACd,IAAK,EACL,GAAI,EAAK,EAAE,GAEb,KAAO,GAAK,GACV,GAAK,EACL,IAAK,EACL,MAAO,EAET,MAAQ,GAAI,IAAK,IAGnB,SAAK,MAAQ,WAAa,MAAO,GAAK,EAAE,GAAK,GAC7C,EAAK,MAAQ,WAAa,MAAO,GAAK,EAAE,GAAK,YAC7C,EAAK,OAAS,EAGd,EAAO,EAAS,EAAK,GAAI,GAGjB,GAAQ,MAAQ,GACpB,SAAS,EAAM,GAAM,GAAc,IAUjC,MATA,AAAI,KAEF,CAAI,GAAM,GAAK,EAAK,GAAO,GAE3B,EAAK,MAAQ,WAAa,MAAO,GAAK,EAAM,MAK1C,GAAgB,GAAK,GAAW,EAAa,IAIrC,IAElB,EACA,EACA,UAAY,GAAU,EAAQ,OAAU,MAAQ,EAChD,EAAQ,OAEV,EAAK,OAAS,GAAW,EAYzB,WAAc,GACZ,GAAI,GAAG,EAAS,EAAI,OAChB,EAAK,KAAM,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,GAMtD,IAHA,AAAK,GAAU,GAAM,CAAC,MAGf,EAAI,GACT,EAAE,GAAK,IAET,IAAK,EAAI,EAAG,EAAI,EAAO,IACrB,EAAE,GAAK,EAAE,EAAI,EAAQ,EAAI,EAAI,EAAI,GAAW,GAAI,EAAE,KAClD,EAAE,GAAK,EAIT,AAAC,GAAG,EAAI,SAAS,GAIf,OAFI,IAAG,GAAI,EACP,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EACxB,KACL,GAAI,GAAE,GAAI,EAAQ,GAAI,GACtB,GAAI,GAAI,EAAQ,GAAE,EAAS,IAAE,IAAK,GAAE,GAAI,EAAQ,GAAI,KAAQ,IAAE,IAAK,KAErE,SAAG,EAAI,GAAG,EAAG,EAAI,GACV,KAIN,GAOL,WAAc,EAAG,GACf,SAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EAAE,QACH,EAOT,WAAiB,EAAK,GACpB,GAAI,GAAS,GAAI,EAAO,MAAO,GAAM,EACrC,GAAI,GAAS,GAAO,SAClB,IAAK,IAAQ,GACX,IAAM,EAAO,KAAK,EAAQ,EAAI,GAAO,EAAQ,UAAc,IAG/D,MAAQ,GAAO,OAAS,EAAS,GAAO,SAAW,EAAM,EAAM,KAQjE,WAAgB,EAAM,GAEpB,OADI,GAAa,EAAO,GAAI,EAAO,EAAI,EAChC,EAAI,EAAW,QACpB,EAAI,EAAO,GACT,EAAS,IAAS,EAAI,EAAO,GAAK,IAAM,EAAW,WAAW,KAElE,MAAO,GAAS,GAQlB,aACE,IACE,GAAI,GACJ,MAAI,IAAe,GAAM,EAAW,aAElC,EAAM,EAAI,GAEV,GAAM,GAAI,YAAW,GACpB,GAAO,QAAU,EAAO,UAAU,gBAAgB,IAE9C,EAAS,SACT,GACP,GAAI,GAAU,EAAO,UACjB,EAAU,GAAW,EAAQ,QACjC,MAAO,CAAC,CAAC,GAAI,QAAM,EAAQ,EAAS,EAAO,OAAQ,EAAS,KAQhE,WAAkB,GAChB,MAAO,QAAO,aAAa,MAAM,EAAG,GAgBtC,GANA,EAAO,EAAK,SAAU,GAMjB,MAAO,KAAW,UAAY,GAAO,SACxC,GAAO,QAAU,EAEjB,IACE,EAAa,WACN,SACJ,AAAK,OAAO,SAAW,YAAc,OAAO,KACjD,OAAO,WAAa,MAAO,OAK3B,GACA,QCrPF,oBAYA,GAAI,IAAO,KAKP,GAAS,KAKT,GAAS,KAQT,GAAY,KASZ,GAAU,KAOV,GAAS,KAIT,GAAK,KAET,GAAG,KAAO,GACV,GAAG,OAAS,GACZ,GAAG,OAAS,GACZ,GAAG,UAAY,GACf,GAAG,QAAU,GACb,GAAG,OAAS,GAEZ,GAAO,QAAU,KC3DjB,6CAAM,cACJ,MAAO,OAAO,SAAW,UACpB,IACA,MAAO,KAAW,aAGlB,MAAO,UAAY,aAAe,CAAC,CAAC,QAAQ,WCNnD,kBCAA,mCAIA,SAAyB,SA8DzB,KAAc,UA3Dd,GAAI,IAEJ,cACE,GAAI,CAAC,GACH,KAAM,IAAI,OAAM,yEAElB,MAAO,IAGT,YAAgB,GACd,GAAc,EAGhB,cAGE,GAAI,KACF,MAAO,IAAO,MAEhB,GAAI,cACF,MAAO,IAAO,MAIlB,YAAqB,GAKnB,GAJA,AAAK,IACH,KAGE,CAAC,GACH,KAAM,IAAI,OAAM,8EAGlB,KAAM,CAAE,SAAS,GAAY,OAAQ,QAAQ,GAAY,OAAU,EACnE,GAAY,OAAS,EACrB,GAAY,MAAQ,EACpB,GAAY,oBAAsB,EAAI,qBAAwB,KAAM,GAAI,MACxE,GAAY,mBAAqB,EAAI,oBAAuB,KAAM,GAAI,MAEtE,GAAY,UAAY,EAAI,WAAa,GAAY,UACrD,GAAY,MAAQ,EAAI,OAAS,GAAY,MAC7C,GAAY,MAAQ,EAAI,OAAS,GAAY,MAC7C,GAAY,SAAW,EAAI,UAAY,GAAY,SAG9C,KAAM,IAAM,CACjB,UACA,UACA,cACA,oBACA,oBACA,mBACA,eACA,aACA,sBAGF,OChEA,kBCAA,oeAoBA,KAAc,YCpBd,kBCAA,2IAKA,KAAc,UAIR,YAA2B,EAAuB,EAA8B,IACpF,KAAM,GAAM,GAAI,IAAW,GAC3B,SAAI,eAAe,GACZ,KCZT,kBCAA,62BAOA,KAAc,YCPd,yoCAaA,KAAc,UACd,KAAc,UAKd,KAAc,UAGd,KAAc,YCtBd,AAoBA,KAAM,IAA4B,YApBlC,SAgDE,YAAmB,GAAA,KAAA,OAAA,EATX,KAAA,MAAe,GACf,KAAA,aAAwD,GAExD,KAAA,SAAkB,GAOxB,KAAK,mBAGP,YAAY,EAAsB,GAChC,AAAI,KAAK,UAAY,MACnB,QAAQ,KACJ,YAAY,KAAK,oEACgB,MAEvC,KAAK,aAAe,EACpB,KAAK,SAAW,EAGlB,aACI,EAAkB,EAClB,GAKF,GAJA,KAAK,aAAa,GAAY,CAAC,eAAc,WAIzC,KAAK,SAAS,IAAa,MAC7B,KAAM,GAAY,KAAK,SAAS,GAChC,QAAQ,KACJ,qCAAqC,MAAa,MACtD,KAAK,IAAI,EAAU,SAIjB,UAAS,GACb,MAAI,KAAY,MAAK,MACZ,KAAK,MAAM,GAGpB,MAAK,MAAM,GAAY,KAAM,MAAK,aAAa,GACxC,KAAK,MAAM,IAGpB,IAAI,GACF,GAAI,IAAY,MAAK,MACnB,MAAO,MAAK,MAAM,GAGpB,KAAM,GAAY,KAAK,aAAa,GACpC,GAAI,YAAqB,SACvB,KAAM,IAAI,OACN,QAAQ,uEAId,YAAK,MAAM,GAAY,EAEhB,KAAK,MAAM,GAGpB,UAAU,GACR,MAAO,MAAK,IAAI,GAGlB,QAAQ,GACN,MAAO,MAAK,IAAI,GAGlB,WACE,MAAO,MAAK,SAGV,YACF,MAAO,MAAK,MAGd,IAAI,EAAkB,GACpB,GAAI,KAAK,aAAa,IAAa,KACjC,KAAM,IAAI,OACN,mBAAmB,oCAEzB,KAAK,MAAM,GAAY,EACvB,AAAI,KAAK,aAAa,GAAU,SAAW,MACzC,KAAK,aAAa,GAAU,QAAQ,GAIhC,aAAa,GACnB,GAAI,KAAK,aAAa,IAAa,KACjC,KAAM,IAAI,OACN,yBAAyB,qCAE/B,MAAO,MAAK,aAAa,GAAU,eAGrC,SAAS,GACP,KAAK,MAAQ,OAAO,OAAO,GAAI,GAGjC,QACE,KAAK,MAAQ,GACb,KAAK,SAAW,GAChB,KAAK,mBAGC,mBACN,GAAI,MAAO,MAAK,QAAW,aACvB,MAAO,MAAK,OAAO,UAAa,aAChC,MAAO,MAAK,OAAO,SAAS,QAAW,YACzC,OAGF,KAAM,GAAY,GAAe,KAAK,OAAO,SAAS,QACtD,GAAI,KAA6B,IAC/B,KAAM,GAAY,EAAU,IAA2B,MAAM,KAC7D,EAAU,QAAQ,IAChB,KAAM,CAAC,EAAK,GAAS,EAAS,MAAM,KACpC,KAAK,SAAS,GAAO,GAAW,EAAK,OAMvC,YAAyB,GAC7B,KAAM,GAAS,GACf,SAAY,QAAQ,8BAA+B,CAAC,KAAM,IACxD,IAAY,EAAQ,EAAE,GAAI,EAAE,IACrB,EAAE,KAAK,OAET,EAGT,YACI,EAAiC,EAAc,GACjD,EAAO,mBAAmB,IAAS,mBAAmB,GAAS,IAGjE,YAAoB,EAAkB,GAEpC,GADA,EAAQ,EAAM,cACV,IAAU,QAAU,IAAU,QAChC,MAAO,KAAU,OACZ,GAAI,GAAG,CAAE,MAAY,EAC1B,MAAO,CAAC,EAEV,KAAM,IAAI,OACN,oCAAoC,cAAkB,MAUtD,cACJ,MAAO,IAGF,GAAI,IAAmB,KACxB,YAA+B,GACnC,GAAM,EC5MR,AAqBA,GAAI,IAEE,cACJ,GAAI,IAAmB,MAErB,GAAI,GACJ,GAAI,MAAQ,SAAY,YACtB,EAAK,eACI,MAAQ,SAAY,YAC7B,EAAK,eACI,MAAQ,UAAa,YAC9B,EAAK,gBACI,MAAQ,OAAU,YAC3B,EAAK,SAEL,MAAM,IAAI,OAAM,kCAElB,GAAkB,EAEpB,MAAO,IAIT,cACE,KAAM,GAAK,KACX,MAAI,GAAG,YAAc,MACnB,GAAG,WAAa,GAAI,QAEf,EAAG,WAUN,YAAuB,EAAa,GACxC,KAAM,GAAY,KAClB,GAAI,EAAU,IAAI,GAChB,MAAO,GAAU,IAAI,GAChB,CACL,KAAM,GAAY,IAClB,SAAU,IAAI,EAAK,GACZ,EAAU,IAAI,ICzClB,KAAM,IAAM,MAGN,GAAO,OAGP,GAAQ,QAGR,GAAM,MAGN,GAAO,OAGP,GAAM,MAON,GAAM,MAON,GAAS,SAMT,GAAS,SAMT,GAAO,OAGP,GAAQ,QAGR,GAAO,OAGP,GAAQ,QAGR,GAAQ,QAGR,GAAU,UASV,GAAkB,kBAQlB,GAAY,YAWZ,GAAoB,oBAUpB,GAAc,cAOd,GAAiB,iBASjB,GAAc,cAOd,GAAO,OAMP,GAAO,OAGP,GAAc,cAOd,GAAU,UAGV,GAAS,SAMT,GAAS,SAUT,GAAuB,uBASvB,GAAsB,sBAUtB,GAAS,SAST,GAAyB,yBAQzB,GAAwB,wBAMxB,GAAM,MAGN,GAAO,OAGP,GAAS,SAQT,GAAgB,gBAShB,GAAe,eAOf,GAAwB,wBAWxB,GACT,sCAIS,GACT,qCAIS,GAAO,OAGP,GAAa,aAQb,GAA0B,0BAI1B,GAA2B,2BAI3B,GAAM,MAGN,GAAM,MAGN,GAAU,UAGV,GAAM,MAGN,GAAQ,QAGR,GAAM,MAGN,GAAQ,QAGR,GAAM,MAGN,GAAO,OAOP,GAAgB,gBAGhB,GAAQ,QAGR,GAAW,WAGX,GAAiB,iBAOjB,GAAW,WAMX,GAAW,WAGX,GAAU,UAGV,GAAe,eAGf,GAAW,WAGX,GAAO,OAGP,GAAO,OAGP,GAAW,WAGX,GAAQ,QAGR,GAAQ,QAGR,GAAO,OAGP,GAAY,YAGZ,GAAW,WAMX,GAAM,MAGN,GAAQ,QAGR,GAAa,aAGb,GAAa,aAGb,GAAY,YAGZ,GAAa,aAMb,GAAM,MASN,GAAc,cASd,GAAM,MAON,GAAU,UAGV,GAAU,UASV,GAAkB,kBAUlB,GAAY,YAWZ,GAAoB,oBAWpB,GAAoB,oBASpB,GAAO,OAOP,GAAM,MAON,GAAU,UAGV,GAAM,MAGN,GAAW,WAGX,GAAS,SAGT,GAAW,WAGX,GAAsB,sBAStB,GAAsB,sBAUtB,GAAsB,sBAUtB,GAAW,WAGX,GAAS,SAQT,GAAQ,QAOR,GAAO,OAGP,GAAM,MAGN,GAAQ,QAGR,GAAO,OAOP,GAAQ,QAQR,GAAO,OAGP,GAAa,aAGb,GAAO,OAGP,GAAU,UAMV,GAAwB,wBAOxB,GAA4B,4BAI5B,GAAiB,iBAOjB,GAAqB,qBAGrB,GAAQ,QAGR,GAAU,UAMV,GAAQ,QAGR,GAAQ,QAGR,GAAY,YAMZ,GAAW,WAGX,GAAO,OAGP,GAAQ,QAMR,GAAM,MAGN,GAAO,OAGP,GAAO,OAGP,GAAU,UAGV,GAAW,WAGX,GAAO,OAGP,GAAM,MAON,GAAiB,iBAOjB,GAAS,SAOT,GAAU,UAMV,GAAoB,oBAGpB,GAAS,SAGT,GAAM,MAGN,GAAgB,gBAOhB,GAAe,eAaf,GAAM,MAGN,GAAO,OAGP,GAAO,OAMP,GAAO,OAOP,GAAY,YAQZ,GAAS,SAMT,GAAqB,qBAOrB,GAAY,YAMZ,GAAO,OAMP,GAAa,aASb,GAAmB,mBAQnB,GAAe,eAef,GAAc,cAgBd,GAAuB,uBCvzBpC,AAuBA,KAAM,IACF,GAAU,iBAAkB,IAAM,GAAI,QACpC,GACF,GAAU,eAAgB,IAAM,GAAI,QAoElC,YACF,EAAoB,GACtB,KAAM,GAAM,GAAQ,EAAY,GAChC,MAAO,IAAe,IAAI,GAOtB,YAAsB,GAC1B,MAAO,IAAa,IAAI,GAGpB,YAA+B,GACnC,KAAM,GAAK,GAAe,UACpB,EAAyB,GAE/B,QACE,KAAM,CAAC,OAAM,SAAS,EAAG,OACzB,GAAI,EACF,MAEF,KAAM,CAAC,EAAK,GAAU,EAChB,CAAC,GAAa,EAAI,MAAM,KAC9B,AAAI,IAAY,GACd,EAAO,KAAK,GAGhB,MAAO,GAcH,YAAyB,GAC7B,KAAM,CAAC,aAAY,eAAe,EAC5B,EAAM,GAAQ,EAAY,GAChC,AAAI,GAAe,IAAI,IACrB,QAAQ,KACJ,eAAe,mBACX,4BAEV,GAAe,IAAI,EAAK,GAWpB,YAA2B,GAC/B,KAAM,CAAC,cAAc,EAErB,AAAI,GAAa,IAAI,IAGnB,CAAI,KAAM,QAAQ,UAChB,QAAQ,KAAK,gCAAgC,OAGjD,GAAa,IAAI,EAAY,GAUzB,YACF,EAAoB,GACtB,KAAM,GAAM,GAAQ,EAAY,GAChC,GAAI,CAAC,GAAe,IAAI,GACtB,KAAM,IAAI,OACN,eAAe,mBACX,wBAEV,GAAe,OAAO,GAIlB,YAA6B,GACjC,GAAI,CAAC,GAAa,IAAI,GACpB,KAAM,IAAI,OACN,iBAAiB,oCAEvB,GAAa,OAAO,GAGtB,YAAiB,EAAoB,GACnC,MAAO,GAAG,KAAe,ICrM3B,khCAkCM,YAAkB,GAEtB,GAAI,GAAU,EAAM,OAChB,EAAO,EACP,EAAQ,EAEZ,KAAO,EAAU,GAEf,EAAS,KAAK,SAAW,EAAW,EAEpC,IAEA,EAAO,EAAM,GACb,EAAM,GAAW,EAAM,GACvB,EAAM,GAAS,EAKb,YAAgB,EAAa,EAAW,GAC5C,MAAO,MAAK,IAAI,EAAK,KAAK,IAAI,EAAG,IAG7B,YAA4B,GAChC,MAAO,GAAM,IAAM,EAAI,EAAM,EAAM,EAG/B,YAAc,GAClB,GAAI,GAAM,EACV,OAAS,GAAI,EAAG,EAAI,EAAI,OAAQ,IAC9B,GAAO,EAAI,GAEb,MAAO,GAUH,YAAsB,EAAW,GACrC,KAAM,GAAI,KAAK,SACf,MAAQ,GAAI,EAAM,GAAI,GAAK,EAIvB,YAAsB,EAAe,GACzC,GAAI,GAAS,EACb,OAAS,GAAI,EAAG,EAAI,EAAE,OAAQ,KAC5B,KAAM,GAAO,OAAO,EAAE,IAAM,OAAO,EAAE,IACrC,GAAU,EAAO,EAEnB,MAAO,GAiBH,WAAiB,EAAe,GACpC,GAAI,CAAC,EACH,KAAM,IAAI,OAAM,MAAO,IAAQ,SAAW,EAAM,KAI9C,WACF,EAAkB,EAAkB,EAAqB,IAC3D,EACI,GAAY,EAAQ,GACpB,IAAM,EAAqB,WAAW,SAAc,gBAGpD,YAAwB,GAC5B,EACI,GAAK,KACL,IAAM,iEAqBN,YAEF,EAA0B,EAAc,GAAI,EAAiB,IAI/D,GAHA,AAAI,GAAU,MACZ,GAAS,IAEP,MAAM,QAAQ,IAAQ,GAAa,IAAQ,CAAC,EAC9C,OAAS,GAAI,EAAG,EAAI,EAAI,OAAQ,EAAE,EAChC,GAAQ,EAAI,GAAI,EAAQ,OAG1B,GAAO,KAAK,GAEd,MAAO,GAaH,YAAwB,GAC5B,GAAI,EAAM,SAAW,EAEnB,MAAO,GAET,GAAI,GAAO,EAAM,GACjB,OAAS,GAAI,EAAG,EAAI,EAAM,OAAQ,IAChC,GAAQ,EAAM,GAEhB,MAAO,GAGH,YAAwB,GAC5B,MAAO,GAAM,SAAW,EAGpB,YAAsB,EAAgB,GAC1C,GAAI,IAAO,EACT,MAAO,GAET,GAAI,GAAM,MAAQ,GAAM,KACtB,MAAO,GAGT,GAAI,EAAG,SAAW,EAAG,OACnB,MAAO,GAET,OAAS,GAAI,EAAG,EAAI,EAAG,OAAQ,IAC7B,GAAI,EAAG,KAAO,EAAG,GACf,MAAO,GAGX,MAAO,GAGH,WAAgB,GACpB,MAAO,GAAI,IAAM,EAGb,YAAe,GAEnB,GAAK,KAAa,MAAQ,KAExB,MAAQ,MAAa,KAAK,GAE5B,GAAI,IAAM,SACR,MAAO,GACF,GAAI,IAAM,UACf,MAAO,GACF,CACL,KAAM,GAAM,KAAK,IAAI,EAAI,GACzB,MAAQ,GAAM,GAAM,GAAM,IAIxB,YAA8B,GAClC,KAAM,GAAQ,KAAK,KAAK,KAAK,KAAK,IAClC,MAAO,CAAC,EAAO,KAAK,KAAK,EAAO,IAc5B,YAAgC,GACpC,KAAM,GAAkB,GAAI,aAAY,GACxC,OAAS,GAAI,EAAG,EAAI,EAAG,EAAE,EACvB,EAAgB,GAAK,EAEvB,UAAQ,GACD,EAGH,YAAmB,EAAW,GAClC,MAAI,IAAQ,EAAE,OACL,EAEF,EAAI,IAAI,OAAO,EAAO,EAAE,QAG3B,YACF,EAAwB,EAAU,AAAC,GAAoB,EACvD,GACF,MAAO,IAAI,SAAc,CAAC,EAAS,KACjC,GAAI,GAAW,EAEf,KAAM,GAAQ,KACZ,GAAI,KACF,IACA,OAGF,IAEA,KAAM,GAAc,EAAQ,GAE5B,GAAI,GAAc,MAAQ,GAAY,GACpC,IACA,OAEF,WAAW,EAAO,IAGpB,MAaE,YACF,EAAiB,GACnB,GAAI,GAAY,EACZ,EAAc,GAElB,OAAS,GAAI,EAAG,EAAI,EAAM,OAAQ,EAAE,EAClC,GAAI,EAAM,IAAM,EACd,GAAa,EAAM,WACV,EAAM,KAAO,IACtB,GAAI,IAAgB,GAClB,KAAM,OACF,yDACmB,aAAuB,KAEhD,EAAc,UACL,EAAM,GAAK,EACpB,KAAM,OAAM,gCAAgC,EAAM,aAAa,KAInE,GAAI,IAAgB,IAClB,GAAI,EAAO,GAAK,IAAS,EACvB,KAAM,OAAM,QAAQ,sCAAyC,KAE/D,MAAO,GAGT,GAAI,IAAc,EAChB,KAAM,OACF,qCAAqC,gCAG3C,GAAI,EAAO,IAAc,EACvB,KAAM,OACF,wDACO,OAAU,KAGvB,KAAM,GAAW,EAAM,QACvB,SAAS,GAAe,EAAO,EACxB,EAGH,WACF,EAAuB,GACzB,KAAM,GAAO,EAAM,OAGnB,SAAO,GAAQ,KAAO,EAAM,IAAI,CAAC,EAAG,IAAM,GAAK,GAAG,OAAO,GAGzD,EACI,EAAK,MAAM,GAAM,GAAM,CAAC,GAAQ,EAAK,GACrC,IACI,+CAA+C,MAAS,mBAC5C,KAGpB,EACI,EAAK,MAAM,GAAM,EAAM,IACvB,IAAM,0DACU,KAGb,EAAK,IAAI,GAAK,EAAI,EAAI,EAAO,EAAI,GAIpC,YAAuB,EAAiB,GAE5C,KAAM,GAAqB,GACrB,EAAqB,GACrB,EAAe,GAAQ,MAAQ,MAAM,QAAQ,IAAS,EAAK,SAAW,EACtE,EAAQ,GAAQ,MAAQ,EAC1B,KACA,EAAe,EAAM,GAAO,OAChC,GAAI,GAAI,EACR,OAAS,GAAI,EAAG,EAAI,EAAM,OAAQ,EAAE,GAClC,GAAI,GAAQ,MACV,GAAI,EAAK,KAAO,GAAK,EAAM,KAAO,EAChC,KAAM,IAAI,OACN,sBAAsB,oBAAoB,EAAM,gBAEtD,AAAK,GAAK,IAAM,MAAQ,EAAK,GAAK,IAAM,EAAM,KAAO,GACnD,GAAS,KAAK,EAAM,IACpB,EAAS,KAAK,IAEhB,AAAI,EAAK,IAAM,GACb,IAGJ,AAAI,EAAM,KAAO,GACf,GAAS,KAAK,EAAM,IACpB,EAAS,KAAK,IAGlB,MAAO,CAAC,WAAU,YAGd,YACF,EAAU,GACZ,GAAI,GAAS,KACb,GAAI,GAAS,MAAQ,IAAU,UAC7B,EAAS,GAAI,cAAa,WACjB,IAAU,QACnB,EAAS,GAAI,YAAW,WACf,IAAU,OACnB,EAAS,GAAI,YAAW,OAExB,MAAM,IAAI,OAAM,qBAAqB,KAEvC,MAAO,GAGH,YACF,EAAU,GACZ,GAAI,GAAS,KACb,GAAI,GAAS,MAAQ,IAAU,UAC7B,EAAS,GAAI,cAAa,WACjB,IAAU,QACnB,EAAS,GAAI,YAAW,WACf,IAAU,OACnB,EAAS,GAAI,YAAW,WACf,IAAU,SACnB,EAAS,GAAI,OAAgB,OAE7B,MAAM,IAAI,OAAM,qBAAqB,KAEvC,MAAO,GAGH,YACF,EAA+B,GACjC,OAAS,GAAI,EAAG,EAAI,EAAK,OAAQ,KAC/B,KAAM,GAAM,EAAK,GACjB,GAAI,MAAM,IAAQ,CAAC,SAAS,GAC1B,KAAM,OAAM,oBAAoB,6BAAiC,OAMjE,YAAuB,GAC3B,MAAO,KAAU,QAAU,IAAU,aAAe,IAAU,WAC1D,IAAU,SAAW,IAAU,SAO/B,YAA0B,EAAmB,GACjD,MAAI,KAAY,aAGZ,KAAY,WAAa,IAAY,aAGrC,IAAY,SAAW,IAAY,WAAa,IAAY,aALvD,GAQL,MAAY,QAAU,IAAY,QAMlC,YAAuB,GAC3B,MAAO,aAAa,eAAgB,YAAa,aAC7C,YAAa,YAGb,YAA0B,GAC9B,GAAI,IAAU,WAAa,IAAU,QACnC,MAAO,GACF,GAAI,IAAU,YACnB,MAAO,GACF,GAAI,IAAU,OACnB,MAAO,GAEP,KAAM,IAAI,OAAM,iBAAiB,KAU/B,YAA+B,GACnC,GAAI,GAAO,KACT,MAAO,GAET,GAAI,GAAQ,EACZ,SAAI,QAAQ,GAAK,GAAS,EAAE,QACrB,EAIH,YAAmB,GACvB,MAAO,OAAO,IAAU,UAAY,YAAiB,QAGjD,YAAoB,GACxB,MAAO,OAAO,IAAU,UAGpB,YAAmB,GACvB,MAAO,OAAO,IAAU,SAGpB,YAAqB,GACzB,MAAI,OAAM,QAAQ,GACT,GAAW,EAAO,IAEvB,YAAkB,cACb,UACE,YAAkB,aAAc,YAAkB,YACpD,QACE,GAAS,GACX,UACE,GAAS,GACX,SACE,GAAU,GACZ,OAEF,UAGH,YAAqB,GACzB,MAAO,CAAC,CAAE,IAAK,EAAE,aAAe,EAAE,MAAQ,EAAE,OAGxC,YAAyB,EAAc,GAC3C,OAAS,GAAI,EAAO,EAAI,EAAM,EAAE,EAC9B,GAAI,EAAO,IAAM,EACf,MAAO,GAGX,MAAO,GAGH,YAAyB,GAC7B,KAAM,GAAO,EAAM,OACnB,GAAI,EAAO,EACT,MAAO,GAKT,KAAM,GAAU,GAAI,OAAM,EAAO,GACjC,EAAQ,EAAO,GAAK,EAAM,EAAO,GACjC,OAAS,GAAI,EAAO,EAAG,GAAK,EAAG,EAAE,EAC/B,EAAQ,GAAK,EAAQ,EAAI,GAAK,EAAM,EAAI,GAE1C,MAAO,GAGH,YAAuB,EAAe,GAC1C,GAAI,IAAU,SACZ,KAAM,IAAI,OAAM,6CASlB,GAPA,AAAI,MAAM,QAAQ,IAChB,GAAI,GAAQ,IAGd,AAAI,KAAM,QAAQ,UAChB,GAAyB,EAAe,GAEtC,GAAmB,EAAG,GACxB,MAAO,GAET,GAAI,GAAS,MAAQ,IAAU,WAAa,IAAU,YACpD,MAAO,IAAI,cAAa,GACnB,GAAI,IAAU,QACnB,MAAO,IAAI,YAAW,GACjB,GAAI,IAAU,QACnB,KAAM,GAAO,GAAI,YAAY,EAAe,QAC5C,OAAS,GAAI,EAAG,EAAI,EAAK,OAAQ,EAAE,EACjC,AAAI,KAAK,MAAO,EAAe,MAAQ,GACrC,GAAK,GAAK,GAGd,MAAO,OAEP,MAAM,IAAI,OAAM,qBAAqB,KAIzC,YAA2B,EAAgB,EAAiB,GAC1D,KAAM,GAAM,GAAI,SAChB,GAAI,EAAM,SAAW,GACnB,KAAM,GAAI,EAAM,GAChB,OAAS,GAAI,EAAG,EAAI,EAAG,IACrB,EAAI,GAAK,EAAE,EAAS,QAGtB,KAAM,GAAI,EAAM,GACV,EAAO,EAAM,MAAM,GACnB,EAAM,EAAK,OAAO,CAAC,EAAK,IAAM,EAAM,GAC1C,OAAS,GAAI,EAAG,EAAI,EAAG,IACrB,EAAI,GAAK,GAAkB,EAAS,EAAI,EAAK,EAAM,GAGvD,MAAO,GAIH,YAAwB,EAAiB,GAC7C,GAAI,EAAM,SAAW,EAEnB,MAAO,GAAE,GAEX,KAAM,GAAO,EAAM,OAAO,CAAC,EAAK,IAAM,EAAM,GAC5C,GAAI,IAAS,EAEX,MAAO,GAET,GAAI,IAAS,EAAE,OACb,KAAM,IAAI,OAAM,IAAI,oCAAwC,EAAE,WAGhE,MAAO,IAAkB,EAAG,EAAO,GAGrC,YAA4B,EAAe,GACzC,MAAQ,aAAa,eAAgB,IAAU,WAC1C,YAAa,aAAc,IAAU,SACrC,YAAa,aAAc,IAAU,OAGtC,YACF,EAAc,GAChB,KAAM,GAAQ,GAAoB,EAAM,GACxC,OAAS,GAAI,EAAG,EAAI,EAAM,OAAQ,IAChC,EAAM,GAAK,EAEb,MAAO,GAGH,YACF,EAAc,GAChB,GAAI,GAAS,MAAQ,IAAU,WAAa,IAAU,YACpD,MAAO,IAAI,cAAa,GACnB,GAAI,IAAU,QACnB,MAAO,IAAI,YAAW,GACjB,GAAI,IAAU,OACnB,MAAO,IAAI,YAAW,GAEtB,KAAM,IAAI,OAAM,qBAAqB,KASnC,YACF,EAAiB,GACnB,KAAM,GAAO,EAAM,OAAO,CAAC,EAAM,IAAS,EAAO,EAAM,GACvD,GAAI,GAAS,MAAQ,IAAU,UAC7B,MAAO,IAAc,EAAO,GAAI,cAAa,IACxC,GAAI,IAAU,QACnB,MAAO,IAAc,EAAO,GAAI,YAAW,IACtC,GAAI,IAAU,OACnB,MAAO,IAAc,EAAO,GAAI,YAAW,IAE3C,KAAM,IAAI,OAAM,qBAAqB,KAcnC,cACJ,MAAO,MAAM,SAAS,MAGlB,YAA6C,GACjD,EAAM,QAAQ,IACZ,EACI,OAAO,UAAU,IAAY,GAAW,EACxC,IACI,0EACU,SAmBhB,YACF,EAAc,GAChB,MAAO,MAAM,SAAS,MAAM,EAAM,GAW9B,YAAuB,EAAW,EAAW,SACjD,SAAW,GAAY,QAChB,KAAM,SAAS,OAAO,EAAG,GAU5B,YAAuB,EAAmB,EAAW,SACzD,SAAW,GAAY,QAChB,KAAM,SAAS,OAAO,EAAO,GAWhC,YACF,EAAgB,EAAc,GAChC,GAAI,IAAS,EACX,MAAO,GACF,GAAI,IAAS,EAClB,MAAO,GAAK,GAEd,GAAI,GAAQ,EAAK,EAAK,OAAS,GAC/B,OAAS,GAAI,EAAG,EAAI,EAAK,OAAS,EAAG,EAAE,EACrC,GAAS,EAAQ,GAAK,EAAK,GAE7B,MAAO,GAWH,YACF,EAAe,EAAc,GAC/B,GAAI,IAAS,EACX,MAAO,GACF,GAAI,IAAS,EAClB,MAAO,CAAC,GAEV,KAAM,GAAiB,GAAI,OAAM,GACjC,OAAS,GAAI,EAAG,EAAI,EAAK,OAAS,EAAG,EAAE,EACrC,EAAK,GAAK,KAAK,MAAM,EAAQ,EAAQ,IACrC,GAAS,EAAK,GAAK,EAAQ,GAE7B,SAAK,EAAK,OAAS,GAAK,EACjB,ECxwBT,SAgCE,YAAoB,EAAoC,GAApC,KAAA,aAAA,EAAoC,KAAA,OAAA,EACtD,AAAI,GAAU,MACZ,MAAK,OAAS,GAAI,OAItB,cAAc,EAAoB,EAAwB,GAExD,GAAI,GACJ,KAAM,GAAsB,KAC1B,EAAU,KAEN,EAAQ,KAAK,aAAa,KAAK,GAErC,EAAQ,IAAI,IAGV,EAAE,OAAO,KAAK,IACZ,GAA0B,EAAY,EAAE,MAAO,OAInD,KAAM,GAAgB,CACpB,aACA,UACA,SACA,OAAQ,EAAM,KAAK,GAAU,EAAO,UACpC,UAAW,EAAM,KACb,GAAU,EAAO,qBAAuB,KACpC,EAAO,sBACP,KAEV,MAAO,GAGT,iBAAiB,GACf,KAAM,CAAC,aAAY,UAAS,SAAQ,SAAQ,aAAa,EAEzD,EAAQ,QAAQ,IACd,QAAQ,IAAI,CAAC,EAAO,OAAQ,EAAQ,IAAY,KAAK,IACnD,KAAK,OAAO,iBACR,EAAY,EAAQ,EAAe,GAAI,EAAe,GAAI,EAC1D,EAAe,SAMrB,YACF,EAAsB,EAAU,GAClC,GAAI,IAAU,UAEZ,MAAO,GAET,OAAS,GAAI,EAAG,EAAI,EAAK,OAAQ,KAC/B,KAAM,GAAM,EAAK,GACjB,GAAI,MAAM,IAAQ,CAAC,SAAS,GAE1B,eAAQ,KAAK,SAAS,uBAAyB,MACxC,GAGX,MAAO,GA9FT,SAkGE,iBACI,EAAc,EAAgB,EAC9B,EAAgC,EAChC,GACF,KAAM,GAAO,MAAO,IAAW,SAAW,AAAK,GAAS,GAAG,MAAY,GAC7B,EAAO,MAC3C,EAAa,AAAK,GAAS,EAAM,IACjC,EAAO,EAAO,KACd,EAAO,EAAO,KACd,EAAQ,AAAK,GAAS,EAAO,MAAM,WAAY,IACrD,GAAI,GAAyB,GAE7B,SAAW,KAAQ,IACjB,KAAM,GAAQ,EAAO,GACrB,GAAI,GAAS,MAGX,KAAM,GAAa,EAAM,OAAS,EAAO,MACnC,EAAY,EAAW,OAC7B,GACI,GAAG,MAAS,MAAc,EAAY,EAAI,EAAa,OAI/D,QAAQ,IACJ,KAAK,OAAiB,OAAW,MAAS,OAAY,OAClD,OAA6B,IACjC,mBAAoB,YAAa,aAAc,gBAC/C,eAAgB,qBC9HxB,AA2CM,YACF,EAAkB,EAAc,GAGlC,KAAM,GAA8C,GAC9C,EAA0C,GAChD,OAAS,GAAI,EAAG,EAAI,EAAG,OAAQ,IAC7B,EAAa,EAAG,GAAG,IAAM,GAG3B,OAAS,GAAI,EAAG,EAAI,EAAK,OAAQ,KAC/B,KAAM,GAAO,EAAK,GACZ,EAAa,EAAK,OACxB,SAAW,KAAa,IACtB,KAAM,GAAQ,EAAW,GAEzB,GAAI,GAAgB,GACpB,OAAS,GAAI,EAAG,EAAI,EAAG,OAAQ,IAC7B,GAAI,EAAa,EAAM,KACrB,EAAK,QAAQ,QAAQ,GAAU,EAAa,EAAO,IAAM,IACzD,EAAgB,GAChB,EAAW,EAAK,IAAM,GACtB,MAIJ,GAAI,EACF,OAMN,KAAM,GAAgD,GACtD,EAAe,EAAE,IAAM,GACvB,KAAM,GAAwC,GAE9C,OAAS,GAAI,EAAK,OAAS,EAAG,GAAK,EAAG,KACpC,KAAM,GAAO,EAAK,GACZ,EAAa,EAAK,OAGxB,OAAS,GAAI,EAAG,EAAI,EAAK,QAAQ,OAAQ,IACvC,GAAI,EAAe,EAAK,QAAQ,GAAG,KACjC,SAAW,KAAa,GACtB,EAAe,EAAW,GAAW,IAAM,GAC3C,EAAS,EAAK,IAAM,GAEtB,OAMN,KAAM,GAA2B,GACjC,OAAS,GAAI,EAAG,EAAI,EAAK,OAAQ,KAC/B,KAAM,GAAO,EAAK,GAElB,GAAI,EAAW,EAAK,KAAO,EAAS,EAAK,KAEvC,KAAM,GAA8C,GACpD,SAAW,KAAa,GAAK,QAC3B,KAAM,GAAY,EAAK,OAAO,GAC9B,AAAI,EAAa,EAAU,KACzB,GAAa,GAAa,GAK9B,KAAM,GAAa,OAAO,OAAO,GAAI,GACrC,EAAW,OAAS,EACpB,EAAW,QAAU,EAAK,QAE1B,EAAa,KAAK,IAItB,MAAO,GAUH,YACF,EACA,EAA0B,EAC1B,GAEF,OAAS,GAAI,EAAa,OAAS,EAAG,GAAK,EAAG,KAC5C,KAAM,GAAO,EAAa,GAEpB,EAAgB,GAYtB,GAXA,EAAK,QAAQ,QAAQ,IACnB,KAAM,GAAa,EAA6B,EAAE,IAClD,AAAI,GAAc,KAChB,EAAI,KAAK,GAIT,EAAI,KAAK,QAIT,EAAK,UAAY,KACnB,KAAM,IAAI,OACN,4DACO,EAAK,eAIlB,KAAM,GAAiB,EAAK,SAAS,GAErC,SAAW,KAAa,GAAK,QAC3B,GAAI,CAAE,KAAa,IACjB,KAAM,IAAI,OACN,iCAAiC,iCACH,OAAO,KAAK,OAIhD,KAAM,GAAK,EAAK,IAAM,EAAe,MACrC,GAAI,EAAG,QAAU,UACf,KAAM,IAAI,OACN,4BACI,EAAK,qCACN,yCAAiD,EAAG,UAE7D,KAAM,GAAI,EAAK,OAAO,GACtB,GAAI,CAAC,AAAK,GAAY,EAAG,MAAO,EAAE,OAChC,KAAM,IAAI,OACN,4BACI,EAAK,sCACL,iBAAyB,EAAG,wDACL,EAAE,UAGnC,GAAI,EAA6B,EAAE,KAAO,KACxC,EAA6B,EAAE,IAAM,OAErC,KAAM,GAAc,EAA6B,EAAE,IACnD,EAA6B,EAAE,IAAM,EAAI,EAAa,GACtD,EAAY,aC5LpB,AAqBA,KAAM,IAAwB,GAExB,GAA6B,EAE7B,GAAwB,EAExB,YACF,EAA2B,EAAiB,EAC5C,GACF,KAAM,GAAU,GAAe,GACzB,EAAY,GAAwB,EAAM,EAAO,EAAO,GACxD,EAAO,EAAM,OACb,EAAY,GAAkB,EAAM,EAAO,EAAO,EAAS,GAC3D,EAAQ,CAAC,UACf,MAAI,IACF,GAAM,KAAK,YAAY,KACvB,EAAM,KAAK,WAAW,KACtB,EAAM,KAAK,aAAa,MACxB,EAAM,KAAK,cAEb,EAAM,KAAK,EAAU,IAAI,GAAK,OAAS,GAAG,KAAK;IACxC,EAAM,KAAK;GAGpB,YACI,EAA2B,EAAiB,EAC5C,GACF,KAAM,GAAI,GAAc,GAClB,EAAU,EAAQ,EAAQ,OAAS,GACnC,EAAY,GAAI,OAAM,GAAS,KAAK,GACpC,EAAO,EAAM,OACb,EACF,IAAU,YAAc,GAAoB,GAAQ,EAExD,GAAI,EAAO,EACT,OAAS,GAAM,EAAG,EAAM,EAAI,EAAS,KACnC,KAAM,GAAS,EAAM,EACrB,OAAS,GAAI,EAAG,EAAI,EAAS,IAC3B,EAAU,GAAK,KAAK,IAChB,EAAU,GACV,GAAY,EAAe,EAAS,GAAI,EAAG,GAAO,QAI5D,MAAO,GAGT,YACI,EAAqC,EAAa,GACpD,GAAI,GACJ,MAAI,OAAM,QAAQ,GAChB,EAAS,GAAG,WAAW,EAAI,GAAG,QAAQ,UAC/B,WAAW,EAAI,GAAG,QAAQ,QAC5B,AAAI,GAAS,GAClB,EAAS,IAAI,KACR,AAAI,IAAU,OACnB,EAAS,GAAgB,GAEzB,EAAS,WAAW,EAAI,QAAQ,KAAwB,WAGnD,GAAS,EAAQ,GAG1B,YAAyB,GACvB,MAAO,KAAM,EAAI,QAAU,OAG7B,YACI,EAA2B,EAAiB,EAC5C,EAAmB,EAAqB,EAAS,IACnD,KAAM,GAAoB,IAAU,YAAc,EAAI,EAEhD,EAAO,EAAM,GACb,EAAO,EAAM,OACnB,GAAI,IAAS,GACX,GAAI,IAAU,aACZ,KAAM,GAAe,GAAoB,GACzC,MAAO,CAAC,GAAY,EAAa,GAAI,EAAG,IAE1C,MAAI,KAAU,OACL,CAAC,GAAgB,EAAK,KAExB,CAAC,EAAK,GAAG,YAGlB,GAAI,IAAS,GACX,GAAI,EAAO,IACT,KAAM,GAAgB,GAA6B,EAEnD,GAAI,GAAY,MAAM,KAClB,EAAK,MAAM,EAAG,IACd,EAAW,MAAM,KAAqC,EAAK,MAC1D,GAAO,IAA8B,EACtC,EAAO,IACX,MAAI,KAAU,aACZ,GAAY,GAAoB,GAChC,EAAW,GAAoB,IAE1B,CACL,IACA,EAAU,IAAI,CAAC,EAAG,IAAM,GAAY,EAAG,EAAU,GAAI,IAChD,KAAK,MACV,UACA,EACK,IACG,CAAC,EAAG,IAAM,GACN,EAAG,EAAU,EAAO,GAA6B,GAAI,IAC5D,KAAK,MACV,KAGJ,KAAM,GACF,IAAU,YAAc,GAAoB,GACpB,MAAM,KAAoB,GAEtD,MAAO,CACL,IACA,EAAY,IAAI,CAAC,EAAG,IAAM,GAAY,EAAG,EAAU,GAAI,IAClD,KAAK,MACV,KAKJ,KAAM,GAAW,EAAM,MAAM,GACvB,EAAa,EAAQ,MAAM,GAC3B,EAAS,EAAQ,GAAK,EACtB,EAAkB,GACxB,GAAI,EAAO,IACT,OAAS,GAAI,EAAG,EAAI,GAA4B,KAC9C,KAAM,GAAQ,EAAI,EACZ,EAAM,EAAQ,EACpB,EAAM,KAAK,GAAG,GACV,EAAK,MAAM,EAAO,GAAM,EAAU,EAAO,EAAY,EACrD,KAEN,EAAM,KAAK,OACX,OAAS,GAAI,EAAO,GAA4B,EAAI,EAAM,KACxD,KAAM,GAAQ,EAAI,EACZ,EAAM,EAAQ,EACpB,EAAM,KAAK,GAAG,GACV,EAAK,MAAM,EAAO,GAAM,EAAU,EAAO,EAAY,EACrD,IAAM,EAAO,SAGnB,QAAS,GAAI,EAAG,EAAI,EAAM,KACxB,KAAM,GAAQ,EAAI,EACZ,EAAM,EAAQ,EACpB,EAAM,KAAK,GAAG,GACV,EAAK,MAAM,EAAO,GAAM,EAAU,EAAO,EAAY,EACrD,IAAM,EAAO,IAGrB,KAAM,GAAM,IAAS,EAAI,IAAM,GAC/B,EAAM,GAAK,IAAM,EAAM,GAAK,EAC5B,OAAS,GAAI,EAAG,EAAI,EAAM,OAAS,EAAG,IACpC,EAAM,GAAK,IAAM,EAAM,GAAK,EAE9B,GAAI,GAAa;EACjB,OAAS,GAAI,EAAG,EAAI,EAAM,IACxB,GAAc;EAEhB,SAAM,EAAM,OAAS,GACjB,IAAM,EAAM,EAAM,OAAS,GAAK,IAAO,GAAS,GAAK,GAClD,EAGT,YAA6B,GAE3B,KAAM,GAAyC,GAC/C,OAAS,GAAI,EAAG,EAAI,EAAK,OAAQ,GAAK,EACpC,EAAc,KAAK,CAAC,EAAK,GAAI,EAAK,EAAI,KAExC,MAAO,GCnMT,SA4CE,YAAY,EAA2B,EAAU,GAI/C,GAJqC,KAAA,MAAA,EACrC,KAAK,MAAQ,EAAM,QACnB,KAAK,KAAO,AAAK,GAAc,GAE3B,GAAU,MACZ,KAAM,GAAI,EAAO,OACjB,AAAK,EACD,IAAM,KAAK,KACX,IAAM,qBAAqB,qDACG,KAAK,UAEzC,GAAI,IAAU,YACZ,KAAM,IAAI,OACN,8JAIN,KAAK,OAAS,GAAU,AAAK,GAAkB,EAAO,KAAK,MAC3D,KAAK,QAAU,GAAe,GAUhC,IAAI,KAA6B,GAC/B,AAAI,EAAK,SAAW,GAClB,GAAO,CAAC,IAEV,AAAK,EACD,EAAK,SAAW,KAAK,KACrB,IAAM,uCAAuC,EAAK,gCAC3B,KAAK,SAEhC,KAAM,GAAQ,KAAK,WAAW,GAC9B,KAAK,OAAO,GAAS,EASvB,OAAO,GACL,AAAI,EAAK,SAAW,GAClB,GAAO,CAAC,IAEV,GAAI,GAAI,EACR,SAAW,KAAO,IAChB,GAAI,EAAM,GAAK,GAAO,KAAK,MAAM,IAC/B,KAAM,GAAM,qCAAqC,qBAC3B,KAAK,QAC3B,KAAM,IAAI,OAAM,GAElB,IAEF,GAAI,GAAQ,EAAK,EAAK,OAAS,GAC/B,OAAS,GAAI,EAAG,EAAI,EAAK,OAAS,EAAG,EAAE,EACrC,GAAS,KAAK,QAAQ,GAAK,EAAK,GAElC,MAAO,MAAK,OAAO,GAGrB,WAAW,GACT,GAAI,KAAK,OAAS,EAChB,MAAO,GACF,GAAI,KAAK,OAAS,EACvB,MAAO,GAAK,GAEd,GAAI,GAAQ,EAAK,EAAK,OAAS,GAC/B,OAAS,GAAI,EAAG,EAAI,EAAK,OAAS,EAAG,EAAE,EACrC,GAAS,KAAK,QAAQ,GAAK,EAAK,GAElC,MAAO,GAGT,WAAW,GACT,GAAI,KAAK,OAAS,EAChB,MAAO,GACF,GAAI,KAAK,OAAS,EACvB,MAAO,CAAC,GAEV,KAAM,GAAiB,GAAI,OAAM,KAAK,MAAM,QAC5C,OAAS,GAAI,EAAG,EAAI,EAAK,OAAS,EAAG,EAAE,EACrC,EAAK,GAAK,KAAK,MAAM,EAAQ,KAAK,QAAQ,IAC1C,GAAS,EAAK,GAAK,KAAK,QAAQ,GAElC,SAAK,EAAK,OAAS,GAAK,EACjB,KAGL,QACF,MAAO,MAAK,MAAM,OAOpB,WACE,MAAO,MAAY,WAAW,KAAK,OAAQ,KAAK,MAAO,KAAK,QAiChE,GAAI,IAAiC,KAEjC,GAAuB,KAEvB,GAA8C,KAW5C,YAA2B,GAC/B,GAAY,EAQR,YAAuB,GAC3B,GAAY,EAOR,YAAkC,GACtC,GAAuB,EAtNzB,SAyQE,YAAY,EAAoB,EAAiB,EAAgB,GAXjE,KAAA,KAAO,GA4HG,KAAA,mBAAqB,GAhH7B,KAAK,MAAQ,EAAM,QACnB,KAAK,MAAQ,GAAS,UACtB,KAAK,KAAO,AAAK,GAAc,GAC/B,KAAK,QAAU,GAAe,GAC9B,KAAK,OAAS,EACd,KAAK,GAAK,EACV,KAAK,SAAY,KAAK,KAAO,EAAI,KAAK,KAAK,WAAa,YAGtD,QACF,MAAO,MAAK,MAAM,YAOd,UACJ,KAAM,GAAO,KAAM,MAAK,OACxB,MAAO,IAAU,OAAO,KAAK,MAAO,KAAK,MAAY,GAKvD,aACE,MAAO,IAAU,OAAO,KAAK,MAAO,KAAK,MAAY,KAAK,iBAQtD,SACJ,KAAM,GAAO,KAAM,MAAK,OACxB,MAAO,IAAc,KAAK,MAAO,GAQnC,YACE,MAAO,IAAc,KAAK,MAAO,KAAK,iBAQlC,QACJ,KAAK,kBACL,KAAM,GAAO,KAAY,KAAK,KAAK,QACnC,GAAI,KAAK,QAAU,UACjB,KAAM,GAAQ,KAAM,GACpB,IACE,MAAO,GAAM,IAAI,GAAK,AAAK,GAAa,UACxC,GACA,KAAM,IAAI,OACN,kGAIR,MAAO,GAQT,WACE,KAAK,kBACL,KAAM,GAAO,KAAY,SAAS,KAAK,QACvC,GAAI,KAAK,QAAU,SACjB,IACE,MAAQ,GAAsB,IAAI,GAAK,AAAK,GAAa,UAEzD,GACA,KAAM,IAAI,OACN,iGAIR,MAAO,QAIH,SACJ,KAAK,kBACL,KAAM,GAAO,KAAM,MAAY,KAAK,KAAK,QACzC,MAAI,MAAK,QAAU,SACV,EAEA,GAAI,YAAY,EAAoB,QAQ/C,UACE,GAAI,KAAK,WACP,OAEF,KAAY,cAAc,MAC1B,KAAK,mBAAqB,MAIxB,cACF,MAAO,MAAK,mBAGd,kBACE,GAAI,KAAK,WACP,KAAM,IAAI,OAAM,uBAWpB,MAAM,EAAU,IACd,MAAO,IAAU,MAAM,KAAM,GAK/B,QACE,YAAK,kBACE,GAAU,MAAM,MAOzB,SAAS,EAAU,IACjB,KAAM,GAAO,KAAK,WAClB,MAAO,IAAe,EAAM,KAAK,MAAO,KAAK,MAAO,GAGtD,KAAqB,GACnB,YAAK,kBACE,GAAU,KAAK,KAAW,GAEnC,SAAS,EAAY,GAAM,EAAe,GACxC,YAAK,kBACE,KAAY,aAAa,KAAM,EAAW,EAAM,IAI3D,OAAO,eAAe,GAAQ,OAAO,YAAa,CAChD,MAAO,AAAC,GACC,CAAC,CAAC,GAAY,EAAS,QAAU,MAAQ,EAAS,OAAS,MAC9D,EAAS,OAAS,OA7a1B,gBAgdqD,IAGnD,YACI,EAAgC,EAAoB,EACpD,GACF,MACI,EAAa,MAAO,EAAa,MAAO,EAAa,OAAQ,GAH/B,KAAA,UAAA,EAIlC,KAAK,KAAO,EAUd,OAAO,GACL,GAAI,EAAS,QAAU,KAAK,MAC1B,KAAM,IAAI,OACN,2BAA2B,EAAS,8BACjB,KAAK,qBAE9B,GAAI,CAAC,AAAK,GAAY,EAAS,MAAO,KAAK,OACzC,KAAM,IAAI,OACN,2BAA2B,EAAS,8BACjB,KAAK,qBAE9B,KAAY,cAAc,MAC1B,KAAK,OAAS,EAAS,OACvB,KAAY,OAAO,KAAM,MAG3B,UACE,KAAY,gBAAgB,MAC5B,KAAK,mBAAqB,IAI9B,OAAO,eAAe,GAAU,OAAO,YAAa,CAClD,MAAO,AAAC,GACC,YAAoB,KAAU,EAAS,QAAU,MACpD,EAAS,iBAAkB,YC3fnC,AAgEA,GAAY,IAAZ,AAAA,UAAY,GACV,EAAA,GAAA,KACA,EAAA,GAAA,KACA,EAAA,GAAA,KACA,EAAA,GAAA,KACA,EAAA,GAAA,KACA,EAAA,GAAA,KACA,EAAA,GAAA,OAPU,IAAA,IAAI,KAqBhB,GAAK,IAAL,AAAA,UAAK,GACH,EAAA,QAAA,UACA,EAAA,MAAA,QACA,EAAA,KAAA,QACA,EAAA,UAAA,cAJG,IAAA,IAAiB,KAOtB,GAAK,IAAL,AAAA,UAAK,GACH,EAAA,QAAA,UACA,EAAA,MAAA,QACA,EAAA,KAAA,OACA,EAAA,UAAA,cAJG,IAAA,IAAgB,KAOrB,GAAK,IAAL,AAAA,UAAK,GACH,EAAA,QAAA,UACA,EAAA,MAAA,UACA,EAAA,KAAA,UACA,EAAA,UAAA,cAJG,IAAA,IAAmB,KAOxB,GAAK,IAAL,AAAA,UAAK,GACH,EAAA,QAAA,YACA,EAAA,MAAA,YACA,EAAA,KAAA,YACA,EAAA,UAAA,cAJG,IAAA,IAAqB,KAO1B,KAAM,IAAgB,CACpB,QAAW,GACX,MAAS,GACT,KAAQ,GACR,UAAa,IAGT,YAAqB,EAAiB,GAC1C,GAAI,IAAU,UAAY,IAAU,UAClC,GAAI,IAAU,UAAY,IAAU,SAClC,MAAO,SAET,KAAM,IAAI,OAAM,kBAAkB,UAAc,KAElD,MAAO,IAAc,GAAO,GAIxB,YAAqB,GACzB,MAAO,IAAW,EAAM,SCpI1B,qHAsBM,WAA2C,EAAM,GACrD,GAAI,EAAE,QAAU,EAAE,MAChB,MAAO,CAAC,EAAG,GAEb,KAAM,GAAQ,GAAW,EAAE,MAAO,EAAE,OACpC,MAAO,CAAC,EAAE,KAAK,GAAQ,EAAE,KAAK,IAG1B,YAA2B,EAAW,GAC1C,EACI,EAAE,QAAU,EAAE,MACd,IAAM,2BAA2B,EAAE,qBACpB,EAAE,2BAGjB,YAAyB,EAAgB,GAC7C,MAAO,GAAW,KAAK,GAAK,EAAE,KAAO,EAAO,IAexC,YAAgC,GACpC,KAAM,GAAiB,GACjB,EAAO,GAAI,OACjB,UAAoB,EAAQ,EAAM,GAC3B,EAGT,YACI,EAA4B,EAAgB,GAC9C,GAAI,GAAa,KACf,OAEF,GAAI,YAAqB,KACvB,EAAK,KAAK,GACV,OAEF,GAAI,CAAC,GAAW,GACd,OAGF,KAAM,GAAW,EACjB,SAAW,KAAK,IACd,KAAM,GAAM,EAAS,GACrB,AAAK,EAAK,IAAI,IACZ,GAAK,IAAI,GACT,GAAoB,EAAK,EAAM,KAMrC,YAAoB,GAClB,MAAO,OAAM,QAAQ,IAAQ,MAAO,IAAQ,SCrF9C,SAmFA,cAEE,KAAA,oBAAwC,GAExC,KAAA,eAAiB,EACjB,KAAA,SAAW,EACX,KAAA,WAAa,EACb,KAAA,iBAAmB,EACnB,KAAA,eAAiB,EAMjB,KAAA,cAAgB,EAGhB,KAAA,YAAc,EAId,KAAA,WAA2B,GAK3B,KAAA,kBAA8B,GAC9B,KAAA,YAAc,EAEd,KAAA,WAAa,GAAI,WAQjB,KAAA,UAAY,GACZ,KAAA,cACI,CAAC,SAAU,EAAG,WAAY,EAAG,UAAW,EAAG,QAAS,GAAI,OAAQ,MAEpE,UACE,SAAW,KAAgB,MAAK,oBAC9B,KAAK,oBAAoB,GAAc,WA9H7C,SAmJE,YAAmB,GAAA,KAAA,IAAA,EAbnB,KAAA,SAA0C,GAC1C,KAAA,gBAKI,GAKI,KAAA,qBAAuB,EAG7B,KAAK,MAAQ,GAAI,WAGb,SACJ,GAAI,KAAK,oBAAsB,KAC7B,MAAO,MAAK,mBAAmB,KAAK,QAEtC,GAAI,KAAK,iBAAmB,KAC1B,OAEF,KAAM,GAAiB,KAAK,oBAE5B,OAAS,GAAI,EAAG,EAAI,EAAe,OAAQ,KACzC,KAAM,GAAc,EAAe,GAC7B,EAAU,KAAM,MAAK,kBAAkB,GAAa,QAC1D,GAAI,GACF,KAAM,MAAK,WAAW,GACtB,QAIJ,KAAM,IAAI,OACN,6EAIF,WACF,GAAI,KAAK,oBAAsB,KAC7B,KAAM,IAAI,OACN,YAAY,KAAK,kIAIvB,GAAI,KAAK,iBAAmB,MAC1B,KAAM,CAAC,OAAM,aAAa,KAAK,kCAC/B,GAAI,EACF,KAAM,IAAI,OACN,iCAAiC,wHAIvC,KAAK,WAAW,GAElB,MAAO,MAAK,gBAGd,eACE,MAAO,QAAO,KAAK,KAAK,iBAG1B,YAAY,GACV,GAAI,CAAE,KAAe,MAAK,UAGxB,GAAI,IAAe,MAAK,iBACtB,KAAM,CAAC,aAAa,KAAK,kBAAkB,GAC3C,GAAI,EAEF,MAAO,UAGT,OAAO,MAGX,MAAO,MAAK,SAAS,GAGvB,mBAAmB,GAEjB,MAAM,KAAe,MAAK,gBAGnB,KAAK,gBAAgB,GAAa,QAFhC,KAKX,gBACI,EACA,EACA,EAAW,GACb,MAAI,KAAe,MAAK,gBACtB,SAAQ,KACJ,GAAG,uEAEA,IAET,MAAK,gBAAgB,GAAe,CAAC,UAAS,YACvC,SAGH,YAAW,GACf,GAAI,KAAK,gBAAgB,IAAgB,KACvC,KAAM,IAAI,OAAM,iBAAiB,4BAGnC,GADA,KAAK,YAAc,EACf,KAAK,SAAS,IAAgB,MAChC,KAAK,gBAAkB,KACvB,KAAM,CAAC,UAAS,aAAa,KAAK,kBAAkB,GAC9C,EAAS,EAAY,KAAM,GAAU,EAC3C,GAAI,CAAC,EACH,MAAO,GAGX,YAAK,gBAAkB,KAAK,SAAS,GACrC,KAAK,yBAEL,KAAK,SAAW,GAAI,IAAS,KAAK,iBAE3B,GAGD,yBACN,KAAM,GAAU,GAAqB,KAAK,aAC1C,EAAQ,QAAQ,IACd,AAAI,EAAO,WAAa,MACtB,EAAO,UAAU,KAAK,mBAKpB,yBAAyB,GAC/B,KAAM,GAAU,GAAqB,GACrC,EAAQ,QAAQ,IACd,AAAI,EAAO,aAAe,MACxB,EAAO,YAAY,KAAK,SAAS,MAW/B,kBAAkB,GAExB,KAAM,GAAuB,KAAK,gBAAgB,GAClD,GAAI,GAAwB,KAC1B,KAAM,IAAI,OACN,6BAA6B,6BAGnC,IACE,KAAM,GAAU,EAAqB,UAErC,GAAI,QAAQ,QAAQ,KAAa,GAC/B,KAAM,GAAY,EAAE,KAAK,qBACnB,EACF,EACK,KAAK,GAEA,EAAY,KAAK,qBACZ,GAET,MAAK,SAAS,GAAe,EAC7B,KAAK,mBAAqB,KACnB,KAER,MAAM,GAED,GAAY,KAAK,sBAGrB,MAAK,mBAAqB,KAC1B,QAAQ,KACJ,6BAA6B,YACjC,QAAQ,KAAK,EAAI,OAAS,EAAI,UACvB,KAEjB,YAAK,mBAAqB,EACnB,CAAC,UAAS,UAAW,QAE5B,aAAK,SAAS,GAAe,EACtB,CAAC,QAAS,GAAM,UAAW,UAE7B,GACP,eAAQ,KAAK,6BAA6B,YAC1C,QAAQ,KAAK,EAAI,OAAS,EAAI,SACvB,CAAC,QAAS,GAAO,UAAW,KAIvC,cAAc,GACZ,GAAI,CAAE,KAAe,MAAK,iBACxB,KAAM,IAAI,OAAM,GAAG,mCAErB,AAAI,KAAK,cAAgB,GAAe,KAAK,oBAAsB,MAGjE,KAAK,uBAGP,AAAI,IAAe,MAAK,UACtB,MAAK,yBAAyB,GAC9B,KAAK,SAAS,GAAa,UAC3B,MAAO,MAAK,SAAS,IAGvB,MAAO,MAAK,gBAAgB,GAG5B,AAAI,KAAK,cAAgB,GACvB,MAAK,mBAAqB,KAC1B,KAAK,YAAc,KACnB,KAAK,gBAAkB,MAInB,oBACN,GAAI,OAAO,KAAK,KAAK,iBAAiB,SAAW,EAC/C,KAAM,IAAI,OAAM,iCAElB,MAAO,QAAO,KAAK,KAAK,iBAAiB,KAAK,CAAC,EAAW,IAEjD,KAAK,gBAAgB,GAAG,SAC3B,KAAK,gBAAgB,GAAG,UAIxB,kCAEN,KAAM,GAAiB,KAAK,oBAE5B,OAAS,GAAI,EAAG,EAAI,EAAe,OAAQ,KACzC,KAAM,GAAc,EAAe,GAC7B,CAAC,UAAS,aAAa,KAAK,kBAAkB,GACpD,GAAI,GAAa,EACf,MAAO,CAAC,KAAM,EAAa,aAG/B,KAAM,IAAI,OACN,0EAIN,SAAS,EAAwB,GAC/B,KAAM,GAAO,KAAK,MAAM,WAAW,IAAI,GACjC,EAAa,EAAK,QAClB,EAAS,KAAK,SAAS,GAG7B,EAAW,YAAY,GACvB,EAAK,QAAU,EACf,EAAQ,KAAK,EAAQ,EAAQ,EAAK,MAAO,EAAK,OAC9C,AAAI,KAAK,0BAGP,KAAK,MAAM,kBAAkB,KAAK,MAAM,kBAAkB,OAAS,KAIvE,KAAgC,EAA6B,GAE3D,GAAI,GAAe,KACnB,GAAI,GAAM,MAER,GAAI,MAAO,IAAa,WACtB,KAAM,IAAI,OAAM,uCAElB,EAAK,OAGL,GAAI,MAAO,IAAa,UAAY,CAAE,aAAoB,SACxD,KAAM,IAAI,OACN,kFAGN,GAAI,MAAO,IAAO,WAChB,KAAM,IAAI,OACN,kFAGN,EAAO,EAIT,GAAI,GACJ,MAAO,MAAK,UACR,IAAM,KAAK,WAAW,GAAO,IAAM,KAAK,SAAS,GAAS,IACxD,GAAS,IACT,AAAI,YAAkB,UACpB,QAAQ,MAAM,2CAET,IAIP,UAAa,EAAmB,EAAiB,GACvD,IACA,IACE,KAAM,GAAM,IACZ,WACO,QACA,GACP,UACM,GAKF,eACN,MAAO,IAAO,eAIR,iBACN,MAAO,IAAO,iBAYR,MAAM,GACZ,KAAM,GAAI,KAAK,qBAAqB,EAAE,OAAQ,EAAE,MAAO,EAAE,OACnD,EAAS,CAAC,KACV,EAAO,AAAC,GAAgB,EAC5B,EAAG,KACD,KAAM,GAAQ,UACR,EAAa,CAAC,EAAG,GACjB,EAAQ,CAAC,SAEf,MAAO,GAAO,cACV,GAAW,EAAQ,KAAK,EAAI,GAC5B,EAAoC,KAAiB,GACrD,MAGF,EAAkB,GACxB,YAAK,YAAY,KAAK,MAAM,YAAY,KAAM,EAAQ,CAAC,GAAI,EAAM,EAAO,IACjE,EAgBT,UACI,EAAoB,EAAwB,EAC5C,EAAyB,GAC3B,KAAM,GAAoB,KACpB,EAAsB,KAI5B,MAAO,MAAK,cACR,EAAa,EAAQ,EAAe,EAAY,EAAO,EACvD,GAGE,yBACN,MAAO,MAAK,IAAI,QAAQ,WAGlB,sBACJ,EAAoB,EACpB,GACF,KAAM,GAAkB,KAAK,QAAQ,aAGrC,GAAI,GAAmB,EACvB,EAAS,QAAQ,IAGf,GAAqB,EAAK,QAAU,YAAc,EAAI,IAQxD,KAAM,GACF,KAAK,MAAM,kBAAkB,KAAK,MAAM,kBAAkB,OAAS,GACjE,EACF,EAAkB,EAAmB,EAAmB,EAC5D,GAAI,EAAgB,EAClB,KAAM,IAAI,OACN,YAAY,KAAK,6CACb,8BAA0C,MAQtD,cACI,EAA6B,EAC7B,EACA,EAAqB,EAAsB,EAC3C,GACF,GAAI,GACA,EAAkB,GACtB,KAAM,GAAW,KAAK,WACtB,AAAI,GAAc,MAChB,GACI,KAAK,MAAM,aAAe,KAAO,KAAK,MAAM,YAAY,KAAO,IAGrE,KAAM,GAAoB,KAAK,MAAM,SAC/B,EAAqB,KAAK,MAAM,WAEtC,AAAI,KAAK,0BACP,KAAK,MAAM,kBAAkB,KAAK,GAGpC,GAAI,GACJ,KAAM,GAAS,GAAU,EAAY,KAAK,aAC1C,GAAI,GACJ,GAAI,GAAU,KACZ,EAAa,KACX,KAAM,GAAmB,KAAK,QAAQ,aACtC,EAAM,EAAO,WAAW,CAAC,SAAQ,QAAO,QAAS,KAAK,UACtD,KAAM,GAAW,MAAM,QAAQ,GAAO,EAAM,CAAC,GAC7C,AAAI,KAAK,0BACP,KAAK,sBAAsB,EAAY,EAAkB,GAE3D,KAAM,GAAa,EAAS,IACxB,CAAC,CAAC,SAAQ,QAAO,WACb,KAAK,qBAAqB,EAAQ,EAAO,IAMjD,GAAI,GACF,GAAI,GACA,KAAK,sBAAsB,EAAY,EAAQ,GACnD,GAAI,GAAiB,MAKnB,AAAI,GAAiB,MACnB,GAAgB,IAElB,KAAM,GAAa,EAAW,OAAO,CAAC,EAAG,IAAM,EAAc,IAC7D,EAAiB,IAAgB,IAAI,QAAQ,OAAO,GAEtD,EAAQ,KAAK,2BAA2B,GAE1C,MAAO,SAGT,KAAM,GAAyB,AAAC,IAI9B,GAAI,CAAC,EACH,OAEF,EAAQ,EAAQ,IAAI,GAAU,KAAK,KAAK,KAAK,MAAM,MAGrD,EAAa,KACX,KAAM,GAAmB,KAAK,QAAQ,aACtC,EAAM,KAAK,KAAK,IAAM,EAAY,KAAK,QAAS,IAChD,KAAM,GAAQ,MAAM,QAAQ,GAAO,EAAM,CAAC,GAC1C,MAAI,MAAK,0BACP,KAAK,sBAAsB,EAAY,EAAkB,GAEpD,GAKX,GAAI,GACJ,YAAK,UACD,IAAM,KAAK,MAAM,cAAe,IAAM,KAAK,MAAM,cAAe,KAC9D,AAAI,CAAC,KAAK,IAAI,QAAQ,UAAY,CAAC,KAAK,MAAM,UAC5C,EAAU,IAEV,GAAgB,KAAK,SAAS,cAC1B,EAAY,EAAQ,IAAM,KAC9B,AAAI,KAAK,IAAI,QAAQ,UACnB,KAAK,SAAS,iBAAiB,GAEjC,EAAU,EAAc,WAIhC,AAAI,GACF,KAAK,YACD,EAAY,EAAQ,EAAS,EAAe,EAAO,GAGzD,AAAI,KAAK,MAAM,WACb,KAAK,MAAM,cAAc,QAAQ,KAAK,CACpC,KAAM,EACN,WAAY,KAAK,MAAM,SAAW,EAClC,mBAAoB,KAAK,MAAM,SAC/B,aAAc,KAAK,MAAM,WAAa,EACtC,qBAAsB,KAAK,MAAM,WACjC,YAAa,OAAO,KAAK,GAAQ,IAC7B,GAAO,EAAO,IAAQ,KAAO,EAAO,GAAK,MAAQ,MACrD,aAAc,EAAQ,IAAI,GAAQ,EAAK,OACvC,aAAc,EAAc,OAC5B,UAAW,EAAc,YAGrB,MAAM,QAAQ,GAAO,EAAU,EAAQ,GAQzC,2BAA2B,GACjC,KAAM,GAAQ,EAAQ,IAAI,GAAU,KAAK,KAAK,KAAK,MAAM,KACzD,MAAO,GAaD,sBACJ,EAAoB,EACpB,GACF,KAAM,GAAa,GAAY,GAC/B,GAAI,GAAc,MAChB,KAAM,GAAyB,EAAW,cAAgB,GACpD,EAA2B,EAAW,eAAiB,GAI7D,GAAI,GACJ,AAAI,EAAW,cACb,CAAK,EACD,MAAM,QAAQ,GACd,IAAM,0DAEV,EAAqB,OAAO,KAAK,GAAQ,IAAI,AAAC,GAAQ,EAAO,KAE7D,EAAqB,EAAa,IAAI,AAAC,GAAc,EAAO,IAG9D,KAAM,GACF,EAAQ,OAAO,CAAC,EAAG,IAAM,EAAc,IAE3C,MAAO,GAAmB,OAAO,GAInC,MAAO,MAQT,WACI,EAAoB,EAAiB,EACrC,GACF,GAAI,GAAU,KACZ,KAAM,IAAI,OAAM,iDAElB,EAAQ,GAAS,UACjB,EAAU,GAAW,KAAK,QAC1B,GAAI,GAAc,EAClB,AAAI,IAAU,UAAY,AAAK,GAAS,EAAO,KAC7C,GAAe,EAAoB,IAAI,GAAK,AAAK,GAAa,KAEhE,KAAM,GAAS,EAAQ,MAAM,EAAa,EAAO,GAC3C,EAAI,GAAI,IAAO,EAAO,EAAO,EAAQ,KAAK,gBAIhD,GAHA,KAAK,OAAO,EAAG,GAGX,IAAU,UACZ,KAAM,GAAO,KAAK,MAAM,WAAW,IAAI,GACjC,EAAW,GAAqB,GACtC,KAAK,MAAM,UAAY,EAAW,EAAK,MACvC,EAAK,MAAQ,EAEf,MAAO,GAQT,qBACI,EAAgB,EAAiB,EACjC,GACF,EAAQ,GAAS,UACjB,KAAM,GAAI,GAAI,IAAO,EAAO,EAAO,EAAQ,KAAK,gBAChD,YAAK,OAAO,EAAG,GACR,EAGT,aACI,EAAsB,EAAY,GAAM,EACxC,GACF,EAAO,GAAQ,KAAK,iBAAiB,WACrC,AAAI,GAAS,MAAQ,IAAU,EAAa,OAC1C,GAAe,EAAa,KAAK,IAEnC,KAAM,GAAI,GAAI,IAAS,EAAc,EAAW,EAAM,KAAK,gBAC3D,GAAI,KAAK,MAAM,oBAAoB,EAAE,OAAS,KAC5C,KAAM,IAAI,OAAM,sBAAsB,EAAE,+BAE1C,YAAK,MAAM,oBAAoB,EAAE,MAAQ,EACzC,KAAK,OAAO,EAAG,KAAK,SACb,EAGT,OAAO,EAAW,GAChB,KAAM,GAAW,KAAK,MAAM,WAAW,IAAI,EAAE,QACzC,KAAK,MAAM,WAAW,IAAI,EAAE,QAAQ,SACpC,EAKJ,GAJA,KAAK,MAAM,aACX,AAAI,EAAE,QAAU,UACd,KAAK,MAAM,mBAET,IAAa,GACf,KAAK,MAAM,iBAIX,GAAI,GAAQ,EACZ,AAAI,EAAE,QAAU,aAAe,EAAE,QAAU,UACzC,GAAQ,EAAE,KAAO,AAAK,GAAgB,EAAE,QAE1C,KAAK,MAAM,WAAW,IAAI,EAAE,OAAQ,CAClC,QAAS,GAAW,KAAK,QACzB,MAAO,EAAE,MACT,MAAO,EAAE,MACT,QACA,SAAU,IAEZ,KAAK,MAAM,UAAY,EAEzB,KAAK,MAAM,WAAW,IAAI,EAAE,QAAQ,WACpC,AAAM,YAAa,KACjB,KAAK,MAAM,GAIf,cAAc,GACZ,GAAI,CAAC,KAAK,MAAM,WAAW,IAAI,EAAE,QAC/B,OAGF,KAAK,MAAM,aACX,AAAI,EAAE,QAAU,UACd,KAAK,MAAM,mBAEb,KAAM,GAAO,KAAK,MAAM,WAAW,IAAI,EAAE,QACnC,EAAW,EAAK,SACtB,AAAI,GAAY,EAGd,CAAI,EAAE,QAAU,aACd,MAAK,MAAM,UAAY,EAAK,OAE9B,KAAK,MAAM,iBACX,EAAK,QAAQ,YAAY,EAAE,QAC3B,KAAK,MAAM,WAAW,OAAO,EAAE,SAE/B,KAAK,MAAM,WAAW,IAAI,EAAE,QAAQ,WAOxC,mBACE,SAAW,KAAW,MAAK,MAAM,qBAC/B,KAAM,GAAI,KAAK,MAAM,oBAAoB,GACzC,KAAK,gBAAgB,IAIzB,gBAAgB,GACd,KAAK,cAAc,GACnB,AAAI,KAAK,MAAM,oBAAoB,EAAE,OAAS,MAC5C,MAAO,MAAK,MAAM,oBAAoB,EAAE,MAI5C,SACE,KAAM,GAAO,KAAK,QAAQ,SAC1B,SAAK,WAAa,KAAK,MAAM,WAC7B,EAAK,eAAiB,KAAK,MAAM,eACjC,EAAK,SAAW,KAAK,MAAM,SAC3B,AAAI,KAAK,MAAM,iBAAmB,GAChC,GAAK,WAAa,GAClB,AAAI,EAAK,SAAW,MAClB,GAAK,QAAU,IAEjB,EAAK,QAAQ,KACT,0EAGC,OAGH,SAAQ,GAEZ,KAAK,MAAM,UAAY,GAEvB,KAAM,GAAa,KAAK,MAAM,SACxB,EAAkB,KAAK,MAAM,WAEnC,KAAK,MAAM,cAAc,QAAU,GACnC,KAAK,MAAM,cAAc,OAAS,KAAM,KAExC,KAAK,MAAM,UAAY,GAEvB,KAAK,MAAM,cAAc,UAAY,KAAK,IACtC,GAAG,KAAK,MAAM,cAAc,QAAQ,IAAI,GAAK,EAAE,qBACnD,KAAK,MAAM,cAAc,SAAW,KAAK,MAAM,SAAW,EAC1D,KAAK,MAAM,cAAc,WACrB,KAAK,MAAM,WAAa,EAC5B,SAAW,KAAU,MAAK,MAAM,cAAc,QAC5C,EAAO,aAAe,KAAM,GAAO,aACnC,EAAO,UAAY,KAAM,GAAO,UAElC,MAAO,MAAK,MAAM,cAGpB,WACE,MAAO,MAAK,MAAM,cAAgB,GAAK,KAAK,MAAM,cAAgB,EAG5D,YACJ,EAAoB,EAAwB,EAC5C,EAAyB,EAAiB,GAC5C,KAAM,GACF,CAAC,GAAI,KAAK,MAAM,iBAAkB,aAAY,SAAQ,UAAS,SAE7D,EAAa,GAAY,GAC/B,AAAI,GAAc,MAChB,GAAgB,EAAW,UAE7B,AAAI,GAAiB,MACnB,GAAS,SAAW,AAAC,GAGnB,GAAM,EAAI,IAAI,CAAC,EAAI,KACjB,GAAI,GAAM,MACR,KAAM,GAAS,EAAQ,GACjB,EAAO,AAAK,GAAoB,EAAO,KAAM,EAAO,OAC1D,MAAO,MAAK,WAAW,EAAM,EAAO,MAAO,EAAO,OAEpD,MAAO,KAIF,EAAc,EAAI,OAAS,EAAI,EAAM,EAAI,GAAI,EAAO,KAG/D,KAAK,MAAM,WAAW,KAAK,GAG7B,KAAuB,GACrB,SAAO,KAAO,GACP,EAGD,YACN,AAAI,KAAK,MAAM,gBAAkB,GAC/B,MAAK,MAAM,WAAa,IAE1B,KAAK,MAAM,gBAGL,UACN,KAAK,MAAM,gBAOb,WAAW,GACT,KAAM,GAAwB,CAC5B,MAAO,GACP,KAAM,gBACN,GAAI,KAAK,MAAM,eAEjB,AAAI,GACF,GAAU,KAAO,GAEnB,KAAK,MAAM,WAAW,KAAK,GAC3B,KAAK,MAAM,YAAc,EAO3B,SAAS,GACP,KAAM,GAAyB,GAAsB,GAC/C,EACF,GAAI,KAAI,EAAuB,IAAI,GAAK,EAAE,KAG9C,OAAS,GAAI,EAAG,EAAI,KAAK,MAAM,YAAY,MAAM,OAAQ,KACvD,KAAM,GAAS,KAAK,MAAM,YAAY,MAAM,GAC5C,AAAI,CAAC,EAAO,MAAQ,CAAC,EAA0B,IAAI,EAAO,KACxD,EAAO,UAIX,KAAM,GAAW,KAAK,MAAM,WAAW,MACvC,KAAK,MAAM,YAAc,KAAK,MAAM,WAAW,SAAW,EACtD,KACA,KAAK,MAAM,WAAW,KAAK,MAAM,WAAW,OAAS,GAGzD,EAAuB,QAAQ,IAG7B,AAAI,CAAC,EAAO,MAAQ,EAAO,UAAY,EAAS,IAC9C,KAAK,MAAM,KAWjB,UACI,EAAY,EAAc,EAC1B,EAAmB,IAGrB,GAFA,AAAK,EACD,EAAG,OAAS,EAAG,IAAM,6CACrB,GAAM,MAAQ,EAAG,QAAU,UAC7B,KAAM,IAAI,OAAM,0CAA0C,EAAG,UAG/D,KAAM,GAAI,KAAK,UACX,IAAM,KAAK,YAAa,IAAM,KAAK,UACnC,IAAM,KAAK,KAAK,UAAW,IAE/B,AAAK,EACD,YAAa,IACb,IAAM,kDAEV,KAAM,GAAe,GAAqB,KAAK,MAAM,WAAY,EAAI,GACrE,GAAI,CAAC,GAAoB,EAAa,SAAW,GAAK,EAAG,OAAS,EAChE,KAAM,IAAI,OACN,uIAKN,MAAO,MAAK,KAAK,WAAY,KAC3B,KAAM,GAAuD,GAC7D,EAAuB,EAAE,IAAO,GAAM,KAAQ,GAAK,EAAE,OAAS,EAG9D,GACI,EAAwB,EAExB,GAAK,KAAK,KAAK,GAEf,IACJ,KAAM,GAAQ,EAAG,IAAI,GAAK,EAAuB,EAAE,KAEnD,MAAI,MAAK,MAAM,gBAAkB,GAG/B,MAAK,MAAM,WAAW,QAAQ,IAC5B,SAAW,KAAU,GAAK,MACxB,EAAO,YAGX,KAAK,MAAM,WAAa,MAEnB,CAAC,MAAO,EAAG,WAItB,WAA6B,GAE3B,MAAK,GACD,AAAK,GAAW,GAChB,IAAM,qDACH,IAAI,KACT,AAAK,EACD,EAAO,MAAM,GAAK,YAAa,KAC/B,IAAM,oEAGV,GAAI,GAIJ,KAAM,GAA2B,GACjC,SAAO,QAAQ,CAAC,EAAO,KACrB,EAAS,GAAK,IAET,KAAK,cACR,CAAC,EAAG,IACF,GAAM,EAAM,GAAG,EAAQ,GACvB,AAAK,EACD,EAAI,gBAAiB,IACrB,IAAM,8FAEV,AAAK,EACD,AAAK,GAAW,EAAI,UACpB,IAAM,oGAEH,EAAI,OAEb,EACA,CAAC,EAAO,KACN,KAAM,GAAU,EAAI,SAAS,EAAI,GAC3B,EACF,MAAM,QAAQ,GAAW,EAAU,CAAC,GACxC,AAAK,EACD,EAAM,SAAW,EAAO,OACxB,IAAM,uKAGV,AAAK,EACD,EAAM,MAAM,GAAK,YAAa,KAC9B,IAAM,wIAGV,KAAM,GAAyC,GAC/C,SAAM,QAAQ,CAAC,EAAM,KACnB,EAAQ,GAAK,IAAM,IAEd,KAKjB,SAAS,GAEP,KAAM,GAAO,KAAK,MAAM,WAAW,IAAI,GACvC,MAAO,GAAK,QAAQ,SAAS,GAE/B,KAAK,GAEH,KAAM,GAAO,KAAK,MAAM,WAAW,IAAI,GACvC,MAAO,GAAK,QAAQ,KAAK,QAGrB,MAAK,GACT,KAAM,GAAQ,KACR,EAAa,KAAM,MAAK,QAAQ,KAAK,GAC3C,SAAW,OAAS,KAAQ,EACrB,EASD,MAAwB,GAC9B,MAAI,MAAK,MAAM,aAAe,MAC5B,GAAO,QAAU,KAAK,MAAM,YAAY,GACxC,KAAK,MAAM,YAAY,MAAM,KAAK,IAG7B,KAGL,uBACF,MAAO,MAAK,MAAM,oBAOpB,QAEE,KAAK,uBAEL,KAAK,MAAM,UACX,KAAK,IAAI,QACT,KAAK,MAAQ,GAAI,MAEjB,SAAW,KAAe,MAAK,SAC7B,KAAK,yBAAyB,GAC9B,KAAK,SAAS,GAAa,UAC3B,MAAO,MAAK,SAAS,GAEvB,KAAK,YAAc,KACnB,KAAK,gBAAkB,KACvB,KAAK,mBAAqB,MA3sBb,GAAA,aAAe,EAKf,GAAA,eAAiB,EA0sBlC,YAAc,GACZ,KAAM,GAAS,GAAmB,GAAc,GAAQ,WACxD,MAAO,GAAO,WAAW,EAAQ,EAAO,WAG1C,cACE,KAAM,GAAK,KACX,GAAI,EAAG,WAAa,MAClB,KAAM,GAAc,GAAI,IAAY,GACpC,EAAG,UAAY,GAAI,IAAO,GAE5B,UAAqB,EAAG,UAAU,KAIlC,GAAiB,IAAM,EAAG,WACnB,EAAG,UAGL,KAAM,GAAS,KAQhB,YAAc,EAAW,GAE7B,KAAM,GAAS,CAAC,IAAG,KACnB,MAAO,GAAO,cAAc,CAAC,EAAS,KACpC,KAAM,GAAM,EAAQ,IAAI,EAAG,GAC3B,SAAK,CAAC,EAAG,IACF,GACN,EAAgC,KAAqB,IChrC1D,sDAkBA,cACE,MAAO,OAAO,YAAc,aAAe,WAAa,KAGpD,cACJ,GAAI,MAEF,KAAM,GAAI,UAAU,WAAa,UAAU,QAAW,OAAe,MAErE,MAAO,2TACK,KAAK,IAEb,0kDACK,KAAK,EAAE,OAAO,EAAG,IAE5B,MAAO,GAGH,cACJ,MAAQ,OAAO,SAAW,aAAe,OAAO,UAAY,MAEvD,MAAO,oBAAsB,YCvCpC,AAmBA,KAAM,IAAM,KAOZ,GAAI,aAAa,QAAS,IAAM,GAAO,IACrC,AAAI,GACF,QAAQ,KACJ,iJAOR,GAAI,aAAa,aAAc,IAAM,AAAY,MAGjD,GAAI,aACA,UACA,IAAO,MAAO,UAAY,aACrB,MAAO,SAAQ,UAAa,aAC5B,MAAO,SAAQ,SAAS,MAAS,aAG1C,GAAI,aACA,YACA,IAAM,MAAO,YAAc,aAAe,WAAa,MACnD,UAAU,WAAa,MAAQ,SAAS,KAAK,UAAU,YACvD,aAAa,KAAK,UAAU,SAMpC,GAAI,aAAa,OAAQ,IAAM,IAM/B,GAAI,aACA,qCAAsC,IAAM,GAAI,QAAQ,UAG5D,GAAI,aAAa,+BAAgC,IAAM,IAGvD,GAAI,aAAa,UAAW,IAAM,ICrElC,AAuBM,YAAqB,EAAiB,GAC1C,GAAI,GAAwB,EAE5B,GAAI,GAAa,GACf,MAAO,KAAU,SAAW,GAAK,CAAC,EAAI,QAExC,GAAI,CAAC,MAAM,QAAQ,GACjB,MAAO,GAET,KAAM,GAAkB,GAExB,KAAO,MAAM,QAAQ,IACd,GAAa,IAAc,IAAU,UAC1C,EAAM,KAAK,EAAU,QACrB,EAAY,EAAU,GAExB,MAAI,OAAM,QAAQ,IACd,KAAM,QAAQ,uCAChB,GAA2B,EAAK,EAAO,IAGlC,EAGT,YACI,EAAiB,EAAiB,GAEpC,GADA,EAAU,GAAW,GACjB,CAAE,MAAM,QAAQ,IAAS,CAAC,GAAa,IACzC,EACI,EAAM,SAAW,EACjB,IAAM,eAAe,EAAQ,KAAK,+DACU,EAAM,eACtD,OAEF,EACI,EAAM,OAAS,EACf,IAAM,eAAe,EAAQ,KAAK,oDACR,EAAI,mBAClC,EACI,EAAI,SAAW,EAAM,GACrB,IAAM,eAAe,EAAQ,KAAK,sBAAsB,EAAM,wBACrC,EAAI,mBACjC,KAAM,GAAW,EAAM,MAAM,GAC7B,OAAS,GAAI,EAAG,EAAI,EAAI,OAAQ,EAAE,EAChC,GAA2B,EAAI,GAAI,EAAU,EAAQ,OAAO,IAIhE,YACI,EAAmC,EAAuB,EAC1D,GACF,GAAI,GAAiB,KACnB,OAEF,GAAI,IAAkB,WAAa,IAAkB,GACjD,IAAkB,WAAa,IAAgB,SACjD,KAAM,IAAI,OACN,aAAa,iBAAuB,cAC9B,qBAAiC,YAIzC,WACF,EAAiB,EAAiB,EAClC,EAAmC,WACrC,GAAI,YAAa,IACf,UAAY,EAAc,EAAE,MAAO,EAAS,GACrC,EAET,GAAI,GAAgB,GAAW,GAS/B,GANA,AAAI,IAAkB,UAClB,CAAC,OAAQ,QAAS,WAAW,QAAQ,IAAiB,GACxD,GAAgB,GAElB,GAAY,EAAc,EAAe,EAAS,GAE7C,GAAK,MACL,CAAC,GAAa,IAAM,CAAC,MAAM,QAAQ,IAAM,MAAO,IAAM,UACtD,MAAO,IAAM,WAAa,MAAO,IAAM,UAC1C,KAAM,GAAO,GAAK,KAAO,OAAU,EAAS,YAAY,KACxD,KAAM,IAAI,OACN,aAAa,iBAAuB,+CACF,MAExC,KAAM,GAAgB,GAAW,EAAG,GACpC,AAAI,CAAC,GAAa,IAAM,CAAC,MAAM,QAAQ,IACrC,GAAI,CAAC,IAEP,KAAM,GAAiB,GACjB,EAAS,IAAkB,SAC7B,GAAa,EAAG,GAChB,GAAQ,EAAe,GAAI,GAC/B,MAAO,GAAO,WAAW,EAAQ,EAAe,GAG5C,YACF,EAA0B,EAAiB,EAC3C,EAAmC,WACrC,GAAI,CAAC,MAAM,QAAQ,GACjB,KAAM,IAAI,OACN,YAAY,eAAqB,gDAGvC,KAAM,GAAU,EAChB,MAAO,GAAQ,IACX,CAAC,EAAG,IAAM,EAAgB,EAAG,GAAG,KAAW,KAAM,GACjD,GCnIN,AAuBM,WAAiC,GACrC,KAAM,GAAO,OAAO,KAAK,GACzB,GAAI,EAAK,SAAW,EAClB,KAAM,IAAI,OACN,yGAEG,EAAK,gBAGd,GAAI,GAAS,EAAK,GAClB,KAAM,GAAK,EAAE,GAGb,AAAI,EAAO,SAAS,MAClB,GAAS,EAAO,UAAU,EAAG,EAAO,OAAS,IAI/C,KAAM,GAAK,IAAI,KACb,EAAO,WAAW,GAClB,IACE,KAAM,GAAS,EAAG,GAAG,GACrB,MAAI,aAAkB,UACpB,QAAQ,MAAM,2CAEhB,EAAO,SAAS,GACT,QACA,GACP,QAAO,SAAS,MACV,IAGV,cAAO,eAAe,EAAI,OAAQ,CAAC,MAAO,EAAQ,aAAc,KAGzD,EC1DT,AAqCA,YAAgC,GAC9B,KAAM,GAAK,EAAgB,EAAG,IAAK,OAE7B,EAAoB,CAAC,EAAG,GAE9B,MAAO,GAAO,cAAc,CAAC,EAAS,IACpC,GAAK,CAAC,IACF,EAAG,QAAU,YACR,EAAQ,WAAW,GAGrB,EAAQ,IAAI,IAClB,EAAgC,KAAiB,IAG/C,KAAM,IAAM,EAAG,CAAC,UCpDvB,AAoCA,YAAiC,GAC/B,KAAM,GAAK,EAAgB,EAAG,IAAK,QAC7B,EAAqB,CAAC,EAAG,GAE/B,MAAO,GAAO,cAAc,CAAC,EAAS,KACpC,KAAM,GAAM,EAAQ,KAAK,GACzB,SAAK,CAAC,IACC,GACN,EAAgC,KAAiB,IAE/C,KAAM,IAAO,EAAG,CAAC,WC9CxB,AAsCA,YAAkC,GAChC,KAAM,GAAK,EAAgB,EAAG,IAAK,SAC7B,EAAsB,CAAC,EAAG,GAEhC,MAAO,GAAO,cAAc,CAAC,EAAS,KACpC,KAAM,GAAM,EAAQ,MAAM,GAC1B,SAAK,CAAC,IACC,GACN,EAAgC,KAAiB,IAE/C,KAAM,IAAQ,EAAG,CAAC,YChDzB,AAgDA,YAAgC,EAAsB,GACpD,GAAI,GAAK,EAAgB,EAAG,IAAK,OAC7B,EAAK,EAAgB,EAAG,IAAK,OACjC,CAAC,EAAI,GAAM,EAAe,EAAI,GAE9B,KAAM,GAA+B,CAAC,EAAS,KAC7C,KAAM,GAAM,EAAQ,IAAI,EAAI,GAC5B,SAAK,CAAC,EAAI,IACH,GAGH,EAAoB,CAAC,EAAG,EAAI,EAAG,GAErC,MAAO,GAAO,cACH,EAAS,EAAgC,KACzC,IAGN,KAAM,GAAM,EAAG,CAAC,UClEvB,AAuCA,YAAiC,GAC/B,AAAK,EACD,MAAM,QAAQ,GACd,IAAM,8DACV,AAAK,EACD,EAAQ,QAAU,EAClB,IAAM,uDACC,EAAQ,UAEnB,KAAM,GACF,EAAQ,IAAI,CAAC,EAAG,IAAM,EAAgB,EAAG,UAAU,IAAK,SAEtD,EAAc,EAAS,GAC7B,EAAS,QAAQ,IACf,GAAI,EAAE,QAAU,EAAY,MAC1B,KAAM,IAAI,OACN,8DAIR,EAAS,QAAQ,IACf,GAAI,CAAC,AAAK,GAAY,EAAE,MAAO,EAAY,OACzC,KAAM,IAAI,OACN,8DAIR,KAAM,GAA+B,CAAC,EAAS,KAC7C,KAAM,GAAM,EAAQ,KAAK,GACzB,SAAK,GACE,GAGH,EAAqB,EAE3B,MAAO,GAAO,cACH,EAAS,EAAgC,KAAiB,IAIhE,KAAM,IAAO,EAAG,CAAC,WC/ExB,AAuBM,YAA+B,EAAgB,GACnD,OAAS,GAAI,EAAG,EAAI,EAAK,OAAQ,EAAE,EACjC,GAAI,EAAK,EAAK,OAAS,EAAI,KAAO,EAAO,EAAI,EAC3C,MAAO,GAGX,MAAO,GAGH,YACF,EAAqB,EAAqB,GAC5C,KAAM,GAAO,EAAU,OAAS,EAAU,OACpC,EAAM,GACZ,GAAI,GAAS,EACT,EAAY,EACd,OAAS,GAAM,EAAG,EAAM,EAAM,IAC9B,AAAI,EAAK,QAAQ,KAAS,GACxB,EAAI,KAAK,EAAU,MAEnB,EAAI,KAAK,EAAU,MAGvB,MAAO,GAGH,YACF,EAAkB,GACpB,KAAM,GAAW,GACX,EAAO,EAAO,OACpB,OAAS,GAAM,EAAG,EAAM,EAAM,IAC5B,AAAI,EAAK,QAAQ,KAAS,IACxB,EAAS,KAAK,EAAO,IAGzB,KAAM,GAAc,EAAK,IAAI,GAAO,EAAO,IAC3C,MAAO,CAAC,EAAU,GAGd,YACF,EAAiB,GACnB,KAAM,GAAiB,EAAK,IAAI,GAAK,GACrC,MAAO,IAAiB,EAAO,EAAgB,GAG3C,YACF,EAAa,EAAgB,GAC/B,AAAK,EACD,GAAqB,EAAM,GAC3B,IAAM,GAAG,qDACO,cAAiB,YAQjC,YAA6B,EAAgB,GAEjD,GAAI,GAAqB,EAAM,GAC7B,MAAO,MAET,KAAM,GAAmB,GACzB,OAAS,GAAI,EAAG,EAAI,EAAM,EAAE,EAC1B,AAAI,EAAK,QAAQ,KAAO,IACtB,EAAO,KAAK,GAGhB,SAAK,QAAQ,GAAQ,EAAO,KAAK,IAC1B,EAIH,YAAiC,GACrC,MAAO,GAAK,IAAI,CAAC,EAAM,IAAM,CAAC,EAAG,IAC5B,KAAK,CAAC,EAAG,IAAM,EAAE,GAAK,EAAE,IACxB,IAAI,GAAK,EAAE,IAGZ,YAA2B,EAAiB,GAChD,KAAM,GAAgB,GACtB,OAAS,GAAI,EAAO,EAAS,EAAI,EAAM,EAAE,EACvC,EAAI,KAAK,GAEX,MAAO,GC3GT,AAsDA,YACI,EAAsB,GACxB,KAAM,GAAK,EAAgB,EAAG,IAAK,UAAW,MAC9C,EAAQ,AAAK,GAAuB,EAAO,EAAG,MAC9C,AAAK,EACD,EAAG,OAAS,AAAK,GAAc,GAC/B,IAAM,kEAEV,KAAM,GAAwB,CAAC,EAAG,GAC5B,EAAsB,CAAC,SACvB,EACF,CAAC,EAAwB,IACvB,GAAK,CAAC,IACC,EAAQ,QAAQ,EAAI,IAEjC,MAAO,GAAO,cACV,EAAS,EAAgC,KAAiB,GAC1D,GAEC,KAAM,GAAU,EAAG,CAAC,cCzE3B,AA8CA,YAAsC,EAAiB,GACrD,KAAM,GAAK,EAAgB,EAAG,IAAK,aAgBnC,GAdA,AAAI,GAAQ,MACV,GAAO,EAAG,MAAM,IAAI,CAAC,EAAG,IAAM,GAAG,WAEnC,AAAK,EACD,EAAG,OAAS,EAAK,OACjB,IAAM,qCAAqC,EAAG,kCACb,MACrC,EAAK,QAAQ,IACX,AAAK,EACD,GAAQ,GAAK,EAAO,EAAG,KACvB,IAAM,+CAA+C,EAAG,KAAO,aAC/C,OAGlB,EAAG,MAAQ,EACb,MAAO,GAAG,QAGZ,KAAM,GAA0B,CAAC,EAAG,GAC9B,EAAwB,CAAC,QAE/B,MAAO,GAAO,cACV,GAAW,EAAQ,UAAU,EAAI,GAAO,EACxC,KAAqB,GAAW,GAG/B,KAAM,GAAY,EAAG,CAAC,gBC3E7B,AA2DA,YACI,EAAsB,EAAwB,KAAM,EAAW,IACjE,GAAI,GAAK,EAAgB,EAAG,IAAK,MAAO,QAExC,KAAM,GAA+B,AAAC,IACpC,KAAM,GAAW,EAAe,EAAM,EAAG,OACzC,GAAI,GAAO,EACX,KAAM,GAAe,GAAmB,EAAM,EAAG,MACjD,AAAI,GAAgB,MAClB,GAAK,EAAU,EAAI,GACnB,EAAO,GAAiB,EAAK,OAAQ,EAAG,OAE1C,KAAM,GAAM,EAAQ,IAAI,EAAI,GAC5B,GAAI,GACF,KAAM,GAAW,GAAqB,EAAI,MAAO,GACjD,MAAO,GAAQ,EAAK,GAEtB,MAAO,IAGH,EAAoB,CAAC,EAAG,GACxB,EAAkB,CAAC,OAAM,YAE/B,MAAO,GAAO,cACH,EAAS,EAAgC,KAAiB,GAC1D,GAGN,KAAM,IAAM,EAAG,CAAC,UCvFvB,AA2DA,YACI,EAAsB,EAAwB,KAAM,EAAW,IACjE,GAAI,GAAK,EAAgB,EAAG,IAAK,MAAO,QAExC,KAAM,GAA+B,AAAC,IACpC,KAAM,GAAW,EAAe,EAAM,EAAG,OACzC,GAAI,GAAO,EACX,KAAM,GAAe,GAAmB,EAAM,EAAG,MACjD,AAAI,GAAgB,MAClB,GAAK,EAAU,EAAI,GACnB,EAAO,GAAiB,EAAK,OAAQ,EAAG,OAE1C,KAAM,GAAM,EAAQ,IAAI,EAAI,GAC5B,GAAI,GACF,KAAM,GAAW,GAAqB,EAAI,MAAO,GACjD,MAAO,GAAQ,EAAK,GAEtB,MAAO,IAGH,EAAoB,CAAC,EAAG,GACxB,EAAkB,CAAC,OAAM,YAE/B,MAAO,GAAO,cACH,EAAS,EAAgC,KAAiB,GAC1D,GAIN,KAAM,IAAM,EAAG,CAAC,UCxFvB,AAqDA,YAAmC,EAAsB,EAAO,GAC9D,GAAI,GAAK,EAAgB,EAAG,IAAK,UAEjC,KAAM,GAA+B,CAAC,EAAS,KAC7C,EAAK,CAAC,IAEN,GAAI,GAAO,AAAK,EAAe,EAAM,EAAG,OACxC,KAAM,GAAe,AAAU,GAAmB,EAAM,EAAG,MAC3D,MAAI,IAAgB,MAClB,GAAK,EAAU,EAAI,GACnB,EAAO,AAAU,GAAiB,EAAK,OAAQ,EAAG,OAE7C,EAAQ,OAAO,EAAI,EAAK,KAG3B,EAAuB,CAAC,EAAG,GAC3B,EAAqB,CAAC,QAE5B,MAAO,GAAO,cACH,EAAS,EAAgC,KAAiB,GAC1D,GAGN,KAAM,IAAS,EAAG,CAAC,aC5E1B,AAsDA,YAAmC,EAAsB,EAAO,GAC9D,GAAI,GAAK,EAAgB,EAAG,IAAK,UAEjC,KAAM,GAA+B,CAAC,EAAS,KAC7C,EAAK,CAAC,IAEN,AAAI,GAAQ,MACV,GAAO,GAET,GAAI,GAAO,AAAK,EAAe,EAAM,EAAG,OACxC,KAAM,GAAe,AAAU,GAAmB,EAAM,EAAG,MAC3D,MAAI,IAAgB,MAClB,GAAK,EAAU,EAAI,GACnB,EAAO,AAAU,GAAiB,EAAK,OAAQ,EAAG,OAE7C,EAAQ,OAAO,EAAI,EAAK,KAG3B,EAAuB,CAAC,EAAG,GAC3B,EAAqB,CAAC,QAE5B,MAAO,GAAO,cACH,EAAS,EAAgC,KAAiB,GAC1D,GAGN,KAAM,IAAS,EAAG,CAAC,aChF1B,AAqCA,YAAiC,GAC/B,KAAM,GAAK,EAAgB,EAAG,IAAK,QAC7B,EAAqB,CAAC,EAAG,GAE/B,MAAO,GAAO,cAAc,CAAC,EAAS,KACpC,KAAM,GAAM,EAAQ,KAAK,GACzB,SAAK,CAAC,IACC,GACN,EAAgC,KAAiB,IAE/C,KAAM,IAAO,EAAG,CAAC,WC/CxB,AAsCA,YAAkC,GAChC,KAAM,GAAK,EAAgB,EAAG,IAAK,SAE7B,EAAsB,CAAC,EAAG,GAEhC,MAAO,GAAO,cAAc,CAAC,EAAS,KACpC,KAAM,GAAM,EAAQ,MAAM,GAC1B,SAAK,CAAC,IACC,GACN,EAAgC,KAAiB,IAE/C,KAAM,IAAQ,EAAG,CAAC,YCjDzB,AAqCA,YAAiC,GAC/B,KAAM,GAAK,EAAgB,EAAG,IAAK,QAE7B,EAAqB,CAAC,EAAG,GAE/B,MAAO,GAAO,cAAc,CAAC,EAAS,KACpC,KAAM,GAAM,EAAQ,KAAK,GACzB,SAAK,CAAC,IACC,GACN,EAAgC,KAAiB,IAE/C,KAAM,IAAO,EAAG,CAAC,WChDxB,AA2CA,YACI,EAAsB,GACxB,GAAI,GAAK,EAAgB,EAAG,IAAK,SAC7B,EAAK,EAAgB,EAAG,IAAK,SACjC,CAAC,EAAI,GAAM,EAAe,EAAI,GAE9B,KAAM,GAA+B,CAAC,EAAS,KAC7C,KAAM,GAAM,EAAQ,MAAM,EAAI,GAC9B,SAAK,CAAC,EAAI,IACH,GAEH,EAAsB,CAAC,EAAG,EAAI,EAAG,GAEvC,MAAO,GAAO,cACH,EAAS,EAAgC,KACzC,IAGN,KAAM,IAAQ,EAAG,CAAC,YC7DzB,AAsCA,YAAkC,GAChC,KAAM,GAAK,EAAgB,EAAG,IAAK,SAE7B,EAAsB,CAAC,EAAG,GAEhC,MAAO,GAAO,cAAc,CAAC,EAAS,KACpC,KAAM,GAAM,EAAQ,MAAM,GAC1B,SAAK,CAAC,IACC,GACN,EAAgC,KAAiB,IAE/C,KAAM,IAAQ,EAAG,CAAC,YCjDzB,AAsCA,YAAiC,EAAiB,GAChD,KAAM,GAAK,EAAgB,EAAG,IAAK,QAGnC,GAAI,CAAC,AAAK,GAAa,GACrB,KAAM,IAAI,OAAM,mCAAmC,KAErD,GAAI,IAAU,UAAY,EAAG,QAAU,UACnC,IAAU,UAAY,EAAG,QAAU,SACrC,KAAM,IAAI,OAAM,yCAGlB,KAAM,GAAqB,CAAC,EAAG,GACzB,EAAmB,CAAC,SAE1B,MAAO,GAAO,cACV,GAAW,EAAQ,KAAK,EAAI,GAAQ,EACpC,KAAiB,GAAM,GAGtB,KAAM,GAAO,EAAG,CAAC,WC1DxB,AAmGM,YACF,EACA,EAAuC,EACvC,EAA4B,EAAqB,OACjD,GAKF,KAAM,GAAgB,EAAW,GAC3B,EACF,CAAC,GAAG,EAAa,GACf,EAAc,GAAwB,GAE5C,MAAO,IACH,EAAY,EAAc,EAAS,EAAW,EAC9C,KAAyB,KAAsB,GAG/C,YACF,EACA,EAAqC,EACrC,EAAoC,EACpC,EACA,EAA6C,gBAC/C,KAAM,CAAC,EAAc,GAAe,GAAgB,GAEpD,GAAI,GACJ,GAAI,IAAe,eACjB,EAAc,CAAC,EAAc,EAAa,EAAQ,GAAI,EAAQ,YACrD,IAAe,gBACxB,EAAc,CAAC,EAAc,EAAa,EAAQ,GAAI,EAAQ,QAE9D,MAAM,IAAI,OAAM,sBAAsB,KAGxC,MAAO,IACH,EAAS,EAAa,EAAS,EAAW,EAAK,EAAc,GAC7D,GAMA,YACF,EACA,EACA,EACA,EAA4C,EAC5C,EACA,EAA8B,SAChC,KAAM,CAAC,EAAa,EAAc,GAAe,GAAiB,GAElE,GAAI,GACA,EACJ,GAAI,IAAe,QACjB,EAAc,eACd,EACI,CAAC,EAAa,EAAc,EAAa,EAAQ,GAAI,EAAQ,YACxD,IAAe,QACxB,EAAc,gBACd,EACI,CAAC,EAAa,EAAc,EAAa,EAAQ,GAAI,EAAQ,QAEjE,MAAM,IAAI,OAAM,sBAAsB,KAGxC,MAAO,IACH,EAAS,EAAa,EAAS,EAAW,EAAK,GAAO,EACtD,GAOA,YACF,EACA,EACA,EAAkC,EAClC,EACA,EAAuC,EAAY,GACnD,EAA6C,gBAC/C,GAAI,CAAC,EAAW,EAAU,EAAS,GAAc,CAAC,GAAI,GAAI,GAAI,IAC9D,GAAI,IAAe,eACjB,CAAC,EAAW,EAAU,EAAS,GAAc,UACpC,IAAe,gBACxB,CAAC,EAAW,EAAY,EAAU,GAAW,MAE7C,MAAM,IAAI,OAAM,sBAAsB,KAGxC,KAAM,CAAC,EAAc,EAAY,CAAG,GAAkB,EAChD,CAAC,EAAc,GAAe,GAAgB,GAC9C,CAAC,EAAgB,GAAiB,GAAgB,GAElD,EACF,GAAuB,EAAc,GACnC,EACF,GAAuB,EAAa,GAClC,CAAC,UAAS,YAAW,YAAY,GACnC,EAAK,EAAU,EAAS,EAAc,EAAa,EACnD,EAAsB,EAAc,GAElC,EAAc,EAAY,EAAiB,EAAa,EAE9D,GAAI,GACJ,MAAI,KAAe,gBACjB,EAAW,CAAC,EAAW,EAAa,EAAW,GAC1C,AAAI,IAAe,gBACxB,GAAW,CAAC,EAAW,EAAW,EAAU,IAGvC,CACL,YACA,aACA,WACA,UACA,aACA,YACA,WACA,cACA,UACA,eACA,cACA,eACA,cACA,wBACA,uBACA,iBACA,gBACA,UACA,WACA,eA0CE,YACF,EACA,EACA,EACA,EAA4C,EAC5C,EAAY,GACZ,EAA6C,eAC7C,GACF,GAAI,CAAC,EAAW,EAAS,EAAU,EAAS,GACxC,CAAC,GAAI,GAAI,GAAI,GAAI,IACrB,GAAI,IAAe,eACjB,CAAC,EAAW,EAAS,EAAU,EAAS,GAAc,UAC7C,IAAe,gBACxB,CAAC,EAAW,EAAY,EAAS,EAAU,GAAW,MAEtD,MAAM,IAAI,OAAM,sBAAsB,KAGxC,KAAM,CAAC,EAAa,EAAc,EAAY,CAAG,GAC7C,EACE,CAAC,EAAa,EAAc,GAAe,GAAiB,GAC5D,CAAC,EAAe,EAAgB,GAClC,GAAiB,GAEf,EACF,GAAuB,EAAa,GAClC,EACF,GAAuB,EAAc,GACnC,EACF,GAAuB,EAAa,GAClC,CAAC,UAAS,YAAU,aAAW,aAAY,GAC7C,EAAK,EAAS,EAAU,EAAS,EAAa,EAAc,EAC5D,EAAsB,EAAuB,EAC7C,GAEE,GAAc,EAAY,EAAiB,EAAa,EAE9D,GAAI,IACJ,MAAI,KAAe,gBACjB,GAAW,CAAC,EAAW,GAAa,GAAU,GAAW,IACpD,AAAI,IAAe,gBACxB,IAAW,CAAC,EAAW,GAAU,GAAW,GAAU,KAGjD,CACL,YACA,aACA,UACA,WACA,UACA,aACA,YACA,aACA,YACA,eACA,UACA,cACA,eACA,cACA,cACA,eACA,cACA,uBACA,wBACA,uBACA,gBACA,iBACA,gBACA,UACA,YACA,eAIJ,YACI,EAA2B,EAAmB,EAC9C,EAAkB,GACpB,AAAI,GAAW,MACb,GAAU,GAAkB,EAAS,EAAW,IAElD,KAAM,GAAY,EAAQ,GACpB,EAAY,EAAQ,GAEpB,EAAa,GACd,GAAY,EAAY,EAAI,GAAW,EAAS,EAAG,GACxD,AAAK,EACD,AAAK,EAAM,GACX,IAAM,yBAAyB,uEAGnC,KAAM,GAAa,GACd,GAAY,EAAY,EAAI,GAAW,EAAS,EAAG,GACxD,MAAK,GACD,AAAK,EAAM,GACX,IAAM,4BAA4B,uEAG/B,CAAC,EAAY,GAGtB,YACI,EAA2C,EAC3C,EAAqB,EAAgB,EACrC,GACF,AAAI,GAAW,MACb,GAAU,GAAkB,EAAS,EAAW,IAElD,KAAM,GAAa,EAAQ,GACrB,EAAY,EAAQ,GACpB,EAAY,EAAQ,GAEpB,EAAe,GAChB,GAAa,EAAY,EAAI,GAAW,EAAS,EAAG,GACzD,AAAK,EACD,AAAK,EAAM,GACX,IAAM,2BAA2B,uEAGrC,KAAM,GAAa,GACd,GAAY,EAAY,EAAI,GAAW,EAAS,EAAG,GACxD,AAAK,EACD,AAAK,EAAM,GACX,IAAM,yBAAyB,uEAGnC,KAAM,GAAa,GACd,GAAY,EAAY,EAAI,GAAW,EAAS,EAAG,GACxD,MAAK,GACD,AAAK,EAAM,GACX,IAAM,4BAA4B,uEAG/B,CAAC,EAAc,EAAY,EAAY,GAG1C,YACF,EACA,EAAmB,EAAgB,EAAW,GAChD,KAAM,GAAqB,GAAuB,EAAW,GAC7D,MAAO,MAAK,MACP,GAAW,GAAM,GAAS,GAAK,EAAS,GAAsB,GAGrE,YAAyB,GACvB,MAAI,OAAO,IAAU,SACZ,CAAC,EAAO,EAAO,GAEpB,EAAM,SAAW,EACZ,CAAC,EAAM,GAAI,EAAM,GAAI,GAEvB,EAGT,YAA0B,GAExB,MAAO,OAAO,IAAU,SAAW,CAAC,EAAO,EAAO,GAAS,EAc7D,YAAgC,EAAoB,GAClD,MAAI,IAAY,EACP,EAGF,EAAc,GAAa,GAAM,GAAW,GAGrD,YACI,EAA4C,EAC5C,EAAiB,EAAsB,EACvC,EAAsB,EACtB,EACA,GAEF,GAAI,GACA,EACA,EAEJ,GAAI,MAAO,IAAQ,UACjB,KAAM,GAAW,IAAQ,EAAK,QAAU,SACxC,EAAU,CAAC,IAAK,EAAK,OAAQ,EAAK,KAAM,EAAK,MAAO,EAAK,KAAM,GAC/D,KAAM,GAAW,GACb,CAAC,EAAU,GAAU,EAAc,EAAc,EAAK,GAC1D,EAAY,EAAS,GACrB,EAAW,EAAS,WACX,IAAQ,QACjB,EAAY,KAAK,KAAK,EAAW,GACjC,EAAW,KAAK,KAAK,EAAU,GAC/B,KAAM,GACF,KAAK,IAAI,EAAI,GAAY,GAAK,EAAe,EAAe,GAC1D,EACF,KAAK,IAAI,EAAI,GAAW,GAAK,EAAc,EAAc,GACvD,EAAM,KAAK,MAAM,EAAiB,GAClC,EAAS,EAAiB,EAC1B,EAAO,KAAK,MAAM,EAAgB,GAClC,EAAQ,EAAgB,EAC9B,EAAU,CAAC,MAAK,SAAQ,OAAM,QAAO,KAAM,gBAClC,IAAQ,QACjB,EAAU,CAAC,IAAK,EAAG,OAAQ,EAAG,KAAM,EAAG,MAAO,EAAG,KAAM,SACvD,EAAY,KAAK,KAAM,GAAW,EAAe,GAAK,GACtD,EAAW,KAAK,KAAM,GAAU,EAAc,GAAK,WAC1C,MAAO,IAAQ,UACxB,KAAM,GAAM,IAAe,eAAiB,EAAI,GAAG,GAAK,EAAI,GAAG,GACzD,EAAS,IAAe,eAAiB,EAAI,GAAG,GAAK,EAAI,GAAG,GAC5D,EAAO,IAAe,eAAiB,EAAI,GAAG,GAAK,EAAI,GAAG,GAC1D,EAAQ,IAAe,eAAiB,EAAI,GAAG,GAAK,EAAI,GAAG,GAC3D,EAAW,IAAQ,GAAK,IAAW,GAAK,IAAS,GAAK,IAAU,EAClE,QACA,WACJ,EAAU,CAAC,MAAK,SAAQ,OAAM,QAAO,KAAM,GAC3C,EAAY,GACP,GAAW,EAAe,EAAM,GAAU,EAAe,EAC1D,GACJ,EAAW,GACN,GAAU,EAAc,EAAO,GAAS,EAAc,EAAG,OAE9D,MAAM,OAAM,8BAA8B,KAE5C,MAAO,CAAC,UAAS,YAAW,YAG9B,YACI,EAA4B,EAAiB,EAC7C,EAAiB,EAAqB,EACtC,EAAqB,EAAqB,EAC1C,EAAqB,GAMvB,GAAI,GACA,EACA,EACA,EAEJ,GAAI,MAAO,IAAQ,UACjB,KAAM,GAAW,IAAQ,EAAK,QAAU,SACxC,EAAU,CACR,IAAK,EACL,OAAQ,EACR,KAAM,EACN,MAAO,EACP,MAAO,EACP,KAAM,EACN,KAAM,GAER,KAAM,GAAW,GACb,CAAC,EAAS,EAAU,EAAS,GAAI,EAAa,EAAG,EAAa,EAC9D,GACJ,EAAW,EAAS,GACpB,EAAY,EAAS,GACrB,EAAW,EAAS,WACX,IAAQ,QACjB,EAAW,KAAK,KAAK,EAAU,GAC/B,EAAY,KAAK,KAAK,EAAW,GACjC,EAAW,KAAK,KAAK,EAAU,GAC/B,KAAM,GAAiB,GAAW,GAAK,EAAc,EAAc,EAC7D,EACD,GAAY,GAAK,EAAe,EAAe,EAC9C,EAAiB,GAAW,GAAK,EAAc,EAAc,EAC7D,EAAQ,KAAK,MAAM,EAAgB,GACnC,EAAO,EAAgB,EACvB,EAAM,KAAK,MAAM,EAAiB,GAClC,EAAS,EAAiB,EAC1B,EAAO,KAAK,MAAM,EAAgB,GAClC,EAAQ,EAAgB,EAE9B,EAAU,CAAC,MAAK,SAAQ,OAAM,QAAO,QAAO,OAAM,KAAM,gBAC/C,IAAQ,QACjB,EAAU,CACR,IAAK,EACL,OAAQ,EACR,KAAM,EACN,MAAO,EACP,MAAO,EACP,KAAM,EACN,KAAM,SAER,EAAW,KAAK,KAAM,GAAU,EAAc,GAAK,GACnD,EAAY,KAAK,KAAM,GAAW,EAAe,GAAK,GACtD,EAAW,KAAK,KAAM,GAAU,EAAc,GAAK,OAEnD,MAAM,OAAM,8BAA8B,KAE5C,MAAO,CAAC,UAAS,WAAU,YAAW,YAQxC,YACI,EAAe,GACjB,GAAI,CAAC,EACH,MAAO,GAET,OAAQ,OACD,QAEH,MAAO,MAAK,MAAM,OACf,OAEH,MAAO,MAAK,KAAK,OACd,QACH,MAAO,MAAK,MAAM,WAElB,KAAM,IAAI,OAAM,wBAAwB,MAIxC,YAA4B,GAChC,KAAM,CAAC,EAAM,EAAM,GAAQ,GAAgB,GAC3C,MAAO,KAAS,GAAK,IAAS,GAAK,IAAS,EAGxC,YACF,EAA0B,GAC5B,MAAO,IAAkB,IAAY,GAAkB,GAUnD,YAAkC,GAEtC,GAAI,IAAe,OACjB,MAAO,eACF,GAAI,IAAe,OACxB,MAAO,gBAEP,KAAM,IAAI,OAAM,sBAAsB,KC5mB1C,AAoDA,YACI,EAAiB,EACjB,EAAkC,EAClC,GACF,KAAM,GAAK,EAAgB,EAAG,IAAK,UAAW,WACxC,EAAY,EAElB,AAAK,EACD,AAAU,GAA+B,EAAS,GAClD,IAAM,wEACa,oBAA0B,MAEjD,GAAI,GAAM,EACN,EAAe,GACnB,AAAI,EAAG,OAAS,GACd,GAAe,GACf,EAAM,EAAQ,EAAI,CAAC,EAAG,EAAG,MAAM,GAAI,EAAG,MAAM,GAAI,EAAG,MAAM,MAG3D,AAAK,EACD,EAAI,OAAS,EACb,IAAM,mDAAmD,EAAI,SAEjE,AAAI,GAAmB,MACrB,AAAK,EACD,AAAK,EAAM,GACX,IAAM,wEACiB,iBAA+B,MAG5D,KAAM,GAA+B,CAAC,EAAS,KAC7C,KAAM,GAAW,AAAU,GACvB,EAAI,MAAO,EAAY,EAAS,EAAmB,EACnD,GAIJ,MAFA,GAAK,CAAC,IAEF,EAAS,cAAgB,GAAK,EAAS,eAAiB,GACxD,AAAK,GAAY,EAAS,QAAS,EAAS,UACvC,EAAI,QAGN,EAAQ,QAAQ,EAAK,IAGxB,EAAwB,CAAC,EAAG,GAE5B,EAAsB,CAAC,aAAY,UAAS,MAAK,mBAEvD,GAAI,GAAM,EAAO,cACb,EAAS,EAAgC,KAAiB,GAC1D,GAIJ,MAFA,GAAM,EAAK,EAAK,EAAG,OAEf,EACK,EAAQ,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,KAGtD,EAGF,KAAM,IAAU,EAAG,CAAC,cClH3B,AA+BM,cACJ,KAAM,IAAI,OAAQ,IAgBd,cACJ,KAAM,IAAI,QAAS,IAIf,cACJ,KAAM,IAAI,+BAAgC,IAC1C,QAAQ,KAAK,0DAIT,YAA0B,GAC9B,AAAI,KAAM,QAAQ,iCAChB,QAAQ,KACJ,EAAM,+EAId,GAAwB,IAMlB,cACJ,EAAO,mBAOH,cACJ,MAAO,GAuBH,cACJ,MAAO,GAAO,SA+BV,YAAkB,GAEtB,MAAO,GAAO,QAAQ,GA0ClB,WACF,EAA6B,GAC/B,MAAO,GAAO,KAAK,EAAU,GAazB,YAAkB,GACtB,KAAM,GAAU,GAAsB,GACtC,EAAQ,QAAQ,GAAU,EAAO,WAkC7B,YAAiC,GACrC,MAAO,GAAO,KAAK,GA2Bf,YAAe,GACnB,MAAO,GAAO,KAAK,GAiBf,YAAqB,GACzB,MAAO,GAAO,WAAW,GASrB,cACJ,MAAO,GAAO,QAQV,cACJ,MAAO,GAAO,YAOV,YAAwB,GAC5B,EAAO,cAAc,GAOjB,YAAsB,GAC1B,MAAO,GAAO,YAAY,GAQtB,YAA6B,GAEjC,MAAO,GAAO,mBAAmB,GAiB7B,YACF,EAAc,EACd,EAAW,GACb,MAAO,GAAO,gBAAgB,EAAM,EAAS,GAUzC,cACJ,MAAO,GAAO,QASV,YAAsB,EAAsB,GAChD,KAAM,YAAY,EAAc,GC5WlC,AA4EA,YACI,EAAiB,EACjB,EAA0C,EAC1C,EACA,EAA8B,QAC9B,GACF,AAAI,GAAa,KACf,EAAY,CAAC,EAAG,EAAG,GAEnB,GACI,+DAIN,KAAM,GAAK,EAAgB,EAAG,IAAK,YAAa,WAEhD,GAAI,GAAM,EACN,EAAe,GACnB,AAAI,EAAG,OAAS,GACd,GAAe,GACf,EAAM,EAAQ,EAAI,CAAC,EAAG,EAAG,MAAM,GAAI,EAAG,MAAM,GAAI,EAAG,MAAM,GAAI,EAAG,MAAM,MAGxE,AAAK,EACD,EAAI,OAAS,EACb,IAAM,qDAAqD,EAAI,SACnE,AAAK,EACD,IAAe,QACf,IAAM,gFACuB,KACjC,AAAK,EACD,AAAU,GAA+B,EAAS,GAClD,IAAM,0EACa,oBAA0B,MAEjD,AAAI,GAAmB,MACrB,AAAK,EACD,AAAK,EAAM,GACX,IAAM,0EACiB,iBAA+B,MAG5D,KAAM,GAA+B,CAAC,EAAS,KAC7C,AAAI,GAAa,MACf,GAAY,CAAC,EAAG,EAAG,IAGrB,KAAM,GAAW,AAAU,GACvB,EAAI,MAAO,EAAY,EAAS,EAAW,EAAK,EAChD,GAEJ,SAAK,CAAC,IAEC,EAAQ,UAAU,EAAK,IAG1B,EAA0B,CAAC,EAAG,GAE9B,EACF,CAAC,aAAY,UAAS,MAAK,kBAAiB,aAAY,aAE5D,GAAI,GAAM,EAAO,cACb,EAAS,EAAgC,KAAiB,GAC1D,GAIJ,MAFA,GAAM,EAAK,EAAK,EAAI,OAEhB,EACK,EACI,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,KAIhE,EAGF,KAAM,IAAY,EAAG,CAAC,gBCxJ7B,AAmBM,YAAiC,EAAoB,GACzD,KAAM,GAAO,EAAO,GAAG,OACvB,EAAO,QAAQ,CAAC,EAAO,KACrB,AAAK,EACD,EAAM,SAAW,EACjB,IACI,kBAAkB,uBAA0B,gDAChB,QAGtC,AAAK,EACD,GAAQ,GAAK,EAAO,EACpB,IAAM,kBAAkB,kCAAqC,EAAO,MAExE,KAAM,GAAa,EAAO,GAC1B,EAAO,QAAQ,CAAC,EAAO,KACrB,OAAS,GAAI,EAAG,EAAI,EAAM,IACxB,AAAK,EACA,IAAM,GAAU,EAAM,KAAO,EAAW,GACzC,IAAM,kBAAkB,wBAA2B,OAAO,4CACb,sCACN,QAK3C,YAA0B,EAAoB,GAClD,KAAM,GAAc,EAAO,GAAG,QAC9B,OAAS,GAAI,EAAG,EAAI,EAAO,OAAQ,IACjC,EAAY,IAAS,EAAO,GAAG,GAEjC,MAAO,GClDT,AAwBM,YACF,EAAoB,EAAiB,EACrC,GAIF,GAHA,AAAI,GAAS,MACX,GAAQ,GAAW,IAEjB,IAAU,YACZ,KAAM,IAAI,OACN,oFAGN,GAAI,CAAC,GAAa,IAAW,CAAC,MAAM,QAAQ,IACxC,MAAO,IAAW,UAAY,MAAO,IAAW,WAChD,MAAO,IAAW,SACpB,KAAM,IAAI,OACN,4HAGN,GAAI,GAAS,MACX,GAAmC,GAEnC,KAAM,GAAe,GAAc,GAC7B,EAAe,GAAc,GACnC,EACI,IAAiB,EACjB,IACI,iCAAiC,8BAC9B,oBAA+B,KAE1C,OAAS,GAAI,EAAG,EAAI,EAAc,OAAQ,EAAE,GAC1C,KAAM,GAAW,EAAc,GACzB,EAAoB,IAAM,EAAc,OAAS,EACnD,IAAa,GAAc,EAAM,MAAM,IACvC,GACJ,EACI,EAAc,KAAO,EAAM,IAAM,CAAC,EAClC,IAAM,gDACE,yCACM,SAItB,MAAI,CAAC,GAAa,IAAW,CAAC,MAAM,QAAQ,IAC1C,GAAS,CAAC,IAGZ,EAAQ,GAAS,EACjB,EAAS,IAAU,SACf,GAAa,EAAQ,GACrB,GAAQ,EAAoB,GAAI,IAC7B,EAAO,WAAW,EAAsB,EAAO,GC1ExD,AAmDM,YACF,EAAoB,EAAqB,GAC3C,KAAM,GAAgB,GAAW,EAAQ,GACzC,MAAO,IAAW,EAAQ,EAAO,EAAe,GCtDlD,AAoEA,YAAmC,EAA8B,EAAO,GACtE,EAAO,EAAQ,QAAU,EAAG,IAAM,sCAElC,GAAI,GAAW,GAAqB,EAAS,UAAW,UACxD,AAAI,EAAS,GAAG,QAAU,aACxB,EAAS,QAAQ,IACf,GAAI,EAAO,QAAU,YACnB,KAAM,IAAI,OAAM;uBACD,EAAO,aAK5B,KAAM,GAAQ,EAAe,EAAM,EAAS,GAAG,OAAO,GAChD,EAAW,GAAgB,EAAS,IAAI,GAAK,EAAE,OAAQ,GAC7D,GAAI,GAAc,KAAc,EAC9B,MAAO,IAAO,GAAI,GAIpB,GADA,EAAW,EAAS,OAAO,GAAK,EAAE,KAAO,GACrC,EAAS,SAAW,EACtB,MAAO,GAAS,GAGlB,KAAM,GAAS,EAAS,IAAI,GAAK,EAAE,OACnC,GAAuB,EAAQ,GAE/B,KAAM,GAA+B,CAAC,EAAS,KAC7C,KAAM,GAAM,EAAQ,OAAO,EAAU,GACrC,SAAK,GACE,GAGH,EAAuB,EACvB,EAAoB,CAAC,QAE3B,MAAO,GAAO,cACH,EAAS,EAAgC,KAAiB,GAC1D,GAGN,KAAM,GAAS,EAAG,CAAC,aC7G1B,AA4CA,YACI,EAAiB,EAAiB,EAAa,GAC/C,EAAa,IACf,GAAI,GAAK,EAAgB,EAAG,IAAK,UAC7B,EAAK,EAAgB,EAAG,IAAK,UACjC,CAAC,EAAI,GAAM,EAAe,EAAI,GAE9B,AAAK,EACD,EAAG,MAAQ,GAAK,EAAG,MAAQ,GAAK,EAAG,OAAS,EAAG,KAC/C,IAAM,4EACW,EAAG,YAAY,EAAG,SAEvC,KAAM,GACF,EAAa,EAAG,MAAM,EAAG,KAAO,GAAK,EAAG,MAAM,EAAG,KAAO,GACtD,EACF,EAAa,EAAG,MAAM,EAAG,KAAO,GAAK,EAAG,MAAM,EAAG,KAAO,GAEtD,EACF,EAAa,EAAG,MAAM,EAAG,KAAO,GAAK,EAAG,MAAM,EAAG,KAAO,GACtD,EACF,EAAa,EAAG,MAAM,EAAG,KAAO,GAAK,EAAG,MAAM,EAAG,KAAO,GAEtD,EAAa,EAAG,MAAM,MAAM,EAAG,IAC/B,EAAa,EAAG,MAAM,MAAM,EAAG,IAC/B,EAAY,AAAK,GAAc,GAC/B,EAAY,AAAK,GAAc,GAErC,AAAK,EACD,AAAK,GAAY,EAAY,GAC7B,IAAM,sCAAsC,WACrC,6BAAsC,EAAG,aACzC,EAAG,qBAEd,AAAK,EACD,IAAgB,EAChB,IAAM,kCAAkC,WACjC,6BAAuC,EAAG,aAC1C,EAAG,wBAAwB,oBACX,iBAE3B,KAAM,GAAW,EAAG,MAAM,MAAM,EAAG,IAAI,OAAO,CAAC,EAAa,IAEtD,EAAM,EAAa,EAAQ,EAAI,CAAC,EAAW,EAAa,IACrC,EAAQ,EAAI,CAAC,EAAW,EAAa,IACxD,EAAM,EAAa,EAAQ,EAAI,CAAC,EAAW,EAAa,IACrC,EAAQ,EAAI,CAAC,EAAW,EAAa,IAExD,EAA+B,CAAC,EAAS,IAC7C,GAAK,CAAC,EAAK,IAEJ,EAAQ,YACX,EAAiB,EAAiB,EAAY,IAG9C,EAA4B,CAAC,EAAG,EAAK,EAAG,GAExC,EAA0B,CAAC,aAAY,cAEvC,EAAM,EAAO,cACf,EAAS,EAAgC,KAAiB,GAC1D,GAEJ,MAAO,GAAQ,EAAK,GAGf,KAAM,GAAS,EAAG,CAAC,aC7G1B,AAmDA,YAAgC,EAAsB,GACpD,GAAI,GAAK,EAAgB,EAAG,IAAK,OAC7B,EAAK,EAAgB,EAAG,IAAK,OACjC,CAAC,EAAI,GAAM,EAAe,EAAI,GAE9B,KAAM,GAA+B,CAAC,EAAS,KAC7C,KAAM,GAAM,EAAQ,SAAS,EAAI,GACjC,SAAK,CAAC,EAAI,IACH,GAEH,EAAyB,CAAC,EAAG,EAAI,EAAG,GAE1C,MAAO,GAAO,cACH,EAAS,EAAgC,KACzC,IAEN,KAAM,GAAM,EAAG,CAAC,UCnEvB,AAqCA,YAAoC,GAClC,KAAM,GAAK,EAAgB,EAAG,IAAK,WAE7B,EAAwB,CAAC,EAAG,GAElC,MAAO,GAAO,cAAc,CAAC,EAAS,KACpC,KAAM,GAAM,EAAQ,QAAQ,GAC5B,SAAK,CAAC,IACC,GACN,EAAgC,KAAiB,IAE/C,KAAM,IAAU,EAAG,CAAC,cChD3B,6TAoBM,YACF,EAAe,EAAiB,GAClC,AAAK,EACD,EAAM,OAAS,EAAM,OACrB,IAAM,iBAAiB,EAAM,0BAA0B,uCACnB,EAAM,UAC9C,AAAK,EACD,EAAM,OAAS,EAAK,OACpB,IAAM,iBAAiB,EAAM,yBAAyB,uCAClB,EAAM,UAE9C,OAAS,GAAI,EAAG,EAAI,EAAM,KAAM,EAAE,EAChC,AAAK,EACD,EAAM,GAAK,EAAK,IAAM,EAAM,MAAM,GAClC,IAAM,iBAAiB,EAAM,gBAAgB,aAAa,OAClD,EAAM,GAAK,EAAK,kCAAkC,OAChD,EAAM,MAAM,OAKxB,YAAqB,GACzB,KAAM,GAAO,GACb,GAAI,GAAO,EACX,KAAO,EAAO,GACZ,AAAI,EAAO,GACT,EAAK,KAAK,GAEZ,GAAQ,EACR,IAEF,MAAO,GAIH,YACF,EAAiB,EAAe,GAClC,KAAM,GAAO,GACb,OAAS,GAAO,EAAG,EAAO,EAAM,OAAQ,IACtC,EAAK,GAAQ,KAAK,KAAM,GAAI,GAAQ,EAAM,IAAS,EAAQ,IAE7D,MAAO,GAKH,YACF,EAAmB,EAAgC,EACnD,GACF,KAAM,GAAa,CAAC,GAAG,GACvB,OAAS,GAAI,EAAW,OAAQ,EAAI,EAAW,OAAQ,IACrD,EAAW,KAAK,GAElB,OAAS,GAAI,EAAG,EAAI,EAAe,IACjC,AAAI,IAAM,EACR,EAAW,GAA0B,EAErC,GAAW,OACP,EAAwB,EACxB,GACJ,EAAW,OAGf,MAAO,GAGT,YACI,EAAgC,EAChC,GACF,MAAI,IAAkB,EACb,EAGF,EAAkB,GAAgB,GAG3C,YAAuB,EAAuB,GAC5C,KAAM,GAAa,GACnB,OAAS,GAAI,EAAG,EAAI,EAAe,IACjC,EAAW,KAAK,EAAyB,GAE3C,MAAO,GAKH,YACF,EAAmB,EAAgC,EACnD,EAAyB,GAC3B,KAAM,GAAa,CAAC,GAAG,GACjB,EAAa,GAAc,EAAe,GAEhD,OAAS,GAAO,EAAG,EAAO,EAAW,OAAQ,IAC3C,GAAI,EAAW,QAAQ,GAAQ,GAC7B,EAAW,GAAQ,OAEnB,KAAM,GACF,GAAgB,EAAwB,EAAe,GAC3D,GAAI,GAAgB,EAAc,GAClC,AAAI,EAAY,GAAK,GACnB,GAAgB,GAGlB,EAAW,GAAQ,EAGvB,MAAO,GAKH,YACF,EAAiB,EAAgC,EACjD,EAAuB,GACzB,KAAM,GAAa,CAAC,GAAG,GACjB,EAAa,GAAc,EAAe,GAEhD,OAAS,GAAO,EAAG,EAAO,EAAW,OAAQ,IAC3C,GAAI,EAAW,QAAQ,GAAQ,GAC7B,EAAW,GAAQ,OAAO,sBAE1B,KAAM,GACF,GAAgB,EAAwB,EAAe,GAC3D,GAAI,GAAgB,EAAY,GAChC,AAAI,EAAU,GAAK,GACjB,GAAgB,OAAO,kBAEzB,EAAW,GAAQ,EAIvB,OAAS,GAAI,EAAG,EAAI,EAAW,OAAQ,KAErC,KAAM,GAAW,EAAW,GAC5B,AAAI,EAAW,GAAK,GAClB,GAAW,IAAM,GAEnB,EAAW,GAAK,AAAK,GAAM,EAAG,EAAW,GAAI,EAAW,IAE1D,MAAO,GAGH,YACF,EAAmB,EAAc,GACnC,GAAI,GAAS,EAAQ,GACrB,MAAI,GAAgB,GAAK,GAAS,GAAU,OAC1C,GAAS,GAGJ,EAGH,YACF,EAAmB,EAAwB,EAC3C,EAAsB,EAAc,GAEtC,GAAI,GAAQ,EAAa,GACzB,KAAM,GAAS,EAAQ,IAAS,EAIhC,AAAI,GAAY,GAAK,GAAQ,EAAe,GAAK,GAAQ,GAAS,OAChE,CAAI,EAAS,EAIX,EAAQ,OAAO,iBAGf,EAAQ,OAAO,kBAKnB,KAAM,GAAW,EAAW,GAC5B,MAAI,GAAQ,GACV,IAAS,GAIX,EAAQ,AAAK,GAAM,EAAG,EAAO,EAAW,GAEjC,EAGH,YACF,EAAiB,EAAuB,EACxC,EAAsB,EAAc,GAEtC,GAAI,GAAO,EAAY,GACvB,KAAM,GAAS,EAAQ,IAAS,EAIhC,AAAI,GAAW,GAAK,GAAS,EAAgB,GAAK,GAAS,GAAQ,OACjE,CAAI,EAAS,EAGX,EAAO,OAAO,iBAGd,EAAO,OAAO,kBAKlB,KAAM,GAAW,EAAW,GAC5B,MAAI,GAAO,GACT,IAAQ,GAMV,AAAI,EAAS,EAEX,EAAO,AAAK,GAAM,EAAG,EAAM,GAG3B,EAAO,AAAK,GAAM,GAAI,EAAM,EAAW,GAGlC,EAOH,YACF,EAAiB,EAAiB,GAEpC,GAAI,GAAkB,EAAK,OAC3B,OAAS,GAAI,EAAG,EAAI,EAAK,OAAQ,IAC/B,GAAI,EAAK,GAAK,GACZ,EAAkB,EAClB,MAIJ,OAAS,GAAI,EAAkB,EAAG,EAAI,EAAK,OAAQ,IACjD,GAAI,EAAM,GAAK,GAAK,EAAK,KAAO,EAAM,GACpC,MAAO,GAGX,MAAO,GAGH,YAA4B,EAAiB,GACjD,GAAI,GAAa,EAAM,OAAS,EAAI,EAAM,EAAM,OAAS,GAAK,EAC9D,OAAS,GAAI,EAAG,EAAI,EAAM,OAAS,EAAG,IACpC,GAAc,EAAM,GAAK,EAAQ,GAEnC,MAAO,GAGH,YACF,EAAW,EAAwB,GAErC,GAAI,GACJ,AAAI,MAAO,IAAU,SACnB,EAAS,CAAC,EAAO,GAAG,GAAI,OAAM,EAAE,KAAO,GAAG,KAAK,IAC1C,AAAI,EAAM,OAAS,EAAE,KAC1B,EAAS,EAAM,OAAO,GAAI,OAAM,EAAE,KAAO,EAAM,QAAQ,KAAK,IAE5D,EAAS,EAAM,QAEjB,EAAO,QAAQ,IACb,AAAK,EACD,IAAM,GAAI,IAAM,uDAEtB,GAAI,GACJ,MAAI,IAAQ,KACV,EAAQ,GAAI,OAAM,EAAE,MAAM,KAAK,IAC1B,AAAI,MAAO,IAAS,SACzB,EAAQ,CAAC,EAAM,GAAG,GAAI,OAAM,EAAE,KAAO,GAAG,KAAK,KACxC,AAAI,EAAK,OAAS,EAAE,KACzB,EAAQ,EAAK,OAAO,GAAI,OAAM,EAAE,KAAO,EAAK,QAAQ,KAAK,KAEzD,EAAQ,EAEV,EAAQ,EAAM,IAAI,CAAC,EAAG,IAChB,GAAK,EACA,EAEP,CAAK,EACD,IAAM,GACN,IAAM,qDACC,mCAAmC,MACvC,EAAE,MAAM,GAAK,EAAO,KAGxB,CAAC,EAAQ,GCxTlB,AA6DA,YACI,EAAiB,EAAwB,GAC3C,KAAM,GAAK,EAAgB,EAAG,IAAK,SAEnC,GAAI,EAAG,OAAS,EACd,KAAM,IAAI,OAAM,kCAElB,KAAM,CAAC,EAAQ,GAAS,AAAW,GAAiB,EAAI,EAAO,GAC/D,AAAW,GAAkB,EAAI,EAAQ,GAEzC,KAAM,GAA+B,CAAC,EAAS,IAC7C,GAAK,CAAC,IACC,EAAQ,MAAM,EAAI,EAAQ,IAG7B,EAAsB,CAAC,EAAG,GAC1B,EAAoB,CAAC,QAAO,QAElC,MAAO,GAAO,cACH,EAAS,EAAgC,KAAiB,GAC1D,GAGN,KAAM,GAAQ,EAAG,CAAC,YCpFzB,AAqCA,YAAiC,GAC/B,KAAM,GAAK,EAAgB,EAAG,IAAK,QAE7B,EAAqB,CAAC,EAAG,GAE/B,MAAO,GAAO,cAAc,CAAC,EAAS,KACpC,KAAM,GAAI,EAAQ,KAAK,GACvB,SAAK,CAAC,IACC,GACN,EAAgC,KAAiB,IAE/C,KAAM,IAAO,EAAG,CAAC,WChDxB,AA6CA,YACI,EAA+B,EAC/B,EAA+B,EAC/B,EAAwB,GAC1B,KAAM,GACF,EAAgB,EAAY,aAAc,iBACxC,EACF,EAAgB,EAAY,aAAc,iBACxC,EAAY,EAAgB,EAAU,WAAY,iBAClD,EAAQ,EAAgB,EAAM,OAAQ,iBACtC,EAAK,EAAgB,EAAG,IAAK,iBAC7B,EAAK,EAAgB,EAAG,IAAK,iBAE7B,EAAW,EAAO,CAAC,EAAO,GAAK,GAC/B,EAAW,EAAO,EAAU,GAC5B,EAAgB,EAAI,EAAU,GAG9B,EAAY,EAAI,MAAM,GACtB,EAAY,EAAI,MAAM,GAAK,EAC3B,EAA8B,CAAC,EAAW,GAC1C,EAAI,EAAM,EAAK,CAAC,EAAG,GAAI,GACvB,EAAI,EAAM,EAAK,CAAC,EAAG,GAAY,GAC/B,EAAI,EAAM,EAAK,CAAC,EAAG,EAAY,GAAI,GACnC,EAAI,EAAM,EAAK,CAAC,EAAG,EAAY,GAAI,GAEnC,EACF,EAAI,EAAI,GAAQ,GAAI,GAAK,IACrB,EAAI,EAAI,GAAQ,EAAI,EAAa,MACnC,EAAiB,EAAI,GAAK,GAAO,GAAQ,IAC/C,MAAO,CAAC,EAAM,GAGT,KAAM,IAAgB,EAAG,CAAC,oBC9EjC,AA2EA,YACI,EAAiB,EAAsB,GACzC,KAAM,GAAK,EAAgB,EAAG,IAAK,kBAC7B,EAAO,EAAW,OAAO,CAAC,EAAG,IAAM,EAAI,GAE7C,AAAK,EACD,EAAG,MAAQ,EAAI,EAAW,OAC1B,IAAM,iBAAiB,EAAG,+CACtB,EAAW,UAEnB,AAAK,EACD,EAAM,SAAW,EAAW,OAC5B,IAAM,mBACF,EAAM,oDACN,EAAW,UAEnB,AAAK,EACD,EAAG,MAAM,GAAK,IAAS,EACvB,IAAM,yBACI,EAAG,MAAM,wEACe,EAAW,KAAK,cAAc,KAEpE,KAAM,GAA0B,GACvB,EAAQ,eAAe,EAAI,EAAY,GAG1C,EAA+B,CAAC,EAAG,GACnC,EAA6B,CAAC,aAAY,SAEhD,MAAO,GAAO,cACV,EAAS,EAAgC,KACzC,GAAgB,GAGf,KAAM,IAAiB,EAAG,CAAC,qBCzF5B,YAAgC,GACpC,GAAI,GACJ,MAAI,GAAE,OAAS,GAAK,EAAE,OAAS,EAC7B,EAAM,EAAQ,EAAG,CAAC,EAAG,EAAG,EAAG,EAAE,OACxB,AAAI,EAAE,OAAS,EACpB,EAAM,EAAQ,EAAG,CAAC,EAAG,EAAG,EAAE,MAAM,GAAI,EAAE,MAAM,KACvC,AAAI,EAAE,OAAS,EACpB,EAAM,EAAQ,EAAG,CAAC,EAAG,EAAE,MAAM,GAAI,EAAE,MAAM,GAAI,EAAE,MAAM,KAErD,EAAM,EAGD,EChCT,AAuDA,YACI,EAAyB,EACzB,EACA,EACA,EACA,GACF,AAAI,GAAmB,MACrB,GAAkB,MAEpB,KAAM,GAAK,EAAgB,EAAG,IAAK,aAC7B,EAAQ,EAAgB,EAAM,OAAQ,aACtC,EAAY,EAAgB,EAAU,WAAY,aACxD,GAAI,GACJ,AAAI,GAAS,MACX,GAAS,EAAgB,EAAO,QAAS,cAE3C,GAAI,GACJ,AAAI,GAAU,MACZ,GAAU,EAAgB,EAAQ,SAAU,cAG9C,AAAK,EACD,EAAM,OAAS,EAAU,KACzB,IAAM,gFAEV,AAAK,EACD,GAAW,MAAQ,EAAM,OAAS,EAAQ,KAC1C,IAAM,8EAEV,AAAK,EACD,GAAU,MAAQ,EAAM,OAAS,EAAO,KACxC,IAAM,6EAGV,KAAM,GAAgB,GAAM,GAEtB,EAA+B,CAAC,EAAS,IAC7C,GAAK,CAAC,EAAK,EAAO,EAAW,IAEtB,EAAQ,UACX,EAAK,GAAS,GAAQ,GAAS,GAAY,GAAS,GACpD,GAAS,GAAS,IAGlB,EAA+B,CACnC,EAAG,EACH,MAAO,EACP,OAAQ,EACR,KAAM,EACN,SAAU,GAGN,EAA6B,CAAC,mBAE9B,EAAM,EAAO,cACf,EAAS,EAAgC,KACzC,GAAgB,GAEpB,MAAO,GAAQ,EAAK,EAAG,OAGzB,YAAkB,GAChB,MAAI,IAAK,KACA,KAEL,EAAE,OAAS,EAEN,EAAQ,EAAG,CAAC,EAAE,OACZ,EAAE,OAAS,EACb,EACE,EAAE,OAAS,EAEb,EAAQ,EAAG,CAAC,EAAG,EAAG,EAAE,MAAM,GAAI,EAAE,MAAM,KACpC,EAAE,OAAS,EAEb,EAAQ,EAAG,CAAC,EAAG,EAAE,MAAM,GAAI,EAAE,MAAM,GAAI,EAAE,MAAM,KAEjD,EAGF,KAAM,IAAY,EAAG,CAAC,gBCpG7B,YACI,EAAwB,EACxB,EACA,EAAuC,EACvC,GACF,KAAM,GAAK,EAAgB,EAAG,IAAK,aAC7B,EAAQ,EAAgB,EAAM,OAAQ,aACtC,EAAY,EAAgB,EAAU,WAAY,aACxD,GAAI,GACJ,AAAI,GAAS,MACX,GAAS,EAAgB,EAAO,QAAS,cAE3C,GAAI,GACJ,MAAI,IAAU,MACZ,GAAU,EAAgB,EAAQ,SAAU,cAE9C,AAAK,EACD,EAAG,OAAS,EACZ,IAAM,uDACC,EAAG,SACd,AAAK,EACD,EAAM,OAAS,GAAK,EAAM,OAAS,EACnC,IAAM,oEACU,EAAM,SAC1B,AAAK,EACD,EAAU,OAAS,GAAK,EAAU,OAAS,EAC3C,IAAM,wEACc,EAAU,SAClC,AAAI,GAAU,MACZ,AAAK,EACD,EAAO,OAAS,GAAK,EAAO,OAAS,EACrC,IAAM,qEACc,EAAO,SAEjC,AAAI,GAAW,MACb,AAAK,EACD,EAAQ,OAAS,GAAK,EAAQ,OAAS,EACvC,IAAM,sEACc,EAAQ,SAG3B,GAAU,EAAI,EAAO,EAAW,EAAS,EAAQ,GAGnD,KAAM,IAAc,EAAG,CAAC,kBC5C/B,YACI,EAAwB,EACxB,EACA,EAAuC,EACvC,GACF,KAAM,GAAK,EAAgB,EAAG,IAAK,aAC7B,EAAQ,EAAgB,EAAM,OAAQ,aACtC,EAAY,EAAgB,EAAU,WAAY,aACxD,GAAI,GACJ,AAAI,GAAS,MACX,GAAS,EAAgB,EAAO,QAAS,cAE3C,GAAI,GACJ,MAAI,IAAU,MACZ,GAAU,EAAgB,EAAQ,SAAU,cAE9C,AAAK,EACD,EAAG,OAAS,EACZ,IAAM,uDACC,EAAG,SACd,AAAK,EACD,EAAM,OAAS,GAAK,EAAM,OAAS,EACnC,IAAM,oEACU,EAAM,SAC1B,AAAK,EACD,EAAU,OAAS,GAAK,EAAU,OAAS,EAC3C,IAAM,wEACc,EAAU,SAClC,AAAI,GAAU,MACZ,AAAK,EACD,EAAO,OAAS,GAAK,EAAO,OAAS,EACrC,IAAM,qEACc,EAAO,SAEjC,AAAI,GAAW,MACb,AAAK,EACD,EAAQ,OAAS,GAAK,EAAQ,OAAS,EACvC,IAAM,sEACc,EAAQ,SAG3B,GAAU,EAAI,EAAO,EAAW,EAAS,EAAQ,GAGnD,KAAM,IAAc,EAAG,CAAC,kBC5C/B,YACI,EAAwB,EACxB,EACA,EAAuC,EACvC,GACF,KAAM,GAAK,EAAgB,EAAG,IAAK,aAC7B,EAAQ,EAAgB,EAAM,OAAQ,aACtC,EAAY,EAAgB,EAAU,WAAY,aACxD,GAAI,GACJ,AAAI,GAAS,MACX,GAAS,EAAgB,EAAO,QAAS,cAE3C,GAAI,GACJ,MAAI,IAAU,MACZ,GAAU,EAAgB,EAAQ,SAAU,cAE9C,AAAK,EACD,EAAG,OAAS,EACZ,IAAM,uDACC,EAAG,SACd,AAAK,EACD,EAAM,OAAS,GAAK,EAAM,OAAS,EACnC,IAAM,oEACU,EAAM,SAC1B,AAAK,EACD,EAAU,OAAS,GAAK,EAAU,OAAS,EAC3C,IAAM,wEACc,EAAU,SAClC,AAAI,GAAU,MACZ,AAAK,EACD,EAAO,OAAS,GAAK,EAAO,OAAS,EACrC,IAAM,qEACc,EAAO,SAEjC,AAAI,GAAW,MACb,AAAK,EACD,EAAQ,OAAS,GAAK,EAAQ,OAAS,EACvC,IAAM,sEACc,EAAQ,SAE3B,GAAU,EAAI,EAAO,EAAW,EAAS,EAAQ,GAGnD,KAAM,IAAc,EAAG,CAAC,kBC9E/B,AAuCA,YAAkC,GAChC,KAAM,GAAK,EAAgB,EAAG,IAAK,QAAS,MACtC,EAAU,IACZ,EAAO,qBAAqB,EAAG,OAAQ,EAAG,MAAO,EAAG,OAElD,EAAyB,CAAC,EAAG,GAInC,MAAO,GAAO,cACV,EAAS,EAAgC,KAAiB,IAGzD,KAAM,IAAQ,EAAG,CAAC,YCpDzB,AA2CA,YACI,EAAsB,GACxB,GAAI,GAAQ,EAAgB,EAAG,cAAe,KAC9C,KAAM,GAAS,EAAM,MAErB,GAAI,EAAM,KAAK,GAAK,CAAE,GAAI,IAAM,EAAI,IAAM,GACxC,KAAM,IAAI,OAAM,2CAA2C,OAG7D,GAAI,EAAM,OAAS,EAAM,KACvB,KAAM,IAAI,OAAM,+BAA+B,EAAM,uBACjD,EAAM,SAGZ,GAAI,EAAM,OAAS,EAAM,MACvB,KAAM,GAAW,EAAM,MAAM,QAC7B,KAAO,EAAS,OAAS,EAAM,QAC7B,EAAS,QAAQ,GAEnB,EAAQ,EAAQ,EAAO,GAGzB,KAAM,GAAa,EAAM,MACnB,EAAiB,MAAM,KAAK,GAClC,OAAS,GAAI,EAAM,OAAS,EAAG,GAAK,EAAG,IACrC,GAAI,EAAW,KAAO,EAAM,GAC1B,EAAK,GAAK,UACD,EAAM,MAAM,KAAO,EAC5B,KAAM,IAAI,OACN,mBAAmB,8BAAmC,OAG9D,KAAM,GAAO,EAAK,IAAI,CAAC,EAAG,IAAM,EAAI,EAAI,EAAI,IAAI,OAAO,GAAK,GAAK,GAEjE,GAAI,EAAK,SAAW,EAClB,MAAO,IAAM,GAGf,KAAM,GAAU,AAAC,GAA2B,EAAQ,KAAK,EAAO,GAE1D,EAA4B,CAAC,EAAG,GAChC,EAA0B,CAAC,QAAO,cAExC,MAAO,GAAO,cACH,EAAS,EAAqC,KAC9C,GAAa,GAGnB,KAAM,IAAc,EAAG,CAAC,kBC3F/B,AA8CM,YACF,EAAoB,EAAW,UAC/B,GACF,SAAQ,GAAS,UACjB,AAAK,GAAmC,GACjC,GAAI,IAAmB,EAAO,EAAO,GCnD9C,AAqCA,YAAiC,GAC/B,KAAM,GAAK,EAAgB,EAAG,IAAK,QAE7B,EAAqB,CAAC,EAAG,GAC/B,MAAO,GAAO,cACV,GAAW,EAAQ,KAAK,GAAK,EAC7B,KAAiB,IAEhB,KAAM,IAAO,EAAG,CAAC,WC7CxB,AAwCA,YACI,EAAiB,EAAsB,GACzC,KAAM,GAAK,EAAgB,EAAG,IAAK,eACnC,AAAK,EACA,GAAgB,EACjB,IAAM,uBAAuB,yCACK,OAEtC,KAAM,GAA4B,CAAC,EAAG,GAChC,EAA0B,CAAC,eAAc,gBAE/C,MAAO,GAAO,cACV,CAAC,EAAS,KACR,KAAM,GAAM,EAAQ,KAAK,EAAI,EAAc,GAC3C,SAAK,CAAC,IACC,GAET,EAAgC,KAAiB,GACjD,GAGC,KAAM,IAAc,EAAG,CAAC,kBC7D/B,AA6CA,YAAoC,EAAoB,GACtD,KAAM,GAAQ,EAAgB,EAAM,OAAQ,WACtC,EAAQ,EAAgB,EAAM,OAAQ,WAC5C,AAAK,EACD,EAAM,MAAO,EAAM,MACnB,yBAAyB,EAAM,aAAa,EAAM,8CAGtD,KAAM,GAA+B,AAAC,GAC7B,EAAQ,QAAQ,EAAO,GAE1B,EAAwB,CAAC,KAAM,EAAO,KAAM,GAClD,MAAO,GAAO,cACH,EAAS,EAAgC,KACzC,IAGN,KAAM,IAAU,EAAG,CAAC,cC7B3B,YAAmB,GACjB,MAAO,GAAO,EAAS,GAGlB,KAAM,IAAW,EAAG,CAAC,eCY5B,YACI,EAAqC,GACvC,MAAO,GAAO,EAAS,GAGlB,KAAM,IAAW,EAAG,CAAC,eCD5B,YACI,EAAqC,GACvC,MAAO,GAAO,EAAS,GAGlB,KAAM,IAAW,EAAG,CAAC,eC5B5B,YACI,EAAqC,GACvC,MAAO,GAAO,EAAS,GAGlB,KAAM,IAAW,EAAG,CAAC,eCnC5B,AA6DA,YACI,EAAiB,EACjB,EACA,EACA,EAA4B,OAC5B,EAAqC,CAAC,EAAG,GACzC,GACF,KAAM,GAAK,EAAgB,EAAG,IAAK,UAC7B,EAAU,EAAgB,EAAQ,SAAU,UAElD,GAAI,GAAM,EACN,EAAe,GAEnB,AAAI,EAAG,OAAS,GACd,GAAe,GACf,EAAM,EAAQ,EAAI,CAAC,EAAG,EAAG,MAAM,GAAI,EAAG,MAAM,GAAI,EAAG,MAAM,MAG3D,AAAK,EACD,EAAI,OAAS,EACb,IAAM,uDAAuD,EAAI,SACrE,AAAK,EACD,EAAQ,OAAS,EACjB,IAAM,wDACC,EAAQ,SACnB,AAAI,GAAmB,MACrB,AAAK,EACD,AAAK,EAAM,GACX,IAAM,uEACiB,iBAA+B,MAG5D,KAAM,GAAU,IAAe,OAAS,EAAI,MAAM,GAAK,EAAI,MAAM,GACjE,AAAK,EACD,IAAY,EAAQ,MAAM,GAC1B,IAAM,oCAAoC,wCACZ,EAAQ,MAAM,OAChD,AAAK,EACD,AAAU,GAA+B,EAAS,GAClD,IAAM,uEACa,oBAA0B,MAEjD,KAAM,GAA+B,CAAC,EAAS,KAC7C,KAAM,GAAc,AAAU,GAAwB,GAChD,EAAW,AAAU,GACvB,EAAI,MAAO,EAAQ,MAAO,EAAS,EAAW,EAAK,EACnD,GAAO,GACL,EAAM,EAAQ,OAAO,EAAK,EAAS,GAEzC,SAAK,CAAC,EAAK,IAEJ,GAGH,EAAuB,CAAC,EAAG,EAAK,OAAQ,GACxC,EACY,CAAC,UAAS,MAAK,aAAY,YAAW,mBAElD,EAAM,EAAO,cACf,EAAS,EAAgC,KAAiB,GAC1D,GAEJ,MAAI,GACK,EAAQ,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,KAEtD,EAGF,KAAM,IAAS,EAAG,CAAC,aC3E1B,YACI,EAAiB,EAA6B,EAC9C,EACA,EAA0B,MAAO,EAAW,EAC5C,GACF,KAAM,GAAK,EAAgB,EAAG,IAAK,UAC7B,EAAU,EAAgB,EAAQ,SAAU,UAElD,GAAI,GAAM,EACN,EAAe,GACnB,AAAI,EAAG,OAAS,GACd,GAAe,GACf,EAAM,EAAQ,EAAI,CAAC,EAAG,EAAG,MAAM,GAAI,EAAG,MAAM,MAG9C,AAAK,EACD,EAAI,OAAS,EACb,IAAM,uDAAuD,EAAI,SACrE,AAAK,EACD,EAAQ,OAAS,EACjB,IAAM,wDACC,EAAQ,SACnB,AAAI,GAAmB,MACrB,AAAK,EACD,AAAK,EAAM,GACX,IAAM,uEACiB,iBAA+B,MAG5D,AAAK,EACD,EAAI,MAAM,KAAO,EAAQ,MAAM,GAC/B,IAAM,oCAAoC,EAAI,MAAM,yCACtB,EAAQ,MAAM,OAChD,AAAK,EACD,AAAU,GAA+B,EAAQ,GACjD,IAAM,oEACY,mBAAwB,MAC9C,AAAK,EACD,IAAe,MACf,IAAM,sCACF,0CAER,KAAM,GAAW,EACb,EAAS,CAAC,EAAG,EAAQ,MAAM,GAAI,EAAQ,MAAM,GAAI,EAAQ,MAAM,KAC7D,EAAU,EAAQ,EAAK,CAAC,EAAI,MAAM,GAAI,EAAG,EAAI,MAAM,GAAI,EAAI,MAAM,KACjE,EAA4B,CAAC,EAAG,GAChC,EAA8B,CAAC,EAAG,GAElC,EAAmB,OAEnB,EAAM,GACP,EAAuB,EAAuB,EAAS,EACxD,EAAkB,EAAW,GAEjC,MAAI,GACK,EAAQ,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,KAGxC,EAAQ,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,KAGtD,KAAM,IAAS,EAAG,CAAC,aCnH1B,AAoDA,YACI,EAAmE,EACnE,EAAkB,EAClB,EACA,EAA4B,OAC5B,GACF,AAAK,EACD,EAAO,SAAW,EAAG,KACrB,IAAM,sBACE,EAAO,2BAA2B,EAAG,oBAEjD,GAAI,GAAW,EACX,EAAO,EACP,EAAe,GACnB,AAAI,EAAG,OAAS,GACd,GAAe,GACf,EAAO,EAAQ,EAAI,CAAC,EAAG,EAAG,MAAM,GAAI,EAAG,MAAM,GAAI,EAAG,MAAM,KAC1D,EAAW,CAAC,EAAG,EAAO,GAAI,EAAO,GAAI,EAAO,KAG9C,AAAK,EACD,EAAS,SAAW,EACpB,IACI,qEACG,EAAS,WACpB,AAAK,EACD,EAAK,OAAS,EACd,IAAM,4DACM,EAAK,QACrB,AAAK,EACD,EAAO,OAAS,EAChB,IAAM,gEACM,EAAO,QACvB,KAAM,GAAU,IAAe,OAAS,EAAS,GAAK,EAAS,GACzD,EAAW,IAAe,OAAS,EAAK,MAAM,GAAK,EAAK,MAAM,GACpE,AAAK,EACD,IAAY,EAAO,MAAM,GACzB,IAAM,4CAA4C,wCACd,EAAO,MAAM,OACrD,AAAK,EACD,IAAa,EAAO,MAAM,GAC1B,IAAM,6CAA6C,yCACd,EAAO,MAAM,OACtD,AAAI,GAAmB,MACrB,AAAK,EACD,AAAK,EAAM,GACX,IAAM,+EACiB,iBAA+B,MAG5D,KAAM,GAA+B,CAAC,EAAS,KAC7C,KAAM,GAAY,EAEZ,EAAc,AAAU,GAAwB,GAChD,EAAW,AAAU,GACvB,EAAU,EAAO,MAAO,EAAS,EAAW,EAAK,EAAiB,GAClE,GAEE,EAAM,EAAQ,eAAe,EAAM,EAAQ,GAEjD,SAAK,CAAC,EAAM,IAEL,GAGH,EAAoC,CAAC,GAAI,EAAM,UAE/C,EACF,CAAC,UAAS,MAAK,aAAY,kBAAiB,WAAY,GAEtD,EAAM,EAAO,cACf,EAAS,EAAgC,KACzC,GAAqB,GAEzB,MAAI,GACK,EAAQ,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,KAEtD,EAGF,KAAM,IAAsB,EAAG,CAAC,0BCzFvC,YACI,EAAiB,EACjB,EACA,EAAkC,EAClC,GACF,KAAM,GAAK,EAAgB,EAAG,IAAK,mBAC7B,EAAU,EAAgB,EAAQ,SAAU,mBAElD,MAAO,IACH,EAAa,EAAI,EAAS,EAAS,EAAK,OAAQ,GAG/C,KAAM,IAAkB,EAAG,CAAC,sBCvDnC,AA8DA,YACI,EAAiB,EACjB,EAA0C,EAC1C,EAA8B,QAC9B,EAA6C,CAAC,EAAG,EAAG,IACtD,KAAM,GAAK,EAAgB,EAAG,IAAK,UAC7B,EAAU,EAAgB,EAAQ,SAAU,UAElD,GAAI,GAAM,EACN,EAAe,GAEnB,AAAI,EAAG,OAAS,GACd,GAAe,GACf,EAAM,EAAQ,EAAI,CAAC,EAAG,EAAG,MAAM,GAAI,EAAG,MAAM,GAAI,EAAG,MAAM,GAAI,EAAG,MAAM,MAExE,AAAK,EACD,EAAI,OAAS,EACb,IAAM,uDAAuD,EAAI,SACrE,AAAK,EACD,EAAQ,OAAS,EACjB,IAAM,wDACC,EAAQ,SACnB,AAAK,EACD,EAAI,MAAM,KAAO,EAAQ,MAAM,GAC/B,IAAM,oCAAoC,EAAI,MAAM,yCACtB,EAAQ,MAAM,OAChD,AAAK,EACD,GAA+B,EAAS,GACxC,IAAM,uEACa,oBAA0B,MACjD,AAAK,EACD,IAAe,QACf,IAAM,sCACF,4CAER,KAAM,GAA+B,CAAC,EAAS,KAC7C,KAAM,GAAW,AAAU,GACvB,EAAI,MAAO,EAAQ,MAAO,EAAS,EAAW,GAC5C,EAAM,EAAQ,OAAO,EAAK,EAAS,GAEzC,SAAK,CAAC,EAAK,IAEJ,GAGH,EAAuB,CAAC,EAAG,EAAK,OAAQ,GAExC,EAAqB,CAAC,UAAS,MAAK,aAAY,aAEhD,EAAM,EAAO,cACf,EAAS,EAAgC,KAAiB,GAC1D,GAEJ,MAAI,GACK,EACI,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,KAGhE,EAGF,KAAM,IAAS,EAAG,CAAC,aC3H1B,AA6CA,YACI,EAGA,EAAO,EAAkB,EACzB,GACF,AAAK,EACD,EAAO,SAAW,EAAG,KACrB,IAAM,sBACE,EAAO,2BAA2B,EAAG,oBAEjD,GAAI,GAAW,EACX,EAAO,EACP,EAAe,GACnB,AAAI,EAAG,OAAS,GACd,GAAe,GACf,EAAO,EAAQ,EAAI,CAAC,EAAG,EAAG,MAAM,GAAI,EAAG,MAAM,GAAI,EAAG,MAAM,GAAI,EAAG,MAAM,KACvE,EAAW,CAAC,EAAG,EAAO,GAAI,EAAO,GAAI,EAAO,GAAI,EAAO,KAGzD,KAAM,GAAU,EAAS,GACnB,EAAW,EAAK,MAAM,GAC5B,AAAK,EACD,EAAS,SAAW,EACpB,IACI,qEACG,EAAS,WACpB,AAAK,EACD,EAAK,OAAS,EACd,IAAM,4DACM,EAAK,QACrB,AAAK,EACD,EAAO,OAAS,EAChB,IAAM,gEACM,EAAO,QACvB,AAAK,EACD,IAAY,EAAO,MAAM,GACzB,IAAM,4CAA4C,wCACd,EAAO,MAAM,OACrD,AAAK,EACD,IAAa,EAAO,MAAM,GAC1B,IAAM,6CAA6C,yCACd,EAAO,MAAM,OAEtD,KAAM,GAA+B,IACnC,KAAM,GAAY,EAEZ,EAAW,AAAU,GACvB,EAAU,EAAO,MAAO,EAAS,EAAW,GAEhD,MAAO,GAAQ,eAAe,EAAM,EAAQ,IAGxC,EAAoC,CAAC,GAAI,GAEzC,EAAkC,CAAC,OAEnC,EAAM,EAAO,cACf,EAAS,EAAgC,KAAM,GAC/C,GAEJ,MAAI,GACK,EACI,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,KAGhE,EAGF,KAAM,IAAsB,EAAG,CAAC,0BCzEvC,YACI,EAAiB,EACjB,EAGA,EAA0C,GAC5C,KAAM,GAAK,EAAgB,EAAG,IAAK,mBAC7B,EAAU,EAAgB,EAAQ,SAAU,mBAElD,MAAO,IAAoB,EAAa,EAAI,EAAS,EAAS,GAGzD,KAAM,IAAkB,EAAG,CAAC,sBCrDnC,AAqCA,YAAgC,GAC9B,KAAM,GAAK,EAAgB,EAAG,IAAK,OAE7B,EAAoB,CAAC,EAAG,GAE9B,MAAO,GAAO,cAAc,CAAC,EAAS,KACpC,KAAM,GAAM,EAAQ,IAAI,GACxB,SAAK,CAAC,IACC,GACN,EAAgC,KAAiB,IAE/C,KAAM,IAAM,EAAG,CAAC,UChDvB,AAqCA,YAAiC,GAC/B,KAAM,GAAK,EAAgB,EAAG,IAAK,QAC7B,EAAqB,CAAC,EAAG,GAE/B,MAAO,GAAO,cAAc,CAAC,EAAS,KACpC,KAAM,GAAM,EAAQ,KAAK,GACzB,SAAK,CAAC,IACC,GACN,EAAgC,KAAiB,IAE/C,KAAM,IAAO,EAAG,CAAC,WC/CxB,AAoDA,YACI,EAAsB,EAAO,EAAG,EAAY,GAAO,EAAU,IAC/D,KAAM,GAAK,EAAgB,EAAG,IAAK,UAE7B,EACF,CAAC,EAAwB,KACvB,KAAM,GAAc,GAAmB,CAAC,GAAO,EAAG,MAClD,GAAI,GAAY,EAChB,AAAI,GAAe,MACjB,GAAY,EAAU,EAAI,IAE5B,KAAM,GAAe,GAAiB,EAAG,EAAG,MAAM,GAClD,GAAI,GAAQ,EAAQ,OAAO,EAAW,EAAc,EAAW,GAG/D,GAFA,EAAK,CAAC,IAEF,GAAe,MACjB,KAAM,GAAqB,GAAuB,GAClD,EAAQ,EAAU,EAAO,GAE3B,MAAO,IAGP,EAAuB,CAAC,EAAG,GAC3B,EAAqB,CAAC,OAAM,YAAW,WAE7C,MAAO,GAAO,cACH,EAAS,EAAgC,KAAiB,GAC1D,GAGN,KAAM,IAAS,EAAG,CAAC,aClF1B,AAgEA,YACI,EAA0B,EAC1B,EAA4B,QAC9B,KAAM,GAAK,EAAgB,EAAG,IAAK,gBAE7B,EAAe,IAAe,OAAU,EAAG,MAAM,GAAK,EAAG,MAAM,GAC/D,EAAc,IAAe,OAAU,EAAG,MAAM,GAAK,EAAG,MAAM,GAC9D,EAAc,IAAe,OAAU,EAAG,MAAM,GAAK,EAAG,MAAM,GAEpE,AAAK,EACD,EAAc,GAAa,EAC3B,IAAM;MACN,SAAmB;MACnB,EAAG,SAEP,AAAK,EACD,EAAa,GAAa,EAC1B,IAAM;MACN,SAAkB;UACd,EAAG,SAEX,AAAK,EACA,EAAc,GAAY,KAAe,EAC1C,IAAM,8CACF,EAAY,YACZ,uCAAgD,EAAG,SAE3D,KAAM,GAAiC,GACnC,EAAQ,aAAa,EAAI,EAAW,GAElC,EAA6B,CAAC,EAAG,GACjC,EAA2B,CAAC,YAAW,cAE7C,MAAO,GAAO,cACV,EAAS,EAAgC,KACzC,GAAc,GAGb,KAAM,IAAe,EAAG,CAAC,mBCtGhC,AA0EA,YACI,EAAiB,EACjB,EAAkC,EAClC,EAA4B,OAC5B,EAAqC,CAAC,EAAG,GACzC,GACF,KAAM,GAAK,EAAgB,EAAG,IAAK,mBAC7B,EAAU,EAAgB,EAAQ,SAAU,mBAElD,GAAI,GAAM,EACN,EAAe,GACnB,AAAI,EAAG,OAAS,GACd,GAAe,GACf,EAAM,EAAQ,EAAI,CAAC,EAAG,EAAG,MAAM,GAAI,EAAG,MAAM,GAAI,EAAG,MAAM,MAE3D,AAAK,EACD,EAAI,OAAS,EACb,IAAM,gEACM,EAAI,SACpB,AAAK,EACD,EAAQ,OAAS,EACjB,IAAM,iEACC,EAAQ,SACnB,AAAK,EACD,EAAI,MAAM,KAAO,EAAQ,MAAM,GAC/B,IAAM,uDACE,EAAI,MAAM,qDACJ,EAAQ,MAAM,OAEhC,AAAI,GAAmB,MACrB,AAAK,EACD,AAAK,EAAM,GACX,IAAM,gFACiB,iBAA+B,MAG5D,KAAM,GAA+B,CAAC,EAAS,KAC7C,AAAI,GAAa,MACf,GAAY,CAAC,EAAG,IAGlB,AAAK,EACD,AAAU,GAA+B,EAAS,GAClD,IAAM,gFACgB,oBAA0B,MAEpD,KAAM,GAAW,AAAU,GACvB,EAAI,MAAO,EAAQ,MAAO,EAAS,EAAW,EAAK,EACnD,IACE,EAAM,EAAQ,gBAAgB,EAAK,EAAS,GAClD,SAAK,CAAC,EAAK,IACJ,GAGH,EAAsC,CAAC,EAAG,EAAK,OAAQ,GACvD,EACF,CAAC,UAAS,MAAK,aAAY,YAAW,mBAEpC,EAAM,EAAO,cACf,EAAS,EAAgC,KACzC,GAAuB,GAE3B,MAAI,GACK,EAAQ,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,KAEtD,EAGF,KAAM,IAAkB,EAAG,CAAC,sBC9InC,AA+CA,YAAe,GACb,KAAM,GAAK,EAAgB,EAAG,IAAK,QAE7B,EAA+B,IACnC,KAAM,GAAO,EAAQ,EAAI,CAAC,EAAG,OACvB,EAAS,EAAQ,KAAK,GACtB,EAAW,CAAC,GAAG,EAAE,MAAO,GAAG,EAAE,OAEnC,MAAO,GAAQ,EAAQ,IAGnB,EAAqB,CAAC,EAAG,GAE/B,MAAO,GAAO,cACV,EAAS,EAAgC,KAAiB,IAGzD,KAAM,IAAO,EAAG,CAAC,WChExB,AA2DA,YACI,EAAiB,EACjB,EAAkC,EAClC,EAAqC,CAAC,EAAG,GACzC,EAAqB,QACvB,KAAM,GAAK,EAAgB,EAAG,IAAK,cAC7B,EAAU,EAAgB,EAAQ,SAAU,cAElD,AAAK,EACD,EAAG,OAAS,GAAK,EAAG,OAAS,EAC7B,IAAM,gEACC,EAAG,SACd,AAAK,EACD,EAAQ,OAAS,EACjB,IAAM,4DACC,EAAQ,SACnB,AAAK,EACD,IAAe,OACf,IAAM,gFACuB,KAEjC,GAAI,GAAM,EACN,EAAe,GAEnB,AAAI,EAAG,OAAS,GACd,GAAM,EAAQ,EAAI,CAAC,EAAG,EAAG,MAAM,GAAI,EAAG,MAAM,GAAI,EAAG,MAAM,KACzD,EAAe,IAGjB,KAAM,GAA2B,CAAC,EAAG,EAAK,OAAQ,GAC5C,EAAyB,CAAC,UAAS,MAAK,aAExC,EAAM,EAAO,UACH,GAAY,EACZ,GAEhB,MAAI,GACK,EAAQ,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,KAGtD,EAGF,KAAM,IAAa,EAAG,CAAC,iBCtG9B,AAoDA,YACI,EAAsB,GACxB,GAAI,GAAK,EAAgB,EAAG,IAAK,YAC7B,EAAK,EAAgB,EAAG,IAAK,YACjC,CAAC,EAAI,GAAM,EAAe,EAAI,GAE9B,KAAM,GAA+B,CAAC,EAAS,KAC7C,KAAM,GAAM,EAAQ,SAAS,EAAI,GACjC,SAAK,CAAC,EAAI,IACH,GAEH,EAAyB,CAAC,EAAG,EAAI,EAAG,GAE1C,MAAO,GAAO,cACH,EAAS,EAAgC,KACzC,IAGN,KAAM,IAAW,EAAG,CAAC,eCtE5B,AAmDA,YAAgC,EAAsB,GACpD,GAAI,GAAK,EAAgB,EAAG,IAAK,OAC7B,EAAK,EAAgB,EAAG,IAAK,OAGjC,GAFA,CAAC,EAAI,GAAM,EAAe,EAAI,GAE1B,EAAG,QAAU,SAAW,EAAG,QAAU,QACvC,MAAO,IAAS,EAAI,GAGtB,KAAM,GAA+B,CAAC,EAAS,KAC7C,KAAM,GAAM,EAAQ,WAAW,EAAI,GACnC,SAAK,CAAC,EAAI,IACH,GAGH,EAAoB,CAAC,EAAG,EAAI,EAAG,GAC/B,EAAQ,GAEd,MAAO,GAAO,cACH,EAAS,EAAgC,KAAqB,GAC9D,GAGN,KAAM,GAAM,EAAG,CAAC,UC1EvB,AA0BM,YACF,EAAmB,GACrB,KAAM,GAAS,EAAQ,OACjB,EAAiB,GACvB,OAAS,GAAI,EAAG,EAAI,EAAQ,KAC1B,KAAM,GAAM,EAAS,EAAI,EACnB,EAAI,EAAQ,IAAQ,EACpB,EAAI,EAAS,EAAS,OAAS,EAAI,IAAM,EAC/C,AAAI,EAAI,GAAK,IAAM,GACjB,EAAK,QAAQ,GAGjB,MAAO,GAOH,YACF,EAAmB,GACrB,KAAM,GAAmB,GACzB,OAAS,GAAI,EAAG,EAAI,EAAS,OAAQ,KACnC,KAAM,GAAQ,EAAQ,EAAQ,OAAS,EAAI,GACrC,EAAU,EAAS,OAAS,EAAI,EAChC,EAAS,EAAS,GACxB,AAAI,IAAS,MAAS,IAAU,GAAK,EAAS,IAC5C,EAAO,QAAQ,GAGnB,MAAO,GAGH,WACF,EAAkB,GACpB,KAAM,GAAmB,GACnB,EAAI,KAAK,IAAI,EAAO,OAAQ,EAAO,QAEzC,OAAS,GAAI,EAAG,EAAI,EAAG,KACrB,GAAI,GAAI,EAAO,EAAO,OAAS,EAAI,GACnC,AAAI,GAAK,MACP,GAAI,GAEN,GAAI,GAAI,EAAO,EAAO,OAAS,EAAI,GAInC,GAHA,AAAI,GAAK,MACP,GAAI,GAEF,IAAM,EACR,EAAO,QAAQ,WACN,IAAM,EACf,EAAO,QAAQ,WACN,IAAM,GACf,KAAM,GAAS,wDACR,SAAc,KACrB,KAAM,OAAM,OAEZ,GAAO,QAAQ,GAGnB,MAAO,GCrFT,AAyCA,YACI,EAAsB,GACxB,GAAI,GAAK,EAAgB,EAAG,IAAK,SAC7B,EAAK,EAAgB,EAAG,IAAK,SACjC,CAAC,EAAI,GAAM,EAAe,EAAI,GAE9B,EAA2B,EAAG,MAAO,EAAG,OAExC,KAAM,GAA+B,GAAW,EAAQ,MAAM,EAAI,GAE5D,EAAsB,CAAC,EAAG,EAAI,EAAG,GAEvC,MAAO,GAAO,cACH,EAAS,EAAgC,KAAM,IAGrD,KAAM,IAAQ,EAAG,CAAC,YCzDzB,AAmDA,YACI,EAA8B,EAAiB,GACjD,KAAM,GAAK,EAAgB,EAAG,IAAK,SAC7B,EAAK,EAAgB,EAAG,IAAK,SAC7B,EAAa,EAAgB,EAAW,YAAa,QAAS,QAI9D,EAAiB,EAA2B,EAAG,MAAO,EAAG,OACzD,EAAgB,GAAY,EAAI,GAChC,EAAgB,GAAY,EAAI,GACtC,AAAI,EAAW,OAAS,GAGtB,EACI,EAAW,MAAM,KAAO,EAAG,MAAM,GACjC,IAAM,kEAGZ,AAAI,EAAW,OAAS,GAEtB,EACI,EAAW,MAAO,EAAc,MAAO,oBAG7C,KAAM,GAA+B,CAAC,EAAS,KAC7C,KAAM,GAAM,EAAQ,OAAO,EAAY,EAAe,GACtD,SAAK,CAAC,IACC,GAEH,EAAyB,CAC7B,UAAW,EACX,EAAG,EACH,EAAG,GAEL,MAAO,GAAO,cACH,EAAS,EAAqC,KAC9C,IAGN,KAAM,IAAQ,EAAG,CAAC,YC3FzB,AAsCA,YAAsC,GACpC,KAAM,GAAK,EAAgB,EAAG,IAAK,aAC7B,EAA0B,CAAC,EAAG,GACpC,MAAO,GAAO,cACH,GAAW,EAAQ,UAAU,GAAK,EAClC,KAAiB,IAEvB,KAAM,GAAY,EAAG,CAAC,gBC7C7B,AAyDA,YACI,EAAsB,GAExB,GAAI,GAAK,EAAgB,EAAG,IAAK,OAC7B,EAAK,EAAgB,EAAG,IAAK,OACjC,CAAC,EAAI,GAAM,EAAe,EAAI,GAE9B,KAAM,GAAY,EAAI,EAAI,GACpB,EAAQ,EAAU,GAClB,EAAc,GAAM,EAAI,GAC9B,MAAO,IAAM,EAAa,EAAO,GAG5B,KAAM,IAAW,EAAG,CAAC,eCtE5B,AA0CA,YAAc,EAAuB,GACnC,KAAM,GAAM,EAAgB,EAAI,KAAM,OAChC,EAAM,EAAgB,EAAI,KAAM,OAEtC,AAAK,EACA,GAAI,OAAS,GAAK,EAAI,OAAS,IAAO,GAAI,OAAS,GAAK,EAAI,OAAS,GACtE,IAAM,+DACC,EAAI,YAAY,EAAI,SAE/B,KAAM,GAAW,EAAI,OAAS,EAAI,EAAI,KAAO,EAAI,MAAM,GACjD,EAAW,EAAI,OAAS,EAAI,EAAI,KAAO,EAAI,MAAM,GAOvD,GALA,AAAK,EACD,IAAY,EACZ,IAAM,gEACC,SAAe,MAEtB,EAAI,OAAS,GAAK,EAAI,OAAS,GACjC,KAAM,GAAO,EAAQ,EAAK,CAAC,EAAG,KACxB,EAAO,EAAQ,EAAK,CAAC,GAAI,IACzB,EAAO,EAAO,EAAM,GAC1B,MAAO,GAAQ,EAAM,YACZ,EAAI,OAAS,GAAK,EAAI,OAAS,GACxC,KAAM,GAAO,EAAQ,EAAK,CAAC,EAAG,KACxB,EAAO,EAAQ,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,KAC7C,EAAO,EAAO,EAAM,GAC1B,MAAO,GAAQ,EAAM,CAAC,EAAK,eAClB,EAAI,OAAS,GAAK,EAAI,OAAS,GACxC,KAAM,GAAO,EAAQ,EAAK,CAAC,GAAI,IACzB,EAAO,EAAO,EAAK,GACzB,MAAO,GAAQ,EAAM,CAAC,EAAK,YAE3B,KAAM,GAAO,EAAQ,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,KAC7C,EAAO,EAAO,EAAK,GACzB,MAAO,IAIJ,KAAM,IAAM,EAAG,CAAC,UChFvB,AAqCA,YAAgC,GAC9B,KAAM,GAAK,EAAgB,EAAG,IAAK,OAE7B,EAA+B,CAAC,EAAS,KAC7C,KAAM,GAAI,EAAQ,IAAI,GACtB,SAAK,CAAC,IACC,GAGH,EAAoB,CAAC,EAAG,GAE9B,MAAO,GAAO,cACH,EAAS,EAAgC,KAAiB,IAIhE,KAAM,IAAM,EAAG,CAAC,UCrDvB,AAwCA,YAAgC,GAC9B,GAAI,GAAK,EAAgB,EAAG,IAAK,OACjC,AAAK,EACD,EAAG,QAAU,SAAW,EAAG,QAAU,UACrC,IAAM,6CAEV,AAAI,EAAG,QAAU,SACf,GAAK,EAAK,EAAI,YAGhB,KAAM,GAAoB,CAAC,EAAG,GAC9B,MAAO,GAAO,cAAc,CAAC,EAAS,KACpC,KAAM,GAAM,EAAQ,IAAI,GACxB,SAAK,CAAC,IACC,GACN,EAAgC,KAAiB,IAE/C,KAAM,IAAM,EAAG,CAAC,UCzDvB,AAqCA,YAAgC,GAC9B,KAAM,GAAK,EAAgB,EAAG,IAAK,OAE7B,EAAoB,CAAC,EAAG,GAC9B,MAAO,GAAO,cAAc,CAAC,EAAS,KACpC,KAAM,GAAM,EAAQ,IAAI,GACxB,SAAK,CAAC,IACC,GACN,EAAgC,KAAiB,IAE/C,KAAM,IAAM,EAAG,CAAC,UC/CvB,AAwCA,YAAuC,EAAsB,EAAO,GAClE,KAAM,GAAoB,KACpB,EAAK,EAAgB,EAAG,IAAK,aAAc,GAEjD,AAAK,EAAO,GAAQ,EAAG,KAAM,IAAM,sCACnC,KAAM,GAAW,EAAG,MAAM,QAC1B,MAAI,GAAO,GAET,CAAK,EACD,CAAE,GAAG,KAAO,IAAM,EAClB,IAAM,iCAAiC,CAAG,GAAG,KAAO,OAAO,EAAG,SAClE,EAAO,EAAG,KAAO,EAAO,GAE1B,EAAS,OAAO,EAAM,EAAG,GAClB,EAAQ,EAAI,GAGd,KAAM,IAAa,EAAG,CAAC,iBCzD9B,AAsCA,YAAkC,GAChC,KAAM,GAAK,EAAgB,EAAG,IAAK,SAE7B,EAAsB,CAAC,EAAG,GAChC,MAAO,GAAO,cAAc,CAAC,EAAS,KACpC,KAAM,GAAM,EAAQ,MAAM,GAC1B,SAAK,CAAC,IACC,GACN,EAAgC,KAAiB,IAE/C,KAAM,IAAQ,EAAG,CAAC,YChDzB,AAoDA,YAAiC,EAAiB,GAChD,KAAM,GAAoB,KACpB,EAAK,EAAgB,EAAG,IAAK,OAAQ,GAC3C,AAAK,EACD,EAAG,OAAS,EAAK,OACjB,IAAM,qCAAqC,EAAG,kCACb,MAErC,KAAM,GAA0B,CAAC,EAAS,KACxC,KAAM,GAAM,EAAQ,KAAK,EAAI,GAC7B,SAAK,CAAC,IACC,GAGH,EAAe,CAAC,GAChB,EAAqB,CAAC,EAAG,GACzB,EAAmB,CAAC,QAE1B,MAAO,GAAO,cACV,EAAS,EAAqC,KAAiB,GAC/D,EAAkC,GAGjC,KAAM,IAAO,EAAG,CAAC,WC3ExB,AAuCA,YACI,EAAiB,EACjB,EAKA,EAAkB,WACpB,AAAI,GAAc,MAChB,GAAa,GAEf,KAAM,GAAO,GAAO,CAAC,EAAS,GAAa,GACrC,EAAI,GAAW,EAAa,EAAU,EAC5C,OAAS,GAAI,EAAG,EAAI,EAAG,EAAE,EACvB,EAAK,IAAI,EAAG,EAAG,GAEjB,KAAM,GAAgB,EAAQ,EAAK,WAAY,CAAC,EAAS,IACzD,GAAI,GAAc,KAChB,MAAO,GAEP,GAAI,EAAW,SAAW,EACxB,MAAO,IAAK,GAAW,EAAK,GAAI,CAAC,EAAW,GAAI,EAAG,IAC9C,GAAI,EAAW,SAAW,EAE/B,MAAO,IACI,GAAW,GAAW,EAAK,GAAI,GAC/B,CAAC,EAAW,GAAI,EAAW,GAAI,EAAG,IACxC,GAAI,EAAW,SAAW,EAE/B,MAAO,IAAK,GAAW,GAAW,GAAW,EAAK,GAAI,GAAI,GAAI,CACrD,EAAW,GAAI,EAAW,GAAI,EAAW,GAAI,EAAG,IAGzD,KAAM,IAAI,OACN,qEAE8B,EAAmB,YAKpD,KAAM,IAAM,EAAG,CAAC,UChFvB,AA0CA,YAAc,GACZ,EACI,EAAM,QAAU,YAChB,IAAM,6DACS,EAAM,UAEzB,KAAM,GAAoB,CAAC,SAE3B,MAAO,GAAO,cAAc,IAE1B,KAAM,GAAqB,EAAM,MAAM,EAAM,MAAM,OAAS,GACtD,EAAQ,EAAM,KAAO,EAErB,EAAU,EAAM,KAAK,EAAO,GAC5B,EAAS,EAAQ,IAAI,GAC3B,MAAO,GAAO,QAAQ,EAAM,QAC3B,EAAgC,KAAqB,IAGnD,KAAM,IAAM,EAAG,CAAC,UC7DvB,AAoCA,YACI,EAAoB,EAAsB,GAC5C,KAAM,GAAmB,CAAC,QAAO,QAAO,SAExC,MAAO,GAAO,cACV,GAAW,EAAQ,KAAK,EAAO,EAAO,GAAQ,GAAI,KAAM,GACxD,GC1CN,AAoCA,YAAkC,GAChC,KAAM,GAAK,EAAgB,EAAG,IAAK,SAE7B,EAAsB,CAAC,EAAG,GAChC,MAAO,GAAO,cACV,GAAW,EAAQ,MAAM,GAAK,EAC9B,KAAiB,IAEhB,KAAM,IAAQ,EAAG,CAAC,YC5CzB,AAuBO,KAAM,IAAwB,GAQ/B,YAAmC,GACvC,MAAI,IAAU,GACL,EAEF,GAAe,EAAQ,KAAK,MAAM,KAAK,KAAK,KCnCrD,iHA6BM,YACF,EAAgB,GAClB,GAAI,GAAO,GACP,EASJ,IAPA,AAAI,GAAU,GACZ,GAAM,EACN,EAAO,IAEP,EAAM,GAAe,EAAQ,KAAK,MAAM,KAAK,KAAK,KAG7C,CAAC,GACN,AAAI,EAAM,GAAe,IAAQ,EAC/B,EAAO,GAEP,EAAM,GAAe,EAAQ,EAAM,GAGvC,MAAO,GAGH,YACF,EAAkB,EAAc,GAClC,KAAM,GAAW,GACX,EAAO,EAAO,OACpB,OAAS,GAAM,EAAG,EAAM,EAAM,IAC5B,AAAI,IAAQ,EACV,EAAS,KAAK,EAAO,IAErB,EAAS,KAAK,GAGlB,MAAO,GASH,YACF,EAAW,EAAiB,GAC9B,KAAM,GAAU,EAAE,MAAM,GAElB,EAAwB,GAC9B,GAAI,GAAY,EACZ,EAAY,EAChB,OAAS,GAAI,EAAG,EAAI,EAAM,IACxB,EAAY,KAAK,EAAE,MAAM,IACzB,GAAa,EAAE,MAAM,GAGvB,OAAS,GAAI,EAAG,EAAI,EAAQ,KAAM,IAChC,EAAY,KAAK,EAAQ,MAAM,IAGjC,OAAS,GAAI,EAAO,EAAG,EAAI,EAAE,KAAM,IACjC,EAAY,KAAK,EAAE,MAAM,IACzB,GAAa,EAAE,MAAM,GAGvB,MAAO,CAAC,YAAW,YAAW,UAAS,eC5FzC,AAmDA,YACI,EAAiB,EAA4B,EAAO,GACtD,KAAM,GAAK,EAAgB,EAAG,IAAK,UAC7B,EAAW,EAAgB,EAAS,UAAW,SAAU,SAEzD,EAAyB,CAAC,EAAG,EAAI,QAAS,GAC1C,EAAuB,CAAC,QAExB,EAA+B,CAAC,EAAS,KAC7C,KAAM,GAAa,EAAe,EAAM,EAAG,OAAO,GAC5C,EAAY,GAAyB,EAAI,EAAU,GAEnD,EACF,EAAQ,OAAO,EAAI,EAAQ,EAAU,CAAC,EAAS,OAAQ,GAC3D,SAAK,CAAC,EAAI,IAEH,EAAQ,EAAK,EAAU,cAGhC,MAAO,GAAO,cACH,EAAS,EAAgC,KAAiB,GAC1D,GAGN,KAAM,IAAS,EAAG,CAAC,aC3E1B,AAyCA,YACI,EAAsB,GACxB,GAAI,GAAK,EAAgB,EAAG,IAAK,WAC7B,EAAK,EAAgB,EAAG,IAAK,WACjC,CAAC,EAAI,GAAM,EAAe,EAAI,GAE9B,EAA2B,EAAG,MAAO,EAAG,OAExC,KAAM,GAA+B,GAAW,EAAQ,QAAQ,EAAI,GAE9D,EAAwB,CAAC,EAAG,EAAI,EAAG,GAEzC,MAAO,GAAO,cACH,EAAS,EAAgC,KACzC,IAGN,KAAM,IAAU,EAAG,CAAC,cC1D3B,AAyCA,YACI,EAAsB,GACxB,GAAI,GAAK,EAAgB,EAAG,IAAK,gBAC7B,EAAK,EAAgB,EAAG,IAAK,gBACjC,CAAC,EAAI,GAAM,EAAe,EAAI,GAE9B,EAA2B,EAAG,MAAO,EAAG,OAExC,KAAM,GAA+B,CAAC,EAAS,KAC7C,KAAM,GAAM,EAAQ,aAAa,EAAI,GACrC,SAAK,CAAC,EAAI,IACH,GAGH,EAA6B,CAAC,EAAG,EAAI,EAAG,GAE9C,MAAO,GAAO,cACH,EAAS,EAAgC,KACzC,IAGN,KAAM,IAAe,EAAG,CAAC,mBC9DhC,AA2CA,YAAe,GACb,EACI,EAAM,QAAU,YAChB,IAAM,8DACS,EAAM,UAEzB,KAAM,GAAqB,CAAC,SAE5B,MAAO,GAAO,cAAc,IAE1B,KAAM,GAAqB,EAAM,MAAM,EAAM,MAAM,OAAS,GACtD,EAAQ,EAAM,KAAO,EAErB,EAAoB,EAAQ,EAAO,CAAC,EAAO,IAC3C,EAAS,EAAQ,KAAK,GAC5B,MAAO,GAAQ,EAAQ,EAAM,QAC5B,EAAgC,KAAqB,IAGnD,KAAM,IAAO,EAAG,CAAC,WC9DxB,AAqCA,YAAiC,GAC/B,KAAM,GAAS,EAAgB,EAAO,QAAS,QAEzC,EAA+B,AAAC,GAC7B,EAAQ,KAAK,GAGhB,EAAqB,CAAC,MAAO,GACnC,MAAO,GAAO,cACH,EAAS,EAAgC,KACzC,IAGN,KAAM,IAAO,EAAG,CAAC,WClDxB,AAuCA,YAAiC,GAC/B,KAAM,GAAS,EAAgB,EAAO,QAAS,QAEzC,EAA+B,AAAC,GAC7B,EAAQ,KAAK,GAGhB,EAAqB,CAAC,MAAO,GACnC,MAAO,GAAO,cACH,EAAS,EAAgC,KACzC,IAGN,KAAM,IAAO,EAAG,CAAC,WCpDxB,AA4DA,YACI,EAAiB,GACnB,KAAM,GAAK,EAAgB,EAAG,IAAK,WAE7B,EAA+B,AAAC,IACpC,KAAM,GAAO,EAAe,EAAM,EAAG,OACrC,GAAI,EAAG,OAAS,EACd,MAAO,IAAM,GAEf,KAAM,GAAM,EAAQ,QAAQ,EAAI,GAChC,MAAO,GAAQ,EAAK,EAAG,QAGnB,EAAwB,CAAC,EAAG,GAC5B,EAAsB,CAAC,KAAM,GAEnC,MAAO,GAAO,cACH,EAAS,EAAgC,KACzC,GAAS,GAGf,KAAM,IAAU,EAAG,CAAC,cCjF3B,AAoCM,WACF,EAAyC,GAC3C,GAAM,IAAa,IAAU,IAAU,UAAa,MAAM,QAAQ,KAC9D,IAAU,YACZ,KAAM,IAAI,OACN,kFAGN,GAAI,IAAU,UAAY,GAAa,IACnC,CAAE,aAAiB,aACrB,KAAM,IAAI,OACN,6EAGN,KAAM,GAAkB,GAClB,EAA0B,GAChC,MAAO,IAAW,EAAO,EAAO,EAAe,GCpDjD,AAiDA,YAAgB,GACd,KAAM,GAAqB,EAAM,MAAM,EAAM,MAAM,OAAS,GACtD,EAAQ,EAAM,KAAO,EAC3B,GAAI,GACJ,GAAI,GAAsB,GACxB,KAAM,GAAe,EAAQ,EAAO,CAAC,EAAO,IAC5C,EAAM,GAAK,QAIX,KAAM,GAAc,CAAC,EAAO,EAAK,GAAqB,IAChD,EAAY,EAAQ,GAAK,GAAQ,CAAC,EAAO,IACzC,EAAY,EAAQ,GAAK,GAAQ,CAAC,EAAO,IAEzC,EACF,GAAQ,EAAM,EAAW,CAAC,EAAG,GAAI,CAAC,EAAO,EAAqB,IAAK,GACjE,EAA0B,EAC5B,GAAQ,EAAM,EAAW,CAAC,EAAG,GAAI,CAAC,EAAO,EAAqB,IAAK,GACnE,EAAO,KAEL,EAAI,EAAO,CAAC,EAAW,GAAgB,GACvC,EAAI,EAAO,CAAC,EAAW,GAAgB,GACvC,EACF,EAAQ,GAAQ,EAAG,GAAI,CAAC,EAAY,GAAI,EAAY,KACxD,EAAM,GAAK,GAIb,GAFA,EAAM,GAAK,GAEP,EAAM,OAAS,GAAK,EAAM,MAAM,KAAO,GACzC,KAAM,GAAO,EACP,EAAQ,EAAM,MAAM,GAC1B,EAAM,EAAQ,EAAK,CAAC,EAAO,EAAI,MAAM,GAAK,EAAO,EAAI,MAAM,KAC3D,EAAK,UAEP,MAAO,GAGF,KAAM,IAAQ,EAAG,CAAC,YCtFzB,AAqCA,YAAqC,GACnC,KAAM,GAAK,EAAgB,EAAG,IAAK,YAE7B,EAAyB,CAAC,EAAG,GAEnC,MAAO,GAAO,cACV,AAAC,GAAY,EAAQ,SAAS,GAAK,EACnC,KAAiB,IAEhB,KAAM,IAAW,EAAG,CAAC,eC9C5B,AAqCA,YAAkC,GAChC,KAAM,GAAK,EAAgB,EAAG,IAAK,SAE7B,EAAsB,CAAC,EAAG,GAEhC,MAAO,GAAO,cACV,AAAC,GAAY,EAAQ,MAAM,GAAK,EAChC,KAAiB,IAEhB,KAAM,IAAQ,EAAG,CAAC,YC9CzB,AAqCA,YAAkC,GAChC,KAAM,GAAK,EAAgB,EAAG,IAAK,SAC7B,EAAsB,CAAC,EAAG,GAEhC,MAAO,GAAO,cACV,GAAW,EAAQ,MAAM,GAAK,EAC9B,KAAiB,IAEhB,KAAM,IAAQ,EAAG,CAAC,YC7CzB,AAuDA,YACI,EAAsB,GACxB,GAAI,GAAK,EAAgB,EAAG,IAAK,WAC7B,EAAK,EAAgB,EAAG,IAAK,WACjC,CAAC,EAAI,GAAM,EAAe,EAAI,GAE9B,AAAI,EAAG,QAAU,QACf,GAAK,EAAK,EAAI,SACd,EAAK,EAAK,EAAI,UAEhB,EAA2B,EAAG,MAAO,EAAG,OAExC,KAAM,GAA+B,CAAC,EAAS,KAC7C,KAAM,GAAM,EAAQ,QAAQ,EAAI,GAChC,SAAK,CAAC,EAAI,IACH,GAGH,EAAwB,CAAC,EAAG,EAAI,EAAG,GAEzC,MAAO,GAAO,cACH,EAAS,EAAgC,KACzC,IAGN,KAAM,IAAU,EAAG,CAAC,cChF3B,AA0CA,YAAsC,EAAiB,EAAQ,IAC7D,KAAM,GAAK,EAAgB,EAAG,IAAK,aACnC,MAAO,IAAQ,EAAI,EAAO,GAAQ,GAAK,GAGlC,KAAM,IAAY,EAAG,CAAC,gBC/C7B,AAwCA,YACI,EAAsB,GACxB,GAAI,GAAK,EAAgB,EAAG,IAAK,QAC7B,EAAK,EAAgB,EAAG,IAAK,QACjC,CAAC,EAAI,GAAM,EAAe,EAAI,GAE9B,EAA2B,EAAG,MAAO,EAAG,OAExC,KAAM,GAA+B,GAAW,EAAQ,KAAK,EAAI,GAE3D,EAAqB,CAAC,EAAG,EAAI,EAAG,GAEtC,MAAO,GAAO,cACH,EAAS,EAAgC,KAAiB,IAIhE,KAAM,IAAO,EAAG,CAAC,WCzDxB,AAyCA,YACI,EAAsB,GACxB,GAAI,GAAK,EAAgB,EAAG,IAAK,aAC7B,EAAK,EAAgB,EAAG,IAAK,aACjC,CAAC,EAAI,GAAM,EAAe,EAAI,GAE9B,EAA2B,EAAG,MAAO,EAAG,OAExC,KAAM,GAA+B,CAAC,EAAS,KAC7C,KAAM,GAAM,EAAQ,UAAU,EAAI,GAClC,SAAK,CAAC,EAAI,IACH,GAGH,EAA0B,CAAC,EAAG,EAAI,EAAG,GAE3C,MAAO,GAAO,cACH,EAAS,EAAgC,KACzC,IAGN,KAAM,IAAY,EAAG,CAAC,gBC9D7B,AAiCM,YAAmB,EAAe,EAAc,GACpD,GAAI,GAAO,EACT,KAAM,IAAI,OAAM,4CAGlB,KAAM,GAAuB,CAAC,QAAO,OAAM,OAC3C,MAAO,GAAO,cACV,GAAW,EAAQ,SAAS,EAAO,EAAM,GAAM,GAC/C,KAAiB,GAAU,GCzCjC,AA2CA,YACI,EAAiB,EAAc,EAAG,EAAO,EAAG,EAAQ,EAAG,EAAO,IAChE,KAAM,GAAK,EAAgB,EAAG,IAAK,8BACnC,AAAK,EACD,EAAG,OAAS,GAAK,EAAG,OAAS,EAC7B,IAAM;sBACU,EAAG,SACvB,AAAK,EACD,AAAK,EAAM,GACX,IAAM,2FAC6B,MAEvC,GAAI,GAAM,EACN,EAAe,GACnB,AAAI,EAAG,OAAS,GACd,GAAe,GACf,EAAM,EAAQ,EAAI,CAAC,EAAG,EAAG,MAAM,GAAI,EAAG,MAAM,GAAI,EAAG,MAAM,MAG3D,KAAM,GAA+B,CAAC,EAAS,KAC7C,KAAM,GAAI,EAAQ,6BACd,EAAK,EAAa,EAAM,EAAO,GAEnC,SAAK,CAAC,EAAK,IAEJ,GAGH,EAAoB,CAAC,EAAG,GAExB,EAAkB,CAAC,cAAa,OAAM,QAAO,QAE7C,EAAM,EAAO,cACf,EAAS,EAAgC,KAAiB,GAC1D,GAEJ,MAAI,GACK,EAAQ,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,KAEpD,EAIJ,KAAM,IAA6B,EAAG,CAAC,iCCtF9C,AAqCA,YAAgC,GAC9B,KAAM,GAAK,EAAgB,EAAG,IAAK,OAE7B,EAAoB,CAAC,EAAG,GAC9B,MAAO,GAAO,cAAc,CAAC,EAAS,KACpC,KAAM,GAAM,EAAQ,IAAI,GACxB,SAAK,CAAC,IACC,GACN,EAAgC,KAAiB,IAE/C,KAAM,IAAM,EAAG,CAAC,UC/CvB,AAsCA,YAAkC,GAChC,KAAM,GAAK,EAAgB,EAAG,IAAK,SAE7B,EAAsB,CAAC,EAAG,GAChC,MAAO,GAAO,cAAc,CAAC,EAAS,KACpC,KAAM,GAAM,EAAQ,MAAM,GAC1B,SAAK,CAAC,IACC,GACN,EAAgC,KAAiB,IAE/C,KAAM,IAAQ,EAAG,CAAC,YChDzB,AAyDA,YAAc,GAEZ,MAAK,GACD,AAAK,GAAW,GAAI,IAAM,8CACvB,CAAC,EAAsB,KAE5B,KAAM,GAAK,EAAgB,EAAG,IAAK,UAAW,MACxC,EACD,GAAM,KAAQ,EAAgB,EAAI,KAAM,WAAa,KAC1D,MAAO,GAAO,KAAK,KACjB,KAAM,CAAC,QAAO,SAAS,EAAO,UAAU,IAAM,EAAE,GAAK,CAAC,GAAK,GAC3D,MAAI,IAAO,MACT,AAAK,EACD,EAAM,MAAO,EAAI,MACjB,kFAGN,GAAW,GACJ,EAAM,MAiCnB,YAAe,GAEb,MAAK,GACD,AAAK,GAAW,GAAI,IAAM,+CACvB,CAAC,EAAgC,KACtC,AAAK,EACD,MAAM,QAAQ,GACd,IAAM,oFAGV,KAAM,GAAQ,GAAqB,EAAM,OAAQ,WAAY,MACvD,EACD,GAAM,KAAQ,EAAgB,EAAI,KAAM,YAAc,KAC3D,MAAO,GAAO,KAAK,KACjB,KAAM,CAAC,QAAO,SAAS,EAAO,UAAU,IAAM,EAAE,GAAG,GAAQ,EAAO,GAClE,MAAI,IAAO,MACT,AAAK,EACD,EAAM,MAAO,EAAI,MACjB,iGAGN,GAAW,GACJ,KA6Bb,YAA0D,GAKxD,MAAK,GACD,AAAK,GAAW,GAChB,IAAM,sDACH,CAAC,EAAM,KACZ,AAAK,EACD,YAAa,IACb,IAAM,uDACV,AAAK,EACD,GAAM,MAAQ,YAAc,IAC5B,IAAM,4DACV,KAAM,CAAC,QAAO,SAAS,EAAO,UAAU,IAAM,EAAE,GAAI,CAAC,GAAI,GACzD,UAAW,GACJ,CAAC,KAAM,EAAM,GAAS,UAkCjC,YAAyC,GAKvC,MAAK,GACD,AAAK,GAAW,GAChB,IAAM,uDACH,CAAC,EAAgB,KACtB,AAAK,EACD,MAAM,QAAQ,IAAS,EAAK,MAAM,GAAO,YAAe,KACxD,IAAM,sEAEV,AAAK,EACD,GAAM,MAAQ,YAAc,IAC5B,IAAM,gEACV,KAAM,GAAM,EAAO,UAAU,IAAM,EAAE,GAAG,GAAO,EAAM,GACrD,MAAI,IAAM,MACR,AAAK,EACD,EAAI,MAAM,MAAO,EAAG,MACpB,yGAGN,GAAW,EAAI,OACR,GAiCX,YAAuB,EAAiB,GAEtC,AAAK,EACD,AAAK,GAAW,GAChB,IAAM,uDACV,AAAK,EACD,GAAW,MACP,MAAM,QAAQ,IAAY,EAAQ,MAAM,GAAK,YAAa,KAC9D,IACI,iFAGR,KAAM,GAAmB,GAAW,KACpC,GAAI,CAAC,GAEH,EAAU,GACV,SAAW,KAAW,GAAO,oBAC3B,EAAQ,KAAK,EAAO,oBAAoB,IAI5C,KAAM,GACF,EAAmB,EAAQ,OAAO,GAAY,CAAC,EAAS,WAAa,KAGnE,EAAmB,EAAQ,OACjC,EAAU,EAAQ,OAAO,GAAY,EAAS,WAC9C,AAAK,EACD,EAAQ,OAAS,EACjB,IAAM,gGAC+B,6BAGzC,KAAM,GAAmB,GACnB,CAAC,QAAO,SAAS,EAAO,UAAU,EAAG,EAAS,KAAM,GAE1D,AAAK,EACD,EAAM,KAAK,GAAK,GAAK,MACrB,IAAM,gMAGV,AAAK,EACD,EAAM,OAAS,EACf,IAAM,iFACiB,EAAM,eAEjC,KAAM,GAA6B,GACnC,SAAQ,QAAQ,CAAC,EAAG,KAClB,AAAI,EAAM,IAAM,MACd,GAAW,EAAE,MAAQ,EAAM,MAG/B,AAAI,GAAyB,MAG3B,EAAsB,QAAQ,GAAK,EAAW,EAAE,MAAQ,MAEnD,CAAC,QAAO,MAAO,GA0CxB,YAAsC,GAEpC,MAAO,GAAO,WAAW,GAG3B,YAAoB,GAClB,KAAM,GAAmB,EAAM,OAAO,GAAK,GAAK,MAAM,OACtD,GAAI,EAAmB,EACrB,KAAM,IAAI,OACN;sECvXR,AAsCA,YAAgC,GAC9B,KAAM,GAAK,EAAgB,EAAG,IAAK,OAE7B,EAAuB,CAAC,EAAG,GACjC,MAAO,GAAO,cACV,GAAW,EAAQ,IAAI,GAAK,EAC5B,KAAiB,IAEhB,KAAM,IAAM,EAAG,CAAC,UC9CvB,AAqCA,YAAqC,GACnC,KAAM,GAAK,EAAgB,EAAG,IAAK,YAE7B,EAAyB,CAAC,EAAG,GACnC,MAAO,GAAO,cAAc,CAAC,EAAS,KACpC,KAAM,GAAM,EAAQ,SAAS,GAC7B,SAAK,CAAC,IACC,GACN,EAAgC,KAAiB,IAE/C,KAAM,IAAW,EAAG,CAAC,eC/C5B,AAwCA,YAAuC,GACrC,KAAM,GAAK,EAAgB,EAAG,IAAK,cAK7B,EAAW,GAAW,AAAC,IAI3B,KAAM,GAAQ,GAAI,GAAS,GAAI,KAEzB,EAAW,AAAC,IAChB,KAAM,GAAO,EAAI,EAAI,GAAQ,GAAI,KACjC,MAAO,IAET,MAAO,CAAC,QAAO,cAGjB,MAAO,GAAS,GAEX,KAAM,IAAa,EAAG,CAAC,iBC7D9B,AA4DA,YACI,EAAsB,EAAwB,KAAM,EAAW,IACjE,KAAM,GAAK,EAAgB,EAAG,IAAK,OAC7B,EACF,CAAC,EAAwB,KACvB,KAAM,GAAW,AAAK,EAAe,EAAM,EAAG,OAC9C,GAAI,GAAO,EACX,KAAM,GAAe,AAAU,GAAmB,EAAM,EAAG,MAC3D,GAAI,GAAW,EACf,AAAI,GAAgB,MAClB,GAAW,EAAU,EAAI,GACzB,EAAO,AAAU,GAAiB,EAAK,OAAQ,EAAS,OAG1D,KAAM,GAAI,EAAQ,IAAI,EAAU,GAChC,AAAI,GAAgB,MAClB,EAAS,UAGX,GAAI,GAAM,EACV,GAAI,GACF,KAAM,GAAgB,AAAU,GAC5B,EAAI,MAAO,AAAK,EAAe,EAAM,EAAG,QAC5C,EAAM,EAAQ,EAAK,GACnB,EAAE,UAGJ,SAAK,CAAC,EAAI,IACH,GAGP,EAAoB,CAAC,EAAG,GACxB,EAAkB,CAAC,iBAAkB,EAAM,YAEjD,MAAO,GAAO,cACH,EAAS,EAAgC,KAAqB,GAC9D,GAGN,KAAM,IAAM,EAAG,CAAC,UCnGvB,AAgDA,YAAgC,EAAsB,GACpD,GAAI,GAAK,EAAgB,EAAG,IAAK,OAC7B,EAAK,EAAgB,EAAG,IAAK,OACjC,CAAC,EAAI,GAAM,EAAe,EAAI,GAE9B,KAAM,GAA+B,CAAC,EAAS,KAC7C,KAAM,GAAM,EAAQ,SAAS,EAAI,GACjC,SAAK,CAAC,EAAI,IACH,GAGH,EAAoB,CAAC,EAAG,EAAI,EAAG,GAErC,MAAO,GAAO,cACH,EAAS,EAAgC,KAAiB,IAIhE,KAAM,GAAM,EAAG,CAAC,UClEvB,AA4DA,YACI,EAAsB,EAAwB,KAAM,EAAW,IACjE,GAAI,GAAK,EAAgB,EAAG,IAAK,OACjC,AAAI,EAAG,QAAU,QACf,GAAK,EAAK,EAAI,UAGhB,KAAM,GAA+B,CAAC,EAAS,KAC7C,EAAK,CAAC,IACN,KAAM,GAAO,EAAe,EAAM,EAAG,OAE/B,EAAc,GAAmB,EAAM,EAAG,MAChD,GAAI,GAAgB,EAChB,EAAY,EAChB,AAAI,GAAe,MACjB,GAAY,EAAU,EAAI,GAC1B,EAAgB,GAAiB,EAAc,OAAQ,EAAG,OAE5D,GAAI,GAAQ,EAAQ,IAAI,EAAW,GACnC,GAAI,GACF,KAAM,GAAW,GAAqB,EAAM,MAAO,GACnD,EAAQ,EAAQ,EAAO,GAEzB,MAAO,IAGH,EAAoB,CAAC,EAAG,GACxB,EAAkB,CAAC,OAAM,YAE/B,MAAO,GAAO,cACH,EAAS,EAAgC,KAAiB,GAC1D,GAGN,KAAM,GAAM,EAAG,CAAC,UC9FvB,AAqDA,YAAuC,EAAsB,EAAO,IAClE,KAAM,GAAU,EAAgB,EAAQ,SAAU,cAKlD,GAHA,AAAI,IAAS,IACX,GAAO,EAAQ,KAAO,GAEpB,IAAS,EAAQ,KAAO,EAC1B,KAAM,OACF,gFACmB,EAAQ,qBAAqB,KAGtD,KAAM,GAA+B,CAAC,EAAS,KAC7C,KAAM,GAAW,GACX,EAAO,GAAI,EAAQ,EAAM,IACzB,EAAU,EAAI,EAAQ,GACtB,EACF,EAAI,EAAK,EAAS,WAAY,GAAI,EAAI,GAAI,GAAU,EAAM,KAC9D,SAAK,CAAC,IACC,GAGH,EAA2B,CAAC,OAAQ,GACpC,EAAyB,CAAC,QAEhC,MAAO,GAAO,cACH,EAAS,EAAgC,KACzC,GAAY,GAGlB,KAAM,IAAa,EAAG,CAAC,iBCnF9B,AA4DA,YACI,EAAsB,EAAwB,KAAM,EAAW,IACjE,KAAM,GAAK,EAAgB,EAAG,IAAK,aAE7B,EAAO,EAAe,EAAM,EAAG,OAC/B,EAAO,GAAI,EAAI,EAAM,IACrB,EAAI,EAAI,EAAI,GACZ,EAAI,GAAI,GACR,EAAI,EAAI,EAAG,GACX,EAAI,GAAI,GACR,EAAM,EAAI,EAAQ,EAAM,EAAE,OAAQ,GAExC,GAAI,GACF,KAAM,GAAW,GAAqB,EAAI,MAAO,GACjD,MAAO,GAAQ,EAAK,GAEtB,MAAO,GAGF,KAAM,IAAY,EAAG,CAAC,gBC/E7B,AAwCA,YACI,EAAsB,GACxB,KAAM,GAAK,EAAgB,EAAG,IAAK,aAAc,QAC3C,EAAK,EAAgB,EAAG,IAAK,aAAc,QACjD,EAA2B,EAAG,MAAO,EAAG,OAExC,KAAM,GAA2B,CAAC,EAAG,EAAI,EAAG,GAE5C,MAAO,GAAO,cACH,GAAW,EAAQ,WAAW,EAAI,GAClC,EAAgC,KAAiB,IAGvD,KAAM,IAAa,EAAG,CAAC,iBCrD9B,AAqCA,YAAuC,GACrC,KAAM,GAAK,EAAgB,EAAG,IAAK,aAAc,QAC3C,EAA2B,CAAC,EAAG,GACrC,MAAO,GAAO,cACV,GAAW,EAAQ,WAAW,GAAK,EACnC,KAAiB,IAGhB,KAAM,IAAa,EAAG,CAAC,iBC7C9B,AAuCA,YACI,EAAsB,GACxB,KAAM,GAAK,EAAgB,EAAG,IAAK,YAAa,QAC1C,EAAK,EAAgB,EAAG,IAAK,YAAa,QAChD,EAA2B,EAAG,MAAO,EAAG,OAExC,KAAM,GAA0B,CAAC,EAAG,EAAI,EAAG,GAC3C,MAAO,GAAO,cACH,GAAW,EAAQ,UAAU,EAAI,GACjC,EAAgC,KAAiB,IAEvD,KAAM,IAAY,EAAG,CAAC,gBClD7B,AAyCA,YACI,EAAsB,GACxB,KAAM,GAAK,EAAgB,EAAG,IAAK,aAAc,QAC3C,EAAK,EAAgB,EAAG,IAAK,aAAc,QACjD,SAA2B,EAAG,MAAO,EAAG,OAGjC,GAAW,GAAU,EAAG,GAAI,GAAW,GAAW,EAAG,KAGvD,KAAM,IAAa,EAAG,CAAC,iBCnD9B,AAwDA,YACI,EAAiB,EACjB,EAAkC,EAClC,GACF,KAAM,GAAK,EAAgB,EAAG,IAAK,WAC7B,EAAY,EAElB,GAAI,GAAM,EACN,EAAe,GACnB,AAAI,EAAG,OAAS,GACd,GAAe,GACf,EAAM,EAAQ,EAAI,CAAC,EAAG,EAAG,MAAM,GAAI,EAAG,MAAM,GAAI,EAAG,MAAM,MAG3D,AAAK,EACD,EAAI,OAAS,EACb,IAAM,uDAAuD,EAAI,SACrE,AAAK,EACD,AAAU,GAA+B,EAAS,GAClD,IAAM,wEACa,oBAA0B,MACjD,AAAI,GAAmB,MACrB,AAAK,EACD,AAAK,EAAM,GACX,IAAM,wEACiB,iBAA+B,MAG5D,KAAM,GAA+B,CAAC,EAAS,KAC7C,KAAM,GAAW,AAAU,GACvB,EAAI,MAAO,EAAY,EAAS,EAAmB,EACnD,GAEJ,GAAI,GAEJ,MAAI,GAAS,cAAgB,GAAK,EAAS,eAAiB,GACxD,AAAK,GAAY,EAAS,QAAS,EAAS,UAC9C,EAAI,EAAI,QAER,EAAI,EAAQ,QAAQ,EAAK,GAG3B,EAAK,CAAC,EAAK,IAEJ,GAGH,EAAwB,CAAC,EAAG,GAE5B,EAAsB,CAAC,aAAY,UAAS,MAAK,mBAEjD,EAAM,EAAO,cACf,EAAS,EAAgC,KAAiB,GAC1D,GAEJ,MAAI,GACK,EAAQ,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,KAEtD,EAGF,KAAM,IAAU,EAAG,CAAC,cCrH3B,AA0EA,YACI,EAAiB,EAA8C,CAAC,EAAG,EAAG,GACtE,EAA0C,EAC1C,EACA,EAA8B,QAC9B,GACF,AAAI,GAAa,KACf,EAAY,CAAC,EAAG,EAAG,GAEnB,GACI,+DAIN,KAAM,GAAK,EAAgB,EAAG,IAAK,aAEnC,GAAI,GAAM,EACN,EAAe,GACnB,AAAI,EAAG,OAAS,GACd,GAAe,GACf,EAAM,EAAQ,EAAI,CAAC,EAAG,EAAG,MAAM,GAAI,EAAG,MAAM,GAAI,EAAG,MAAM,GAAI,EAAG,MAAM,MAGxE,AAAK,EACD,EAAI,OAAS,EACb,IAAM,qDAAqD,EAAI,SACnE,AAAK,EACD,IAAe,QACf,IAAM,gFACuB,KACjC,AAAK,EACD,AAAU,GAA+B,EAAS,GAClD,IAAM,0EACa,oBAA0B,MACjD,AAAI,GAAmB,MACrB,AAAK,EACD,AAAK,EAAM,GACX,IAAM,0EACiB,iBAA+B,MAG5D,KAAM,GAA+B,CAAC,EAAS,KAC7C,AAAI,GAAa,MACf,GAAY,CAAC,EAAG,EAAG,IAErB,KAAM,GAAW,AAAU,GACvB,EAAI,MAAO,EAAY,EAAS,EAAW,EAAK,EAChD,GACE,EAAI,EAAQ,UAAU,EAAK,GACjC,SAAK,CAAC,EAAK,IACJ,GAGH,EAA0B,CAAC,EAAG,GAE9B,EACF,CAAC,aAAY,UAAS,MAAK,kBAAiB,aAAY,aAEtD,EAAM,EAAO,cACf,EAAS,EAAgC,KAAiB,GAC1D,GAEJ,MAAI,GACK,EACI,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,KAIhE,EAGF,KAAM,IAAY,EAAG,CAAC,gBCjJ7B,AA4DA,YACI,EAAiB,EACjB,EAAkC,EAClC,EAAsB,IACxB,KAAM,GAAK,EAAgB,EAAG,IAAK,qBAE7B,EAAkC,CAAC,EAAG,GACtC,EACuB,CAAC,aAAY,UAAS,MAAK,uBAElD,EAAS,EAAO,UACH,GAAmB,EACnB,GAEnB,MAAO,CAAC,OAAQ,EAAO,GAAI,QAAS,EAAO,IAGtC,KAAM,IAAoB,EAAG,CAAC,wBC7ErC,AAoCM,YACF,EAAoB,EAAkB,WACxC,GAAI,IAAU,aACZ,KAAM,GAAO,GAAM,EAAO,WACpB,EAAO,GAAM,EAAO,WAC1B,MAAO,IAAQ,EAAM,GAEvB,KAAM,GAAS,GAAoB,GAAc,GAAQ,GACzD,MAAO,GAAO,WAAW,EAAQ,EAAO,GC5C1C,AAqCM,YACF,EAAoB,EAAkB,WACxC,GAAI,IAAU,aACZ,KAAM,GAAO,GAAK,EAAO,WACnB,EAAO,GAAM,EAAO,WAC1B,MAAO,IAAQ,EAAM,GAEvB,KAAM,GAAS,GAAmB,GAAc,GAAQ,GACxD,MAAO,GAAO,WAAW,EAAQ,EAAO,GC7C1C,AA4DA,YACI,EAAsB,EAAwB,KAAM,EAAW,IACjE,KAAM,GAAK,EAAgB,EAAG,IAAK,QAE7B,EAAO,EAAe,EAAM,EAAG,OAC/B,EAAS,GAA0B,EAAG,MAAO,GAC7C,EAAc,EAAO,GACrB,EAAa,GAAc,GAI3B,EAAW,GAAW,AAAC,IAC3B,KAAM,GAAmB,EAAO,GAE1B,EAAU,EAAiB,QAAU,EAAE,MACzC,EACA,EAAK,EAAG,EAAiB,OACvB,EAAM,EAAI,EAAS,GACnB,EAAQ,EAAI,EAAK,EAAM,GAEvB,EAAW,AAAC,IAChB,KAAM,GAAkB,EAAE,MAAM,QAChC,EAAK,QAAQ,IACX,EAAgB,GAAQ,IAE1B,KAAM,GAAa,EAAQ,EAAI,GACzB,EAAO,EAAI,EAAI,EAAY,GAAK,EAAE,MAAO,YAAa,GAC5D,MAAO,IAET,MAAO,CAAC,QAAO,cAGjB,MAAO,GAAS,GAGX,KAAM,IAAO,EAAG,CAAC,WCpCxB,YACI,EAAsB,EAAwB,KAAM,EAAW,IACjE,KAAM,GAAK,EAAgB,EAAG,IAAK,OAE7B,EACF,CAAC,EAAwB,KACvB,KAAM,GAAW,EAAe,EAAM,EAAG,OACzC,GAAI,GAAO,EACX,KAAM,GAAe,AAAU,GAAmB,EAAM,EAAG,MAC3D,GAAI,GAAW,EACf,AAAI,GAAgB,MAClB,GAAW,EAAU,EAAI,GACzB,EAAO,AAAU,GAAiB,EAAK,OAAQ,EAAG,OAGpD,KAAM,GAAI,EAAQ,IAAI,EAAU,GAChC,AAAI,GAAgB,MAClB,EAAS,UAGX,GAAI,GAAM,EACV,GAAI,GACF,KAAM,GACF,AAAU,GAAqB,EAAI,MAAO,GAC9C,EAAM,EAAQ,EAAG,GACjB,EAAE,UAGJ,SAAK,CAAC,EAAI,IACH,GAGP,EAAoB,CAAC,EAAG,GACxB,EAAkB,CAAC,OAAM,YAE/B,MAAO,GAAO,cACH,EAAS,EAAgC,KAAqB,GAC9D,GAGN,KAAM,IAAM,EAAG,CAAC,UCnGvB,AAuDA,YACI,EAAsB,GACxB,GAAI,GAAK,EAAgB,EAAG,IAAK,WAC7B,EAAK,EAAgB,EAAG,IAAK,WACjC,CAAC,EAAI,GAAM,EAAe,EAAI,GAE9B,AAAI,EAAG,QAAU,QACf,GAAK,EAAK,EAAI,SACd,EAAK,EAAK,EAAI,UAGhB,EAA2B,EAAG,MAAO,EAAG,OAExC,KAAM,GAA+B,CAAC,EAAS,KAC7C,KAAM,GAAM,EAAQ,QAAQ,EAAI,GAChC,SAAK,CAAC,EAAI,IACH,GAEH,EAAwB,CAAC,EAAG,EAAI,EAAG,GAEzC,MAAO,GAAO,cACH,EAAS,EAAgC,KACzC,IAGN,KAAM,IAAU,EAAG,CAAC,cChF3B,AAsDA,YAAgC,EAAsB,GACpD,GAAI,GAAK,EAAgB,EAAG,IAAK,OAC7B,EAAK,EAAgB,EAAG,IAAK,OACjC,CAAC,EAAI,GAAM,EAAe,EAAI,GAE9B,KAAM,GAA+B,CAAC,EAAS,KAC7C,KAAM,GAAM,EAAQ,IAAI,EAAI,GAC5B,SAAK,CAAC,EAAI,IACH,GAEH,EAAoB,CAAC,EAAG,EAAI,EAAG,GAErC,MAAO,GAAO,cACH,EAAS,EAAgC,KACzC,IAGN,KAAM,IAAM,EAAG,CAAC,UCvEvB,AAkCA,YAAmC,GACjC,KAAM,GAAK,EAAgB,EAAG,IAAK,UAC7B,EAAQ,GACR,EAAe,CAAC,GAChB,EAA2B,GACjC,MAAO,GAAO,cAAc,CAAC,EAAS,IACpC,GAAK,CAAC,IACC,EAAQ,OAAO,IACrB,CAAC,EAAG,GAAK,KAAiB,SAAU,EAAO,EAAc,GAGvD,KAAM,GAAS,EAAG,CAAC,aC7C1B,AA2CA,YACI,EAAsB,EAAwB,KAC9C,EAAW,IACb,EAAI,EAAgB,EAAG,IAAK,WAC5B,KAAM,GAAO,EAAe,EAAM,EAAE,OAC9B,EAAQ,GAAK,EAAG,EAAM,GAC5B,GAAI,GAAgB,EAAM,MAC1B,AAAK,GACH,GAAgB,GAAqB,EAAM,MAAO,IAEpD,KAAM,GACF,EAAO,EAAI,EAAK,EAAG,WAAY,EAAQ,EAAO,KAC5C,EAAW,GAAK,EAAY,EAAM,GACxC,MAAO,CAAC,KAAM,EAAO,YAGhB,KAAM,IAAU,EAAG,CAAC,cChB3B,YACI,EAA2B,EAC3B,EACA,GACF,KAAM,GAAQ,EAAgB,EAAM,OAAQ,gBACtC,EAAK,GAAqB,EAAG,IAAK,gBAClC,EAAK,GAAqB,EAAG,IAAK,gBAExC,GAAI,GAAQ,EACZ,KAAM,GAAY,GAClB,OAAS,GAAI,EAAG,EAAI,EAAU,OAAQ,KACpC,KAAM,GAAS,EAAU,GAAG,EAAO,EAAG,GAAI,EAAG,IAC7C,EAAU,KAAK,EAAO,IACtB,EAAU,KAAK,EAAO,IACtB,EAAQ,EAAO,GAEjB,KAAM,GAAmB,GACnB,EAAmB,GACzB,OAAS,GAAI,EAAG,EAAI,EAAU,OAAQ,GAAK,EACzC,EAAK,KAAK,EAAU,IACpB,EAAK,KAAK,EAAU,EAAI,IAE1B,MAAO,CAAC,EAAM,GAET,KAAM,IAAe,EAAG,CAAC,mBCnEhC,AA2CA,YACI,EAAsC,EAAoB,EAC1D,EAAa,IACf,KAAM,GAAU,EAAgB,EAAQ,SAAU,eAC5C,EAAc,EAAQ,KACtB,EAAW,EAAQ,KACzB,GAAI,EAAc,EAChB,KAAM,IAAI,OACN,+DACG,MAET,GAAI,EAAW,EACb,KAAM,IAAI,OAAM,gDAAgD,KAElE,EAAO,GAAQ,KAAK,SACpB,KAAM,GACF,IAAa,EAAI,EAAQ,EAAS,CAAC,EAAG,KAAO,EAC3C,EAAM,EAAO,cACf,GAAW,EAAQ,YAAY,EAAU,EAAY,EAAY,GACjE,CAAC,aAEL,MAAO,KAAa,EAAI,EAAQ,EAAK,CAAC,EAAI,OAAqB,EAG1D,KAAM,IAAc,EAAG,CAAC,kBCnE/B,AAwCA,YACI,EAAsB,GACxB,GAAI,GAAK,EAAgB,EAAG,IAAK,YAC7B,EAAK,EAAgB,EAAG,IAAK,YACjC,CAAC,EAAI,GAAM,EAAe,EAAI,GAE9B,EAA2B,EAAG,MAAO,EAAG,OAExC,KAAM,GAA+B,AAAC,GAAY,EAAQ,SAAS,EAAI,GAEjE,EAAyB,CAAC,EAAG,EAAI,EAAG,GAE1C,MAAO,GAAO,cACH,EAAS,EAAgC,KACzC,IAGN,KAAM,IAAW,EAAG,CAAC,eCzD5B,AA8CA,YACI,EAA4B,EAAe,EAAU,EACrD,EAAW,GACb,GAAI,EAAQ,EACV,KAAM,IAAI,OAAM,iDAAiD,KAEnE,KAAM,GAAW,EAAgB,EAAS,UAAW,SAAU,SACzD,EAAW,CAAC,GAAG,EAAS,MAAO,GAE/B,EAA+B,CAAC,EAAS,IAC7C,GAAK,CAAC,IACC,EACH,EAAQ,OACJ,EAAQ,EAAU,CAAC,EAAS,OAAQ,EAAO,EAAS,GACxD,IAGA,EAAuB,CAAC,QAAS,GACjC,EAAqB,CAAC,QAAO,UAAS,YAE5C,MAAO,GAAO,cACV,EAAS,EAAqC,KAAiB,GAC/D,GAGC,KAAM,IAAS,EAAG,CAAC,aCvE1B,AAyCA,YAAqC,GACnC,KAAM,GAAK,EAAgB,EAAG,IAAK,YAE7B,EAA+B,CAAC,EAAS,KAC7C,GAAI,EAAG,QAAU,aACf,KAAM,GAAI,GAAS,GAAK,IAClB,EAAI,EAAU,GAAK,IACzB,MAAO,IAAQ,EAAG,GAGpB,MAAO,GAAQ,SAAS,IAGpB,EAAyB,CAAC,EAAG,GACnC,MAAO,GAAO,cACH,EAAS,EAAgC,KACzC,IAGN,KAAM,IAAW,EAAG,CAAC,eCtB5B,YACI,EAAyB,GAC3B,KAAM,GAAM,EAAgB,EAAI,KAAM,gBAChC,EAAM,EAAgB,EAAI,KAAM,gBAEtC,AAAK,EACD,EAAI,OAAS,GAAK,EAAI,OAAS,EAC/B,IAAM,+DACC,EAAI,YAAY,EAAI,SAE/B,KAAM,GAAO,EAAQ,EAAK,CAAC,GAAI,IACzB,EAAO,EAAQ,EAAK,CAAC,EAAG,KAC9B,MAAO,GAAO,EAAM,GAGf,KAAM,IAAe,EAAG,CAAC,mBCrDhC,AAkDA,YACI,EAAiB,EAAmC,EAAgB,GACtE,KAAM,GAAK,EAAgB,EAAG,IAAK,OACnC,GAAI,EAAG,OAAS,EACd,KAAM,IAAI,OAAM,sDAElB,KAAM,GAA0B,CAAC,EAAS,IACxC,GAAK,CAAC,IACC,EAAQ,IAAI,EAAI,EAAU,IAG7B,EAAoB,CAAC,WAAU,iBAC/B,EAAsB,CAAC,EAAG,GAChC,MAAO,GAAO,cACV,EAAS,EAAqC,KAAiB,GAC/D,GAGC,KAAM,IAAM,EAAG,CAAC,UC3CvB,YACI,EAAwB,EACxB,EAAgB,GAClB,SACI,EAAS,SAAW,EACpB,IAAM,oDACH,GAAI,EAAG,CAAC,GAAW,GAGrB,KAAM,IAAQ,EAAG,CAAC,YCTzB,YACI,EAAwB,EACxB,EAAgB,GAClB,SACI,EAAS,SAAW,GAAK,EAAS,GAAG,SAAW,GAC5C,EAAS,GAAG,SAAW,EAC3B,IAAM,yDACH,GAAI,EAAG,EAAU,GAGnB,KAAM,IAAQ,EAAG,CAAC,YCVzB,YACI,EACA,EACA,EAAgB,GAClB,SACI,EAAS,SAAW,GAAK,EAAS,GAAG,SAAW,GAC5C,EAAS,GAAG,SAAW,GAAK,EAAS,GAAG,SAAW,EACvD,IAAM,yDACH,GAAI,EAAG,EAAU,GAGnB,KAAM,IAAQ,EAAG,CAAC,YCXzB,YACI,EACA,EAIA,EAAgB,GAClB,SACI,EAAS,SAAW,GAAK,EAAS,GAAG,SAAW,GAC5C,EAAS,GAAG,SAAW,GAAK,EAAS,GAAG,SAAW,GACnD,EAAS,GAAG,SAAW,EAC3B,IAAM,yDACH,GAAI,EAAG,EAAU,GAGnB,KAAM,IAAQ,EAAG,CAAC,YCxCzB,AA2EA,YACI,EAAiB,EAAsB,GACzC,KAAM,GAAK,EAAgB,EAAG,IAAK,kBAEnC,AAAK,EACD,EAAG,MAAQ,EAAI,EAAW,OAC1B,IAAM,cAAc,EAAG,sCACnB,EAAW,UAEnB,AAAK,EACD,EAAS,SAAW,EAAW,OAC/B,IAAM,qBACF,EAAS,wCAAwC,EAAW,UAEpE,AAAK,EACD,EAAG,MAAM,OACL,CAAC,EAAG,EAAG,IACD,EAAI,GAAK,GAAK,EAAW,OACpB,GACD,GAAI,EAAS,EAAI,GAAG,GAAK,EAAS,EAAI,GAAG,IACtC,EAAW,EAAI,KACnB,EAEA,EAET,IACJ,IAAM,4BAA4B,EAAG,MAAM,MAAM,oBAC7C,EAAS,+CACT,EAAW,cAEnB,KAAM,GAA0B,GAC5B,EAAQ,eAAe,EAAI,EAAY,GAErC,EAA+B,CAAC,EAAG,GACnC,EAA6B,CAAC,aAAY,YAEhD,MAAO,GAAO,cACV,EAAS,EAAgC,KACzC,GAAgB,GAGf,KAAM,IAAiB,EAAG,CAAC,qBCpHlC,AAuDA,YACI,EAAqB,EACrB,EAA0B,EAC1B,EAAqC,GACvC,AAAI,GAAa,MACf,GAAY,CAAC,EAAG,IAElB,AAAI,GAAW,MACb,GAAU,GAEZ,AAAI,IAAQ,GACV,GAAM,SAGR,KAAM,GAAK,EAAgB,EAAO,IAAK,WACvC,GAAI,GAAM,EACN,EAAe,GAEnB,AAAI,EAAG,OAAS,GACd,GAAe,GACf,EAAM,EAAQ,EAAI,CAAC,EAAG,EAAG,MAAM,GAAI,EAAG,MAAM,GAAI,EAAG,MAAM,MAG3D,AAAK,EACD,AAAU,GAA+B,EAAS,GAClD,IAAM,qEACa,oBAA0B,MAEjD,KAAM,GAAW,AAAU,GACvB,EAAI,MAAO,EAAa,EAAS,EAAW,GAC1C,EACF,CAAC,EAAS,eAAgB,EAAS,eAOvC,GAAI,GACJ,AAAI,IAAQ,OACV,EAAc,GACV,CAAC,EAAS,aAAc,EAAS,aAAc,GAEnD,EAAc,CAAC,CAAC,EAAG,GAAI,CAAC,EAAG,IAG7B,KAAM,GAAgB,EAAS,KAAO,GAAK,EAAS,KAAO,EACrD,CAAC,EAAiB,GAAiB,GACrC,CAAC,EAAS,SAAU,EAAS,SAAU,EAAU,GAC/C,EAAe,EAAgB,EAAM,QACrC,EACF,EAAgB,EAAM,GAAe,EAAK,EAAU,GAElD,EAAY,IAAgB,MAC9B,IAAM,GAAQ,EAAY,EAAa,EAAS,GAChD,IAAM,GAAQ,EAAY,EAAa,EAAS,GAC9C,EAAI,IAEJ,EAAM,EAAgB,EAAI,GAAe,EAAG,EAAU,GAE5D,MAAI,GACK,EAAQ,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,KAGtD,EAMT,YACI,EAA8B,EAC9B,GACF,KAAM,GAAW,EAAY,IAAI,GAAK,EAAE,IAClC,EAAa,EAAY,IAAI,GAAK,EAAE,IACpC,EAAiB,EAAW,OAAO,EAAU,GAC7C,EAAc,EAAW,IAAI,CAAC,EAAG,IAAO,GAAI,EAAe,GAAK,GAAK,GACrE,EAAS,EAAW,IAAI,CAAC,EAAG,IAAM,EAAI,EAAY,IAClD,EAAW,EAAW,IAAI,CAAC,EAAG,IAAM,CAAC,EAAS,GAAI,EAAO,KACzD,EAAQ,EAAW,IAAI,CAAC,EAAG,IAAM,CAAC,EAAG,EAAY,KACvD,MAAO,CAAC,EAAU,GAMpB,YACI,EAA+B,GAGjC,KAAM,GAAqB,EAAY,IAAI,CAAC,EAAG,IACtC,EAAK,GAAI,GAAM,GAAS,GAAK,IAEhC,EAAgB,EAAmB,IAAI,GAAK,EAAI,GAIhD,EAAgB,EAAc,IAAI,GAAK,KAAK,MAAM,EAAI,IACtD,EAAc,EAAc,IAAI,CAAC,EAAG,IAAM,EAAI,EAAc,IAClE,MAAO,GAAc,IAAI,CAAC,EAAG,IACpB,CAAC,EAAc,GAAI,EAAY,KAInC,KAAM,IAAO,EAAG,CAAC,WC/JxB,AAqDA,YACI,EAAyB,GAC3B,GAAI,GAAQ,EAAgB,EAAM,OAAQ,OACtC,EAAO,EAAgB,EAAK,MAAO,OACvC,CAAC,EAAO,GAAQ,EAAe,EAAO,GAEtC,KAAM,GAAoB,CAAC,EAAG,EAAO,EAAG,GAClC,EAA+B,CAAC,EAAS,KAC7C,KAAM,GAAI,EAAQ,IAAI,EAAO,GAC7B,SAAK,CAAC,EAAO,EAAM,IACZ,GAGT,MAAO,GAAO,cACH,EAAS,EAAgC,KACzC,IAGN,KAAM,IAAM,EAAG,CAAC,UCvEvB,AAyCA,YAAkC,EAAiB,GACjD,KAAM,GAAK,EAAgB,EAAG,IAAK,SAC7B,EAAS,EAAgB,EAAO,QAAS,SAEzC,EAA+B,CAAC,EAAS,KAC7C,KAAM,GAAM,EAAQ,MAAM,EAAI,GAC9B,SAAK,CAAC,EAAI,IACH,GAGH,EAAsB,CAAC,EAAG,EAAI,MAAO,GAC3C,MAAO,GAAO,cACH,EAAS,EAAgC,KAAiB,IAIhE,KAAM,IAAQ,EAAG,CAAC,YCzDzB,AA+BM,YAAkC,EAAM,EAAU,IACtD,QAAQ,IAAI,EAAE,SAAS,IChCzB,AA6DA,YACI,EAAsB,EAAwB,KAAM,EAAW,IACjE,GAAI,GAAK,EAAgB,EAAG,IAAK,QAEjC,KAAM,GAA+B,AAAC,IACpC,AAAI,EAAG,QAAU,QACf,GAAK,EAAK,EAAI,UAEhB,KAAM,GAAO,EAAe,EAAM,EAAG,OAE/B,EAAc,GAAmB,EAAM,EAAG,MAChD,GAAI,GAAgB,EAChB,EAAY,EAChB,AAAI,GAAe,MACjB,GAAY,EAAU,EAAI,GAC1B,EAAgB,GAAiB,EAAc,OAAQ,EAAG,OAE5D,GAAI,GAAQ,EAAQ,KAAK,EAAW,GACpC,GAAI,GACF,KAAM,GAAW,GAAqB,EAAM,MAAO,GACnD,EAAQ,EAAQ,EAAO,GAGzB,MAAO,IAGH,EAAqB,CAAC,EAAG,GACzB,EAAmB,CAAC,OAAM,YAEhC,MAAO,GAAO,cACH,EAAS,EAAgC,KAAiB,GAC1D,GAGN,KAAM,IAAO,EAAG,CAAC,WC/FxB,AAiCA,YACI,EAAoB,EACpB,GACF,KAAM,GAAO,GAAc,GAC3B,GAAI,GAAS,KACb,GAAI,GAAS,MAAQ,IAAU,UAC7B,EAAS,GAAI,cAAa,WACjB,IAAU,QACnB,EAAS,GAAI,YAAW,WACf,IAAU,OACnB,EAAS,GAAI,YAAW,OAExB,MAAM,IAAI,OAAM,qBAAqB,KAEvC,OAAS,GAAI,EAAG,EAAI,EAAM,IACxB,EAAO,GAAK,IAEd,MAAO,GAAO,WAAW,EAAQ,EAAO,GAGnC,KAAM,IAAO,EAAG,CAAC,WCrDxB,qOAsBA,KAAM,IAAuB,KAChB,GAAuB,GAE9B,YACF,EACA,EAAoD,GACtD,MAAI,IAAW,MACb,GAAU,MAEL,GACH,EAAQ,EAAU,CAAC,EAAG,IAAM,GAAS,EAAa,EAAa,IAG/D,cACJ,MAAO,GAAO,QAAQ,mBAAqB,GAAK,GACA,GAGlD,YACI,EAAoB,EACpB,GACF,GAAI,GAAiB,GAOrB,GANA,AAAI,IAAa,IAAW,GAAa,KACvC,GAAiB,IAEnB,AAAI,GAAa,IAAW,GAAa,IACvC,GAAiB,IAEf,GACF,KAAM,GAAQ,EAAO,YAAY,KAC3B,EAAQ,EAAS,YAAY,KAEnC,GAAI,IAAU,EACZ,KAAM,IAAI,OACN,yCAAyC,gBAC5B,KAIrB,GAAI,MAAM,QAAQ,IAAW,MAAM,QAAQ,IACzC,KAAM,GAAc,GAAW,GACzB,EAAgB,GAAW,GACjC,GAAI,CAAC,GAAY,EAAa,GAC5B,KAAM,IAAI,OACN,0CACY,kBAA4B,MAIhD,KAAM,GACF,GAAa,GAAU,EAAS,GAAQ,GACtC,EAAe,GAAa,GAC9B,EACA,GAAQ,GAEZ,GAAI,EAAW,SAAW,EAAa,OACrC,KAAM,IAAI,OACN,yCAAyC,EAAW,uBACvC,EAAa;YACb;YACA,MAEnB,OAAS,GAAI,EAAG,EAAI,EAAa,OAAQ,EAAE,GACzC,KAAM,GAAI,EAAW,GACf,EAAI,EAAa,GAEvB,GAAI,CAAC,EAAU,EAAG,GAChB,KAAM,IAAI,OACN,yBAAyB,QAAQ,eAAe,QAAQ;YAC3C;YACA,OAUjB,YAA8B,EAAuB,GACzD,IAAK,KAAK,IAAM,EAAK,OAAQ,IAAM,KAG/B,YAA4B,EAAoB,GACpD,KAAM,GAAM,MAAO,IAAa,UAAY,MAAO,IAAa,UACxD,MAAO,IAAa,UACxB,CAAC,GACD,EACJ,MAAI,IAAS,IAAW,GAAU,EAAoB,KAClD,GAAS,IAAa,GAAU,EAAsB,IAEjD,GAAsB,EAAQ,EAAK,CAAC,EAAG,IAAM,GAAK,GAEpD,GACH,EAAQ,EAAU,CAAC,EAAG,IAAM,GAAS,EAAa,EAAa,IAG/D,YAA6B,EAAW,EAAW,GAIvD,GAHA,AAAI,GAAW,MACb,GAAU,MAER,CAAC,GAAS,EAAG,EAAG,GAClB,KAAM,IAAI,OAAM,8BAA8B,mBAAmB,KAIrE,YAAkB,EAAW,EAAW,GACtC,MAAI,CAAC,SAAS,IAAM,CAAC,SAAS,GACrB,GAEL,QAAM,IAAM,MAAM,IAAM,KAAK,IAAI,EAAI,GAAK,GAM1C,YACF,EAA6B,EAAa,GAC5C,OAAS,GAAI,EAAG,EAAI,EAAO,OAAQ,IACjC,GAAI,EAAO,GAAK,GAAO,EAAO,GAAK,EACjC,KAAM,IAAI,OACN,sBAAsB,EAAO,WAAW,YAAc,KAK1D,YACF,EAAqB,GAGvB,OAAO,GAAI,cAAa,IAAS,QAAQ,GAAI,cAAa,ICxI5D,SAA4B,SAjB5B,SAmDE,YACI,EAAc,EAAsB,EACpC,EAAqB,GACvB,KAAK,KAAO,EACZ,KAAK,OAAS,EACd,KAAK,MAAQ,EACb,KAAK,QAAU,IACf,KAAK,UAAY,EACjB,AAAI,KAAK,WACP,MAAK,MAAQ,KAAK,KAAO,KAAK,OAAS,EACvC,KAAK,MAAQ,KAAK,KAAO,KAAK,OAAS,GAEzC,KAAM,GAAY,GAAc,KAAK,SACrC,KAAK,OAAS,AAAW,QAAK,EAAU,YAInC,YACL,GAAI,CAAC,MAAM,KAAK,UACd,KAAM,GAAQ,KAAK,QACnB,YAAK,QAAU,IACR,EAGT,GAAI,GAAiB,EACjB,EAAU,GACd,KAAO,CAAC,IACN,GAAI,GAAY,EAAY,EAC5B,EACE,GAAK,EAAI,KAAK,SAAW,EACzB,EAAK,EAAI,KAAK,SAAW,EACzB,EAAI,EAAK,EAAK,EAAK,QACZ,GAAK,GAAK,IAAM,GAEzB,KAAM,GAAM,KAAK,KAAK,GAAO,KAAK,IAAI,GAAK,GAC3C,EAAU,KAAK,KAAO,KAAK,OAAS,EAAK,EACzC,EAAU,KAAK,KAAO,KAAK,OAAS,EAAK,EAEzC,AAAI,EAAC,KAAK,WAAa,KAAK,iBAAiB,KAC3C,GAAU,IAId,MAAI,EAAC,KAAK,WAAa,KAAK,iBAAiB,KAC3C,MAAK,QAAU,KAAK,aAAa,IAE5B,KAAK,aAAa,GAInB,aAAa,GACnB,MAAI,MAAK,OAAS,MAAQ,KAAK,QAAU,UAChC,EAEF,KAAK,MAAM,GAIZ,iBAAiB,GACvB,MAAO,IAAS,KAAK,OAAS,GAAS,KAAK,OA9GhD,SA6HE,YACI,EAAe,EAAc,EAC7B,GACF,KAAK,MAAQ,EACb,KAAK,KAAO,EAAI,EAChB,KAAK,MAAQ,EAEb,KAAM,GAAY,GAAc,KAAK,SACrC,KAAK,MAAQ,AAAW,QAAK,EAAU,YACvC,KAAK,MAAQ,GAAI,IAAY,EAAG,EAAG,EAAO,GAAO,KAAK,SAEtD,AAAI,EAAQ,EACV,KAAK,EAAI,EAAS,EAAI,EAEtB,KAAK,EAAI,EAAS,EAAI,EAExB,KAAK,EAAI,EAAI,KAAK,KAAK,EAAI,KAAK,GAI3B,YACL,GAAI,GAAY,EAAY,EAAY,EAAW,EAAW,EAC9D,QACE,EACE,GAAI,KAAK,MAAM,YACf,EAAI,EAAK,KAAK,EAAI,QACX,GAAK,GAMd,GALA,GAAK,EAAI,EACT,EAAK,EAAI,EACT,EAAK,EAAK,KAAQ,EAAK,EACvB,EAAM,GAAM,EAAO,KAAK,EAAK,GAAI,EAAI,KAAK,IAAI,IAC9C,EAAI,KAAK,QACL,EAAI,GAAM,KAAK,IAAI,GAAK,EAC1B,MAGJ,SAAK,EAAI,KAAK,KAAQ,KAAK,EAAI,EAC/B,AAAI,KAAK,MAAQ,GACf,IAAK,KAAK,IAAI,KAAK,QAAS,EAAI,KAAK,QAEhC,KAAK,aAAa,GAGnB,aAAa,GACnB,MAAI,MAAK,QAAU,UACV,EAEF,KAAK,MAAM,IA5KtB,SAsLE,YACI,EAAM,EAAG,EAAM,EAAG,EAClB,GAWF,GAQM,KAAA,eAAiB,IACpB,KAAK,OAAS,MAAQ,KAAK,QAAU,UAnBxC,KAAK,IAAM,EACX,KAAK,MAAQ,EAAM,EACnB,KAAK,MAAQ,EACb,AAAI,GAAQ,MACV,GAAO,KAAK,UAEd,AAAI,MAAO,IAAS,UAClB,GAAO,EAAK,YAGV,CAAC,KAAK,kBAAoB,KAAK,OAAS,EAC1C,KAAM,IAAI,OACN,0BAA0B,OAAS,iCAEzC,KAAK,OAAS,AAAW,QAAK,GAOxB,aAAa,GACnB,MAAI,MAAK,iBACA,EAEF,KAAK,MAAM,GAGpB,YACE,MAAO,MAAK,aAAa,KAAK,IAAM,KAAK,MAAQ,KAAK,WCtN1D,AAuCA,YACI,EAAoB,EAAe,EAAO,EAC1C,EAA2B,UAAW,GAOxC,GANA,AAAI,GAAQ,MACV,GAAO,GAET,AAAI,GAAS,MACX,GAAQ,WAEN,IAAU,WAAa,IAAU,QACnC,KAAM,IAAI,OAAM,yBAAyB,KAE3C,KAAM,GAAS,GAAI,IAAU,EAAO,EAAM,EAAO,GAC3C,EAAM,GAAO,EAAO,GAC1B,OAAS,GAAI,EAAG,EAAI,EAAI,OAAO,OAAQ,IACrC,EAAI,OAAO,GAAK,EAAO,YAEzB,MAAO,GAAI,WAGN,KAAM,IAAc,EAAG,CAAC,kBC3D/B,AAsCA,YACI,EAAoB,EAAO,EAAG,EAAS,EAAG,EAC1C,GACF,GAAI,GAAS,MAAS,IAAuB,OAC3C,KAAM,IAAI,OAAM,yBAAyB,KAE3C,KAAM,GACF,GAAI,IAAY,EAAM,EAAQ,EAAO,GAAuB,GAC1D,EAAM,GAAO,EAAO,GAC1B,OAAS,GAAI,EAAG,EAAI,EAAI,OAAO,OAAQ,IACrC,EAAI,OAAO,GAAK,EAAU,YAE5B,MAAO,GAAI,WAGN,KAAM,IAAe,EAAG,CAAC,mBCrDhC,AA2CA,YACI,EAAoB,EAAS,EAAG,EAAS,EAAG,EAAkB,UAC9D,GACF,KAAM,GAAM,GAAO,EAAO,GACpB,EAAS,GAAI,IAAc,EAAQ,EAAQ,KAAM,GACvD,OAAS,GAAI,EAAG,EAAI,EAAI,OAAO,OAAQ,IACrC,EAAI,OAAO,GAAK,EAAO,YAEzB,MAAO,GAAI,WAGN,KAAM,IAAgB,EAAG,CAAC,oBCtDjC,AAuCM,YAAmB,EAAsB,GAC7C,GAAc,GACd,KAAM,GAAgB,GAAW,EAAQ,GACzC,GAAI,EAAc,SAAW,EAC3B,KAAM,IAAI,OAAM,sDAElB,KAAM,GAAkB,KACxB,MAAO,IAAW,EAAQ,EAAO,EAAe,GC9ClD,AA4CM,YACF,EAAe,EAAc,EAAO,EACpC,EAA2B,WAC7B,GAAI,IAAS,EACX,KAAM,IAAI,OAAM,8BAGlB,KAAM,GAA+B,KACnC,KAAM,GAAgB,IAAU,EAC1B,EAA8B,EAAQ,GAAQ,EAAO,EACrD,EAA8B,EAAO,GAAS,EAAO,EAE3D,GAAI,GAAiB,GACjB,EACF,MAAO,IAAM,CAAC,GAAI,GAGpB,KAAM,GAAc,KAAK,IAAI,KAAK,KAAM,GAAO,GAAS,IAClD,EAAS,GAAoB,EAAa,GAEhD,AAAI,EAAO,GAAS,IAAS,GAG3B,GAAO,IAGT,EAAO,GAAK,EACZ,OAAS,GAAI,EAAG,EAAI,EAAO,OAAQ,IACjC,EAAO,GAAK,EAAO,EAAI,GAAK,EAG9B,MAAO,IAAS,EAAQ,IAGpB,EAAoB,CAAC,QAAO,OAAM,OAAM,SAE9C,MAAO,GAAO,cACH,EAAS,GAAiB,KAAiB,GAC3C,GClFb,AAqCA,YAAuC,GACrC,KAAM,GAAK,EAAgB,EAAG,IAAK,cAE7B,EAA2B,CAAC,EAAG,GACrC,MAAO,GAAO,cAAc,CAAC,EAAS,KACpC,KAAM,GAAM,EAAQ,WAAW,GAC/B,SAAK,CAAC,IACC,GACN,EAAgC,KAAiB,IAE/C,KAAM,IAAa,EAAG,CAAC,iBC/C9B,AAuCA,YAAiC,GAC/B,KAAM,GAAK,EAAgB,EAAG,IAAK,QAE7B,EAA+B,CAAC,EAAS,IAC7C,GAAK,CAAC,IAEF,EAAG,QAAU,OACR,EAAK,EAAI,SAGX,EAAQ,KAAK,IAGhB,EAAqB,CAAC,EAAG,GAE/B,MAAO,GAAO,cACH,EAAS,EAAgC,KAAiB,IAIhE,KAAM,IAAO,EAAG,CAAC,WC3DxB,AAuCA,YAAkC,GAChC,KAAM,GAAK,EAAgB,EAAG,IAAK,SAE7B,EAA+B,CAAC,EAAS,IAC7C,GAAK,CAAC,IAEF,EAAG,QAAU,OACR,EAAK,EAAI,SAGX,EAAQ,MAAM,IAGjB,EAAsB,CAAC,EAAG,GAEhC,MAAO,GAAO,cACH,EAAS,EAAgC,KAAiB,IAIhE,KAAM,IAAQ,EAAG,CAAC,YC3DzB,AA6BA,YAAoB,GAClB,KAAM,GAAK,EAAgB,EAAG,IAAK,WACnC,MAAK,GACD,EAAG,OAAS,EACZ,IAAM,qDAAqD,EAAG,SAC3D,GAAQ,EAAI,GAGd,KAAM,IAAY,EAAG,CAAC,gBCrC7B,AA+BA,YAAoB,EAAwB,GAC1C,KAAM,GAAK,EAAgB,EAAG,IAAK,WACnC,MAAK,GACD,EAAG,OAAS,EACZ,IAAM,qDAAqD,EAAG,SAC3D,GAAQ,EAAI,GAGd,KAAM,IAAY,EAAG,CAAC,gBCvC7B,AA+BA,YAAoB,EAAwB,GAC1C,KAAM,GAAK,EAAgB,EAAG,IAAK,WACnC,MAAK,GACD,EAAG,OAAS,EACZ,IAAM,qDAAqD,EAAG,SAC3D,GAAQ,EAAI,GAGd,KAAM,IAAY,EAAG,CAAC,gBCvC7B,AA+BA,YAAoB,EAAwB,GAC1C,KAAM,GAAK,EAAgB,EAAG,IAAK,WACnC,MAAK,GACD,EAAG,OAAS,EACZ,IAAM,qDAAqD,EAAG,SAC3D,GAAQ,EAAI,GAGd,KAAM,IAAY,EAAG,CAAC,gBCdvB,YACF,EAAsB,EACtB,EAAO,GACT,GAAI,GAAa,GACjB,GAAI,MAAQ,IAAqB,SAC/B,EACI,EAAE,MAAM,GAAQ,IAAoB,EACpC,IAAM,iDACV,EACI,GAAI,OAAM,GAAiB,KAAK,EAAE,MAAM,GAAQ,QAEpD,KAAM,GAAY,EAAgB,OAAO,CAAC,EAAO,IAC/C,CAAI,IAAU,IACZ,IAAS,GAEJ,GACN,GACH,EACI,GAAa,EACb,IAAM,2DACV,KAAM,GAAW,EAAgB,QAAQ,IAGzC,GAAI,IAAa,IACf,KAAM,GAAQ,EAAgB,OAAO,CAAC,EAAG,IAAM,EAAI,EAAI,EAAI,EAAI,GAC/D,EAAgB,GAAY,EAAE,MAAM,GAAQ,EAE9C,EACI,EAAE,MAAM,KAAU,EAAgB,OAAO,CAAC,EAAG,IAAM,EAAI,GACvD,IAAM,+DACV,EAAa,EAGf,MAAO,GC1DT,AA8DA,YACI,EAAsB,EAAkC,EAAO,GACjE,KAAM,GAAK,EAAgB,EAAG,IAAK,SAE7B,EAA+B,CAAC,EAAS,KAC7C,KAAM,GAAQ,EAAe,EAAM,EAAG,OAAO,GACvC,EAAa,GAAiB,EAAI,EAAiB,GACzD,MAAO,GAAQ,MAAM,EAAI,EAAY,IAGjC,EAAuB,CAAC,EAAG,GAC3B,EAAoB,CAAC,kBAAiB,QAE5C,MAAO,GAAO,cACH,EAAS,EAAgC,KAAiB,GAC1D,GAGN,KAAM,IAAQ,EAAG,CAAC,YChFzB,AAgDA,YAAe,EAAe,GAC5B,EACI,EAAM,QAAU,UAChB,IAAM,mDAAmD,EAAM,SAEnE,GAAI,GAAqB,EAAM,MAAM,EAAM,MAAM,OAAS,GAC1D,KAAM,GAAQ,EAAM,KAAO,EAE3B,GAAI,GACJ,GAAI,GAAa,MAAQ,EAAY,GAEnC,KAAM,GAAQ,EAAM,MAAM,IAAI,GAAK,GAC7B,EAAO,EAAM,MAAM,IAAI,GAAK,GAClC,EAAK,EAAM,MAAM,OAAS,GAAK,EAC/B,EAAgB,EAAM,EAAO,EAAO,GACpC,EAAqB,UACZ,GAAa,MAAQ,EAAY,GAE1C,KAAM,GAAa,EAAM,MAAM,IAAI,GAAK,GACxC,EAAW,EAAM,MAAM,OAAS,GAAK,EAAY,EACjD,EAAgB,EAAO,CAAC,EAAO,GAAM,IAAc,EAAM,MAAM,OAAS,GACxE,EAAqB,MAErB,GAAgB,EAIlB,KAAM,GAAa,EAAU,GACvB,EACF,EAAQ,GAAQ,EAAe,GAAa,CAAC,EAAO,IAElD,EAAM,GAAI,GAGV,EAAO,KAAK,MAAM,EAAqB,GAAK,EAC5C,EAAa,GAAK,GAClB,EAAa,GAAK,GAClB,EAAuB,GACzB,EAAY,CAAC,EAAM,EAAqB,GACxC,EAAW,MAAM,OAAS,GACxB,EAAuB,GACzB,EAAY,CAAC,EAAM,EAAqB,GACxC,EAAW,MAAM,OAAS,GAExB,EAAc,EAAc,MAAM,QACxC,SAAY,EAAc,MAAM,OAAS,GAAK,EAEvC,EACH,GAAQ,EAAqB,GAAI,EAAqB,IAAK,GAG1D,KAAM,IAAO,EAAG,CAAC,WCnGxB,AAsCA,YAAkC,GAChC,KAAM,GAAK,EAAgB,EAAG,IAAK,SAC7B,EAAsB,CAAC,EAAG,GAEhC,MAAO,GAAO,cACV,AAAC,GAAY,EAAQ,MAAM,GAAK,EAChC,KAAiB,IAGhB,KAAM,IAAQ,EAAG,CAAC,YC/CzB,AAsCA,YAAkC,GAChC,KAAM,GAAK,EAAgB,EAAG,IAAK,SAE7B,EAAsB,CAAC,EAAG,GAEhC,MAAO,GAAO,cAAc,CAAC,EAAS,KACpC,KAAM,GAAM,EAAQ,MAAM,GAC1B,SAAK,CAAC,IACC,GACN,EAAgC,KAAiB,IAE/C,KAAM,IAAQ,EAAG,CAAC,YCjDzB,AAuCA,YAAiC,GAC/B,KAAM,GAAK,EAAgB,EAAG,IAAK,QAE7B,EAA+B,CAAC,EAAS,KAC7C,KAAM,GAAM,EAAQ,KAAK,GACzB,SAAK,CAAC,IACC,GAGH,EAAqB,CAAC,EAAG,GAE/B,MAAO,GAAO,cACH,EAAS,EAAgC,KAAiB,IAIhE,KAAM,IAAO,EAAG,CAAC,WCexB,YACI,EAAiB,EACjB,EAAsC,EACtC,EAAqB,EAAoC,CAAC,EAAG,GAC7D,EAA4B,QAC9B,KAAM,GAAK,EAAgB,EAAG,IAAK,mBAC7B,EACF,EAAgB,EAAiB,kBAAmB,mBAClD,EACF,EAAgB,EAAiB,kBAAmB,mBAExD,GAAI,GAAM,EACN,EAAe,GAMnB,GALA,AAAI,EAAG,OAAS,GACd,GAAe,GACf,EAAM,EAAQ,EAAI,CAAC,EAAG,EAAG,MAAM,GAAI,EAAG,MAAM,GAAI,EAAG,MAAM,MAGvD,IAAe,OACjB,KAAM,IAAI,OACN,sFAIN,AAAK,EACD,EAAI,OAAS,EACb,IAAM,gEACM,EAAI,SACpB,AAAK,EACD,EAAiB,OAAS,EAC1B,IAAM,2EACU,EAAiB,SACrC,AAAK,EACD,EAAiB,OAAS,EAC1B,IAAM,2EACU,EAAiB,SACrC,AAAK,EACD,EAAiB,MAAM,KAAO,EAC9B,IACI,yFACuB,EAAiB,MAAM,OACtD,AAAK,EACD,EAAiB,MAAM,KAAO,EAC9B,IAAM,yFAC2B,EAAiB,MAAM,OAE5D,KAAM,GAAa,EAAiB,MAAM,GACpC,EAAoB,EAAiB,MAAM,GACjD,AAAK,EACD,EAAiB,MAAM,KAAO,EAAa,EAC3C,IACI,6EACW,EAAa,cACb,EAAiB,MAAM,OAE1C,KAAM,GAAY,GACd,EAAK,EAAkB,EAAS,EAAK,EAAY,GAC/C,EAAkB,EAClB,EACF,GAAO,EAAW,EAAkB,EAAiB,QAAS,GAElE,MAAI,GACK,EAAQ,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,KAEtD,EAGF,KAAM,IAAkB,EAAG,CAAC,sBCzInC,AAiDA,kBACI,EAAsB,GACxB,KAAM,GAAK,EAAgB,EAAG,IAAK,aAC7B,EAAK,EAAgB,EAAG,IAAK,aAEnC,AAAK,EACD,EAAG,QAAU,EAAG,MAChB,IAAM,kDACF,EAAG,iBAAiB,EAAG,WAE/B,AAAK,EACD,EAAG,OAAS,EAAG,IAAM,qCAAqC,EAAG,WAEjE,AAAK,EACD,EAAG,OAAS,EAAG,IAAM,qCAAqC,EAAG,WAEjE,KAAM,GAAQ,KAAM,GAAG,OACjB,EAAQ,KAAM,GAAG,OACjB,EAAO,GAAI,KAAI,GAErB,GAAI,GAAa,EACjB,OAAS,GAAI,EAAG,EAAI,EAAM,OAAQ,IAChC,AAAK,EAAK,IAAI,EAAM,KAClB,IAIJ,KAAM,GAAS,GAAI,IAAa,CAAC,GAAa,EAAG,OAC3C,EAAU,GAAI,IAAa,CAAC,GAAa,SAC/C,OAAS,GAAI,EAAG,EAAI,EAAG,EAAI,EAAM,OAAQ,IACvC,AAAK,EAAK,IAAI,EAAM,KAClB,GAAO,OAAO,GAAK,EAAM,GACzB,EAAQ,OAAO,GAAK,EACpB,KAGJ,MAAO,CAAC,EAAO,WAAY,EAAQ,YAE9B,KAAM,IAAiB,GCvF9B,AAqCA,YAAiC,GAC/B,KAAM,GAAK,EAAgB,EAAG,IAAK,QAC7B,EAAqB,CAAC,EAAG,GAC/B,MAAO,GAAO,cACV,GAAW,EAAQ,KAAK,GAAK,EAC7B,KAAiB,IAEhB,KAAM,IAAO,EAAG,CAAC,WC5CxB,AAqCA,YAAgC,GAC9B,KAAM,GAAK,EAAgB,EAAG,IAAK,OAE7B,EAAoB,CAAC,EAAG,GAE9B,MAAO,GAAO,cAAc,CAAC,EAAS,KACpC,KAAM,GAAM,EAAQ,IAAI,GACxB,SAAK,CAAC,IACC,GACN,EAAgC,KAAiB,IAE/C,KAAM,IAAM,EAAG,CAAC,UChDvB,AAqCA,YAAiC,GAC/B,KAAM,GAAK,EAAgB,EAAG,IAAK,QAC7B,EAAqB,CAAC,EAAG,GAE/B,MAAO,GAAO,cAAc,CAAC,EAAS,KACpC,KAAM,GAAM,EAAQ,KAAK,GACzB,SAAK,CAAC,IACC,GACN,EAAgC,KAAiB,IAE/C,KAAM,IAAO,EAAG,CAAC,WC/CxB,AA6BA,YACI,EAAwB,EAAe,GACzC,KAAM,GAAK,EAAgB,EAAG,IAAK,WACnC,MAAK,GACD,EAAG,OAAS,EACZ,IACI,mDAAmD,EAAG,eACvD,EAAM,EAAI,CAAC,GAAQ,CAAC,IAEtB,KAAM,IAAU,EAAG,CAAC,cCtC3B,AA6BA,YACI,EAAwB,EACxB,GACF,KAAM,GAAK,EAAgB,EAAG,IAAK,WACnC,MAAK,GACD,EAAG,OAAS,EACZ,IACI,mDAAmD,EAAG,eACvD,EAAM,EAAI,EAAO,GAEnB,KAAM,IAAU,EAAG,CAAC,cCvC3B,AA6BA,YACI,EAAwB,EACxB,GACF,KAAM,GAAK,EAAgB,EAAG,IAAK,WACnC,MAAK,GACD,EAAG,OAAS,EACZ,IACI,mDAAmD,EAAG,eACvD,EAAM,EAAI,EAAO,GAEnB,KAAM,IAAU,EAAG,CAAC,cCvC3B,AA6BA,YACI,EAAwB,EACxB,GACF,KAAM,GAAK,EAAgB,EAAG,IAAK,WACnC,MAAK,GACD,EAAG,OAAS,EACZ,IACI,mDAAmD,EAAG,eACvD,EAAM,EAAI,EAAO,GAEnB,KAAM,IAAU,EAAG,CAAC,cCvC3B,AA+CA,YAAoC,EAAsB,EAAM,IAC9D,KAAM,GAAU,EAAgB,EAAQ,SAAU,UAAW,WAK7D,GAHA,AAAI,IAAQ,IACV,GAAM,EAAQ,KAAO,GAEnB,IAAQ,EAAQ,KAAO,EACzB,KAAM,OACF,4EACmB,EAAQ,oBAAoB,KAGrD,KAAM,GAAwB,CAAC,OAAQ,GACjC,EAAsB,CAAC,OAE7B,MAAO,GAAO,cACV,CAAC,EAAS,KACR,KAAM,GAAI,EAAQ,QAAQ,EAAS,GACnC,SAAK,CAAC,IACC,GAET,EAAgC,KAAiB,GACjD,GAGC,KAAM,IAAU,EAAG,CAAC,cCxE3B,AAqCA,YAAiC,GAC/B,KAAM,GAAK,EAAgB,EAAG,IAAK,QAE7B,EAAqB,CAAC,EAAG,GAE/B,MAAO,GAAO,cAAc,CAAC,EAAS,KACpC,KAAM,GAAM,EAAQ,KAAK,GACzB,SAAK,CAAC,IACC,GACN,EAAgC,KAAiB,IAE/C,KAAM,IAAO,EAAG,CAAC,WChDxB,AAmDA,YACI,EAAsB,GACxB,GAAI,GAAK,EAAgB,EAAG,IAAK,qBAC7B,EAAK,EAAgB,EAAG,IAAK,qBACjC,CAAC,EAAI,GAAM,EAAe,EAAI,GAE9B,EAA2B,EAAG,MAAO,EAAG,OAExC,KAAM,GAA+B,CAAC,EAAS,KAC7C,KAAM,GAAM,EAAQ,kBAAkB,EAAI,GAC1C,SAAK,CAAC,EAAI,IACH,GAGH,EAAkC,CAAC,EAAG,EAAI,EAAG,GAC7C,EAAQ,GAEd,MAAO,GAAO,cACH,EAAS,EAAqC,KAC9C,GAAmB,GAGzB,KAAM,IAAoB,EAAG,CAAC,wBCzErC,AAuCA,YAAoC,EAAsB,GACxD,KAAM,GAAK,EAAgB,EAAG,IAAK,WACnC,MAAO,GAAQ,EAAI,GAAa,EAAG,MAAO,GAAM,UAG3C,KAAM,IAAU,EAAG,CAAC,cC5C3B,AAwCA,YACI,EAA8B,EAAO,GACvC,KAAM,GAAW,GAAqB,EAAS,UAAW,SAK1D,GAHA,AAAK,EACD,EAAS,QAAU,EAAG,IAAM,wCAE5B,EAAS,SAAW,EACtB,MAAO,IAAW,EAAS,GAAI,GAGjC,KAAM,GAAO,EAAS,GAAG,KACnB,EAAQ,EAAS,GAAG,MACpB,EAAQ,EAAS,GAAG,MAE1B,AAAK,EAAO,GAAQ,EAAM,IAAM,sCAEhC,EAAS,QAAQ,IACf,AAAK,EACD,EAAO,EAAE,MACT,yDACJ,AAAK,EACD,IAAU,EAAE,MACZ,IAAM,2DAGZ,KAAM,GAAkB,EAAS,IAAI,GAAK,GAAW,EAAG,IAOxD,MAAO,GAAO,EAAiB,GAG1B,KAAM,IAAQ,EAAG,CAAC,YC5EzB,AAuCA,YAAiC,EAAiB,EAAQ,GACxD,KAAM,GAAK,EAAgB,EAAG,IAAK,QAE7B,EAAqB,CAAC,EAAG,GACzB,EAAmB,CAAC,SAE1B,MAAO,GAAO,cACV,GAAW,EAAQ,KAAK,EAAI,GAAQ,EACpC,KAAiB,GAAM,GAEtB,KAAM,IAAO,EAAG,CAAC,WCjDxB,AA8DA,YACI,EAAsB,EAAiB,EAAe,EACtD,EAAY,EAAG,EAAU,EAAG,EAAe,EAAG,EAAc,EAC5D,EAAiB,GACnB,AAAI,GAAW,MACb,GAAU,GAAI,OAAM,EAAM,SAG5B,GAAI,GAAK,EAAgB,EAAG,IAAK,gBAEjC,KAAM,GAA+B,AAAC,IACpC,KAAM,GAAe,GAAW,GAChC,GAAI,EAAa,OAAS,EACxB,KAAM,IAAI,OAAM,8CAGlB,GAAI,IAAiB,GAAK,IAAgB,EACxC,KAAM,IAAI,OACN,iEAGN,GAAI,IAAiB,GAAK,IAAmB,EAC3C,KAAM,IAAI,OACN,oEAGN,KAAM,GAAsB,EAAG,KAAO,EAAM,OAGtC,EAAa,GAAW,GACxB,EAAW,EAAG,MAAM,QAS1B,GARA,EAAW,QAAQ,IACjB,EAAM,GAAQ,EACd,EAAI,GAAQ,EACZ,EAAS,OAAO,EAAM,EAAG,KAE3B,EAAK,EAAQ,EAAI,GAGb,EAAa,QAAU,EAAsB,GAC/C,KAAM,GAAY,EAAa,GAIzB,EAAgB,EAAsB,EAC5C,EAAQ,GACJ,EAAW,EAAW,EAAe,EAAO,EAAG,OACnD,EAAM,GACF,EAAS,EAAW,EAAe,EAAK,EAAG,OAC/C,EACI,GAAsB,EAAS,EAAW,EAAe,EAAG,WAEhE,QAAS,GAAO,EAAG,EAAO,EAAG,KAAM,IACjC,EAAM,GAAQ,GACV,EAAW,EAAO,EAAS,EAAG,MAAO,EAAM,GAC/C,EAAI,GACA,GAAY,EAAS,EAAK,EAAS,EAAG,MAAO,EAAM,GACvD,EAAQ,GAAQ,GAAe,EAAS,EAAM,GAIlD,KAAM,GAAa,GAAW,GAE9B,EAAW,QAAQ,IACjB,EAAI,GAAQ,EAAM,GAAQ,EAC1B,EAAQ,GAAQ,IAIlB,KAAM,GAAO,GAAgB,EAAO,EAAK,GAEnC,EAAW,EAAK,OAAO,CAAC,EAAG,IAAS,EAAW,QAAQ,KAAU,IAEjE,EAAa,EAAQ,MAAM,GAAK,IAAM,GAC5C,GAAI,EACF,MAAO,GAAQ,EAAM,EAAI,EAAO,GAAO,GAGzC,KAAM,GAAM,EAAQ,aAAa,EAAI,EAAO,EAAK,GACjD,MAAO,GAAQ,EAAK,IAGhB,EAA6B,CAAC,EAAG,GACjC,EAA2B,CAC/B,QACA,MACA,UACA,YACA,UACA,eACA,cACA,kBAGF,MAAO,GAAO,cACV,EAAS,EAAgC,KAAiB,GAC1D,GAGC,KAAM,IAAe,EAAG,CAAC,mBCjKhC,AAqCA,YAAgC,GAC9B,KAAM,GAAK,EAAgB,EAAG,IAAK,OAE7B,EAAoB,CAAC,EAAG,GAE9B,MAAO,GAAO,cAAc,CAAC,EAAS,KACpC,KAAM,GAAM,EAAQ,IAAI,GACxB,SAAK,CAAC,IACC,GACN,EAAgC,KAAiB,IAE/C,KAAM,IAAM,EAAG,CAAC,UChDvB,AA8CM,YACF,EAAsB,EACtB,GAEF,GADA,GAAc,GACV,GAAS,MAAQ,EAAM,SAAW,EACpC,KAAM,IAAI,OAAM,iDAElB,KAAM,GAAgB,GAAW,EAAQ,GACzC,GAAI,EAAc,SAAW,GAAK,EAAc,SAAW,EACzD,KAAM,IAAI,OACN,kEAEN,GAAI,EAAc,SAAW,GAAK,GAAS,KACzC,KAAM,IAAI,OACN,gFAGN,MAAO,IAAW,EAAQ,EAAO,EAAe,GC/DlD,AA8CM,YACF,EAAsB,EACtB,GAEF,GADA,GAAc,GACV,GAAS,MAAQ,EAAM,SAAW,EACpC,KAAM,IAAI,OAAM,mDAElB,KAAM,GAAgB,GAAW,EAAQ,GACzC,GAAI,EAAc,SAAW,GAAK,EAAc,SAAW,EACzD,KAAM,IAAI,OACN,oEAEN,GAAI,EAAc,SAAW,GAAK,GAAS,KACzC,KAAM,IAAI,OACN,2EAGN,MAAO,IAAW,EAAQ,EAAO,EAAe,GC/DlD,AA8CM,YACF,EAAsB,EACtB,GAEF,GADA,GAAc,GACV,GAAS,MAAQ,EAAM,SAAW,EACpC,KAAM,IAAI,OAAM,kDAElB,KAAM,GAAgB,GAAW,EAAQ,GACzC,GAAI,EAAc,SAAW,GAAK,EAAc,SAAW,EACzD,KAAM,IAAI,OACN,sEAEN,GAAI,EAAc,SAAW,GAAK,GAAS,KACzC,KAAM,IAAI,OACN,2EAGN,MAAO,IAAW,EAAQ,EAAO,EAAe,GC/DlD,AA8CM,YACF,EAAsB,EACtB,GAEF,GADA,GAAc,GACV,GAAS,MAAQ,EAAM,SAAW,EACpC,KAAM,IAAI,OAAM,kDAElB,KAAM,GAAgB,GAAW,EAAQ,GACzC,GAAI,EAAc,SAAW,GAAK,EAAc,SAAW,EACzD,KAAM,IAAI,OACN,wEAGN,GAAI,EAAc,SAAW,GAAK,GAAS,KACzC,KAAM,IAAI,OACN,2EAGN,MAAO,IAAW,EAAQ,EAAO,EAAe,GChElD,AA8CM,YACF,EACA,EACA,GAEF,GADA,GAAc,GACV,GAAS,MAAQ,EAAM,SAAW,EACpC,KAAM,IAAI,OAAM,iDAElB,KAAM,GAAgB,GAAW,EAAQ,GACzC,GAAI,EAAc,SAAW,GAAK,EAAc,SAAW,EACzD,KAAM,IAAI,OACN,0EAGN,GAAI,EAAc,SAAW,GAAK,GAAS,KACzC,KAAM,IAAI,OACN,2EAGN,SAAQ,GACJ,EACG,GAAW,EAAQ,EAAO,EAAe,GCnElD,AAkDA,YACI,EAAiB,EAAI,EAAG,EAAS,IACnC,KAAM,GAAK,EAAgB,EAAG,IAAK,QACnC,GAAI,EAAG,OAAS,EACd,KAAM,IAAI,OAAM,sDAElB,KAAM,GAAU,EAAG,MAAM,EAAG,MAAM,OAAS,GAC3C,GAAI,EAAI,EACN,KAAM,IAAI,OACN,uDAAuD,cAC5C,KAGjB,KAAM,GAAqB,CAAC,EAAG,GACzB,EAAmB,CAAC,IAAG,UAEvB,CAAC,EAAQ,GAAW,EAAO,cAC7B,GAAK,EAAE,KAAK,EAAqB,EAAG,GACpC,EAAgC,KAAiB,GACjD,GAEJ,MAAO,CAAC,SAAQ,WAGX,KAAM,IAAO,EAAG,CAAC,WC1ExB,AA2CA,YACI,EAAoB,EAAO,EAAG,EAAS,EAAG,EAC1C,GACF,GAAI,GAAS,MAAS,IAAuB,OAC3C,KAAM,IAAI,OAAM,qCAElB,KAAM,GACF,GAAI,IAAY,EAAM,EAAQ,EAAO,GAAsB,GACzD,EAAM,GAAO,EAAO,GAC1B,OAAS,GAAI,EAAG,EAAI,EAAI,OAAO,OAAQ,IACrC,EAAI,OAAO,GAAK,EAAU,YAE5B,MAAO,GAAI,WAGN,KAAM,IAAkB,EAAG,CAAC,sBC1DnC,AA6CA,YACI,EAAiB,EAAiC,GACpD,KAAM,GAAK,EAAgB,EAAG,IAAK,sBAC7B,EACF,EAAgB,EAAY,aAAc,qBAAsB,SACpE,EAAO,EAAM,GAAc,IAAM,oCAEjC,KAAM,GAAmC,CAAC,EAAG,EAAI,WAAY,GACvD,EAAiC,CAAC,eAElC,EAA+B,CAAC,EAAS,KAC7C,KAAM,GAAM,EAAQ,mBAAmB,EAAI,EAAa,GACxD,SAAK,CAAC,IACC,GAGT,MAAO,GAAO,cACH,EAAS,EAAgC,KACzC,GAAoB,GAG1B,KAAM,IAAqB,EAAG,CAAC,yBClEtC,AA0CA,YAAkB,EAAsB,EAAO,GAC7C,KAAM,GAAK,EAAgB,EAAG,IAAK,WACnC,AAAK,EACD,GAAQ,CAAC,EAAG,MAAM,QAAU,EAAO,EAAG,MAAM,OAC5C,IACI,UAAU,iBAAoB,EAAG,MAAM,WAAW,EAAG,MAAM,WACnE,AAAI,EAAO,GACT,IAAQ,EAAG,MAAM,QAEnB,KAAM,GAAuB,CAAC,MAAO,GAC/B,EAAqB,CAAC,QACtB,EAAiC,AAAC,GACpC,EAAQ,QAAQ,EAAI,GACxB,MAAO,GAAO,cACV,EAAS,EAAgC,KAAiB,GAC1D,GAGC,KAAM,IAAU,EAAG,CAAC,cC5D3B,AAoCM,YACF,EAAyB,EAAY,GAAM,EAC3C,GACF,MAAO,GAAO,aAAa,EAAc,EAAW,EAAM,GCvC5D,AAuBM,YAAoB,EAAqB,GAC7C,KAAM,GAAU,GAChB,OAAS,GAAI,EAAG,EAAI,EAAS,OAAQ,IACnC,AAAI,EAAS,IACX,EAAQ,KAAK,GAIjB,KAAM,GAAW,GAAO,EAAW,SAE7B,EAAM,GAAO,CAAC,EAAQ,OAAQ,EAAU,QAAS,SACvD,OAAS,GAAI,EAAG,EAAI,EAAQ,OAAQ,KAClC,KAAM,GAAM,EAAS,WAAW,EAAQ,IAClC,EAAS,EAAI,EAAU,OAC7B,EAAI,OAAO,IAAI,EAAK,GAEtB,MAAO,GAAI,WCvCb,AAwCA,kBAA2B,GACzB,KAAM,GACF,EAAgB,EAAW,YAAa,aAAc,QACpD,EAAO,KAAM,GAAW,OACxB,EAAM,GAAU,EAAW,MAAO,GACxC,MAAI,KAAc,GAChB,EAAW,UAEN,EAGF,KAAM,IAAa,GCnD1B,AA4CA,kBACI,EAA2B,EAC3B,GACF,KAAM,GAAU,EAAgB,EAAQ,SAAU,YAC5C,EAAQ,EAAgB,EAAM,OAAQ,WAAY,QAElD,EAAW,GAAQ,KAAO,EAAI,EAC9B,EAAU,EAAM,KAChB,EAAc,EAAQ,MAE5B,AAAK,EAAO,EAAU,EAAG,IAAM,yBAC/B,AAAK,EACD,EAAY,MAAM,EAAU,EAAW,GAAU,EAAM,MACvD,qEAEJ,GAAI,GAAc,EAClB,OAAS,GAAI,EAAU,EAAI,EAAW,EAAS,IAC7C,GAAe,EAAY,GAE7B,KAAM,GACF,EAAY,MAAM,EAAG,GAChB,OAAO,CAAC,GAAc,EAAY,MAAM,EAAW,IACtD,EAAiB,EAAQ,EAAS,GAClC,EAAe,EAAQ,EAAO,CAAC,KAC/B,EAAoB,KAAM,IAAW,GACrC,EAAU,GAAQ,EAAmB,CAAC,IAEtC,EAAM,GAAO,EAAgB,EAAS,GAG5C,MAAI,KAAW,GACb,EAAQ,UAEV,AAAI,IAAS,GACX,EAAM,UAER,EAAQ,UACR,EAAe,UACf,EAAa,UACb,EAAkB,UAEX,EAGF,KAAM,IAAmB,GCxFhC,AAuCA,YACI,EAAiB,GACnB,GACI,6EAEJ,KAAM,GAAK,EAAgB,EAAG,IAAK,kBAC7B,EAAK,EAAgB,EAAG,IAAK,kBACnC,SAAkB,EAAG,MAAO,EAAG,MAAO,6BAC/B,GAAS,EAAI,GAYtB,YAAuC,EAAiB,GACtD,GACI,6EAEJ,KAAM,GAAK,EAAgB,EAAG,IAAK,cAC7B,EAAK,EAAgB,EAAG,IAAK,cACnC,SAAkB,EAAG,MAAO,EAAG,MAAO,yBAC/B,GAAK,EAAI,GAGlB,YAAwC,EAAiB,GACvD,GACI,6EAEJ,KAAM,GAAK,EAAgB,EAAG,IAAK,eAC7B,EAAK,EAAgB,EAAG,IAAK,eACnC,SAAkB,EAAG,MAAO,EAAG,MAAO,0BAC/B,GAAM,EAAI,GAGnB,YACI,EAAiB,GACnB,GACI,6EAEJ,KAAM,GAAK,EAAgB,EAAG,IAAK,mBAC7B,EAAK,EAAgB,EAAG,IAAK,mBACnC,SAAkB,EAAG,MAAO,EAAG,MAAO,8BAC/B,GAAU,EAAI,GAGvB,YAA0C,EAAiB,GACzD,GACI,6EAEJ,KAAM,GAAK,EAAgB,EAAG,IAAK,iBAC7B,EAAK,EAAgB,EAAG,IAAK,iBACnC,SAAkB,EAAG,MAAO,EAAG,MAAO,4BAC/B,GAAQ,EAAI,GAGrB,YACI,EAAiB,GACnB,GACI,6EAEJ,KAAM,GAAK,EAAgB,EAAG,IAAK,sBAC7B,EAAK,EAAgB,EAAG,IAAK,sBACnC,SAAkB,EAAG,MAAO,EAAG,MAAO,iCAC/B,GAAa,EAAI,GAGnB,KAAM,IAAc,EAAG,CAAC,kBAClB,GAAqB,EAAG,CAAC,yBACzB,GAAgB,EAAG,CAAC,oBACpB,GAAkB,EAAG,CAAC,sBACtB,GAAa,EAAG,CAAC,iBACjB,GAAiB,EAAG,CAAC,qBCpHlC,AA2CA,YAAsC,EAAiB,GACrD,GACI,6EAEJ,KAAM,GAAK,EAAgB,EAAG,IAAK,aAC7B,EAAK,EAAgB,EAAG,IAAK,aACnC,MAAK,GAAkB,EAAG,MAAO,EAAG,MAAO,wBACpC,EAAI,EAAI,GAajB,YAAsC,EAAiB,GACrD,GACI,6EAGJ,KAAM,GAAK,EAAgB,EAAG,IAAK,aAC7B,EAAK,EAAgB,EAAG,IAAK,aACnC,MAAK,GAAkB,EAAG,MAAO,EAAG,MAAO,wBACpC,EAAI,EAAI,GAajB,YAAsC,EAAS,GAC7C,UACI,6EAGJ,AAAK,EAAkB,EAAK,MAAO,EAAI,MAAO,wBACvC,GAAI,EAAM,GAanB,YAAsC,EAAiB,GACrD,GACI,6EAGJ,KAAM,GAAK,EAAgB,EAAG,IAAK,OAC7B,EAAK,EAAgB,EAAG,IAAK,OACnC,MAAK,GAAkB,EAAG,MAAO,EAAG,MAAO,6BACpC,EAAI,EAAI,GAWjB,YAAsC,EAAiB,GACrD,GACI,6EAGJ,KAAM,GAAK,EAAgB,EAAG,IAAK,OAC7B,EAAK,EAAgB,EAAG,IAAK,OACnC,MAAK,GAAkB,EAAG,MAAO,EAAG,MAAO,2BACpC,EAAI,EAAI,GAWjB,YAAsC,EAAiB,GACrD,GACI,6EAGJ,KAAM,GAAK,EAAgB,EAAG,IAAK,aAC7B,EAAK,EAAgB,EAAG,IAAK,aACnC,MAAK,GAAkB,EAAG,MAAO,EAAG,MAAO,wBACpC,GAAI,EAAI,GAWjB,YAA0C,EAAiB,GACzD,GACI,6EAGJ,KAAM,GAAK,EAAgB,EAAG,IAAK,iBAC7B,EAAK,EAAgB,EAAG,IAAK,iBACnC,MAAK,GAAkB,EAAG,MAAO,EAAG,MAAO,4BACpC,GAAQ,EAAI,GAWrB,YAA0C,EAAiB,GACzD,GACI,6EAGJ,KAAM,GAAK,EAAgB,EAAG,IAAK,iBAC7B,EAAK,EAAgB,EAAG,IAAK,iBACnC,MAAK,GAAkB,EAAG,MAAO,EAAG,MAAO,4BACpC,GAAQ,EAAI,GAarB,YACI,EAAiB,GACnB,GACI,6EAEJ,KAAM,GAAK,EAAgB,EAAG,IAAK,2BAC7B,EAAK,EAAgB,EAAG,IAAK,2BACnC,MAAK,GACD,EAAG,MAAO,EAAG,MAAO,sCACjB,GAAkB,EAAI,GAGxB,KAAM,IAAY,EAAG,CAAC,gBAChB,GAAY,EAAG,CAAC,gBAChB,GAAgB,EAAG,CAAC,oBACpB,GAAgB,EAAG,CAAC,oBACpB,GAAY,EAAG,CAAC,gBAChB,GAAY,EAAG,CAAC,gBAChB,GAAY,EAAG,CAAC,gBAChB,GAA0B,EAAG,CAAC,8BAC9B,GAAY,EAAG,CAAC,gBC5N7B,AAuEA,YACI,EAAsB,EAAgC,YACtD,EAAwB,KAAM,EAAW,IAC3C,EAAI,EAAgB,EAAG,IAAK,QAE5B,KAAM,GAAO,GAAS,EAAG,EAAK,GAC9B,GAAI,GAAgB,EAAK,MACzB,GAAI,GACF,KAAM,GAAO,EAAe,EAAM,EAAE,OACpC,EAAgB,AAAU,GAAqB,EAAK,MAAO,GAE7D,MAAO,GAAQ,EAAM,GAGvB,YACI,EAAW,EAAkB,EAAwB,MACvD,GAAI,EAAE,OAAS,EACb,MAAO,IAAI,GAIb,GAAI,EAAE,OAAS,GAAK,IAAS,KAC3B,MAAO,IAAS,EAAQ,EAAG,CAAC,KAAM,EAAG,GAIvC,GAAI,EAAE,OAAS,GAAK,MAAO,IAAS,UAChC,MAAM,QAAQ,IAAS,EAAK,SAAW,GACzC,GAAI,IAAM,EACR,MAAO,GAAI,GAAI,GAAI,GAErB,GAAI,IAAM,SACR,MAAO,IAAI,GAAI,GAAI,GAErB,GAAI,IAAM,UACR,MAAO,IAAI,GAAI,GAAI,GAErB,GAAI,IAAM,aAAe,IAAM,EAE7B,MAAO,IAAK,EAAI,GAAI,GAAI,GAAI,EAAO,EAAG,UAAW,IAGnD,KAAM,IAAI,OAAM,qCAAqC,KAIvD,GAAI,MAAM,QAAQ,IAAS,EAAK,SAAW,GACzC,GAAI,IAAM,EACR,MAAO,IAAI,EAAI,GAAI,GAAI,EAAK,IAAK,EAAK,GAAK,GAE7C,GAAI,IAAM,SACR,MAAO,IAAI,EAAI,GAAI,GAAI,EAAK,IAAK,EAAK,IAExC,GAAI,IAAM,UACR,MAAO,IAAI,EAAI,GAAI,GAAI,EAAK,IAAK,EAAK,IAExC,GAAI,IAAM,OAAS,IAAM,YAEvB,MAAO,IAAK,EAAI,EAAO,GAAI,IAG7B,KAAM,IAAI,OAAM,qCAAqC,KAGvD,KAAM,IAAI,OAAM,gCAAgC,KAG3C,KAAM,IAAO,EAAG,CAAC,WC1IxB,AA0DA,YACI,EAAiB,EAAiB,EAClC,EAAsB,EAAa,IACrC,KAAM,GAAK,EAAgB,EAAG,IAAK,iBAC7B,EAAK,EAAgB,EAAG,IAAK,iBAC7B,EAAS,EAAgB,EAAO,QAAS,iBAE/C,GAAiB,EAAI,GACrB,AAAK,EACD,AAAK,GAAY,EAAG,MAAO,EAAG,OAAQ,IAAM,6BAEhD,KAAM,GAAM,EAAO,GACb,EAAgB,EAAI,EAAK,GAE/B,GAAI,GAAS,EAAI,EAAI,EAAI,GAAK,GAC9B,GAAI,GACF,AAAK,EACD,GAAQ,KAAM,IAAM,kDACxB,KAAM,GAAQ,EAAgB,EAAM,OAAQ,iBAC5C,EAAS,EAAI,EAAQ,EAAI,EAAK,GAAI,EAAQ,KAE5C,MAAO,GAAI,EAAI,GAGV,KAAM,IAAgB,EAAG,CAAC,oBChEjC,4FAQM,YACF,EAAiB,EAAiB,GACpC,KAAM,GAAY,EAAQ,KAAO,EAAK,EAAQ,MAAM,EAAQ,KAAO,GAAK,EAClE,EAAY,EAAQ,KAAO,EAAK,EAAQ,KAAO,EAAI,EAEnD,EAAa,6FACyB,EAAQ,yBAC5B,EAAQ,iBAAiB,gBAC9B,oBAA2B,KAE9C,GAAI,EAAQ,KAAO,EACjB,KAAM,IAAI,OAAM,EAAa,kBAAkB,OAEjD,GAAI,EAAM,OAAS,EAAY,GAAQ,KAAO,GAC5C,KAAM,IAAI,OACN,EACA,0BAA0B,EAAY,GAAQ,KAAO,MAE3D,GAAI,EAAQ,OAAS,EAAW,EAAM,OAAS,EAC7C,KAAM,IAAI,OACN,EAAa,mBAAmB,EAAW,EAAM,OAAS,KAEhE,OAAS,GAAI,EAAG,EAAI,EAAU,EAAE,EAC9B,GAAI,EAAQ,MAAM,KAAO,EAAQ,MAAM,GACrC,KAAM,IAAI,OACN,EACA,kBAAkB,OAAO,EAAQ,MAAM,wBAAwB,OAC3D,EAAQ,MAAM,QAG1B,OAAS,GAAI,EAAG,EAAI,EAAQ,KAAO,EAAU,EAAE,EAC7C,GAAI,EAAQ,MAAM,EAAI,KAAc,EAAM,EAAI,GAC5C,KAAM,IAAI,OACN,EACA,kBAAkB,EAAI,OAClB,EAAQ,MAAM,EAAI,gBAAuB,EAAI,OAC7C,EAAM,EAAI,OAmBlB,YACF,EAAiB,EAAiB,GACpC,GAAI,EAAQ,KAAO,EACjB,KAAM,IAAI,OACN,+EACqB,EAAQ,SAEnC,GAAI,EAAQ,KAAO,EACjB,KAAM,IAAI,OACN,+EACqB,EAAQ,SAEnC,GAAI,EAAQ,QAAU,QACpB,KAAM,IAAI,OAAM,0DACZ,EAAQ,SAEd,GAAI,EAAM,OAAS,EACjB,KAAM,IAAI,OACN,6DAA6D,KAGnE,GAAI,EAAM,SAAW,GACnB,GAAI,EAAQ,OAAS,EACnB,KAAM,IAAI,OAAM,sDACZ,EAAQ,SAEd,GAAI,EAAQ,OAAS,EACnB,KAAM,IAAI,OAAM,sDACZ,EAAQ,SAIhB,GAAoB,EAAO,EAAS,GAYhC,YACF,EAAqB,EACrB,GAEF,KAAM,GAAc,EAAQ,MAAM,OAC5B,EAAa,EAAc,EAAK,EAAQ,MAAM,EAAc,GAAK,EAKjE,EAAU,EAAM,OAEtB,GAAI,GAAY,EAChB,OAAS,GAAI,EAAW,EAAI,EAAS,EAAE,EACrC,GAAa,EAAM,GAGrB,KAAM,GAAgB,EAAY,EAAK,EAAI,EACrC,EAAa,GAAc,EAAQ,OAAS,EAE5C,EAAU,CAAC,GAAG,GAAe,EAAM,MAAM,EAAG,IAAa,GACzD,EAAa,GAAc,GACjC,MAAO,CAAC,YAAW,aAAY,YAAW,UAAS,cCnJrD,AA8CA,YACI,EAA4B,EAC5B,GACF,KAAM,GAAW,EAAgB,EAAS,UAAW,YAAa,SAC5D,EAAW,EAAgB,EAAS,UAAW,aACrD,AAAgB,GAAc,EAAU,EAAU,GAElD,KAAM,GAA+B,AAAC,GAC7B,EAAQ,UAAU,EAAU,EAAU,GAGzC,EAA0B,CAAC,QAAS,EAAU,QAAS,GACvD,EAAwB,CAAC,SAE/B,MAAO,GAAO,cACH,EAAS,EAAgC,KACzC,GAAW,GAGjB,KAAM,IAAY,EAAG,CAAC,gBClCvB,YACF,EAAuB,EAAsB,EAC7C,GACF,GAAI,EAAc,QAAU,QAC1B,KAAM,IAAI,OACN,8EACsB,EAAc,UAE1C,GAAI,EAAc,KAAO,EACvB,KAAM,IAAI,OACN,sEACkB,EAAc,UAGtC,KAAM,GAAW,EAAc,KAAO,EAAI,EAAc,MAAM,GAAK,EAC7D,EAAU,EAAc,KAAO,EAAI,EAAc,MAAM,GAAK,EAElE,GAAI,EAAY,SAAW,EACzB,KAAM,IAAI,OACN,kDACI,EAAY,sBAAsB,MAG5C,KAAM,GAAY,EAAa,KAC/B,GAAI,CAAE,GAAa,OAAS,GACtB,EAAa,OAAS,GAAK,IAAc,GAC7C,KAAM,IAAI,OACN,oCACG,EAAa,2BAA2B,MAGjD,GAAI,EAAa,QAAU,EAAc,MACvC,KAAM,IAAI,OAAM,qDC/DpB,AAiEA,YACI,EAAkC,EAClC,EAA0B,EAAkC,GAC9D,KAAM,GACF,EAAgB,EAAe,gBAAiB,gBAAiB,SAC/D,EACF,EAAgB,EAAc,eAAgB,iBAC5C,EAAgB,EAClB,EAAc,eAAgB,gBAAiB,EAAc,OAEjE,AAAgB,GACZ,EAAgB,EAAe,EAAa,GAEhD,KAAM,GAA8B,CAClC,cAAe,EACf,aAAc,EACd,aAAc,GAGV,EAA4B,CAAC,eAEnC,MAAO,GAAO,cACV,GAAW,EAAQ,cACf,EAAgB,EAAe,EAAa,GAChD,EAAgC,KAAiB,GACjD,GAGC,KAAM,IAAgB,EAAG,CAAC,oBC7FjC,AA6DA,YAAmB,EAAsB,GACvC,KAAM,GAAW,EAAgB,EAAS,UAAW,WAAY,SAC3D,EAAK,EAAgB,EAAG,IAAK,YAE7B,EAA+B,AAAC,GAC7B,EAAQ,SAAS,EAAI,GAGxB,EAAyB,CAAC,OAAQ,EAAI,QAAS,GAErD,MAAO,GAAO,cACV,EAAS,EAAgC,KAAqB,IAG7D,KAAM,IAAW,EAAG,CAAC,eC3E5B,AA4BM,YAAwB,EAAW,GACvC,GAAI,GAAc,KAChB,MAAO,GAAE,MAAM,QAEjB,GAAI,AAAK,GAAY,EAAE,MAAO,GAC5B,MAAO,GAET,GAAI,EAAE,MAAM,SAAW,EAAW,QAChC,KAAM,GAAyB,GAC/B,OAAS,GAAI,EAAG,EAAI,EAAE,MAAM,OAAQ,IAClC,AAAI,EAAW,IAAM,MAAQ,EAAE,MAAM,IAAM,KACzC,EAAa,KAAK,EAAE,MAAM,IAE1B,EAAa,KAAK,EAAW,IAGjC,MAAO,GAGT,MAAO,GC/CT,AAmDA,YACI,EAAsB,EAAc,EACpC,GACF,KAAM,GAAK,EAAgB,EAAG,IAAK,WAUnC,GARA,AAAK,EACD,EAAG,QAAU,UACb,IAAM,gFACmB,EAAG,yBAChC,AAAK,EACD,GAAQ,GAAK,EAAO,EACpB,IAAM,qDAAqD,MAE3D,IAAS,EACX,MAAO,aAAa,IAAS,EAAG,QAAU,EAG5C,KAAM,GAAc,GAAc,EAAI,GAChC,EAAW,EAAI,EACf,EAAa,EACf,GAAM,EAAI,GAAc,EAAa,EAAG,EAAG,UAAW,GAAO,IAC7D,GAEJ,MAAO,GAAI,EAAI,GAGV,KAAM,IAAU,EAAG,CAAC,cC7E3B,AAoBM,YAA8B,GAElC,MAAO,MAAK,MAAM,KAAK,IAAI,EAAG,KAAK,KAAK,KAAK,IAAI,GAAS,KAAK,IAAI,MAG/D,YACF,EAAsB,EAAW,GACnC,KAAM,GAAO,EAAI,EAAe,EAC1B,EAAY,GAAI,cAAa,GACnC,OAAS,GAAI,EAAG,EAAI,EAAc,EAAE,GAClC,KAAM,GAAU,EAAM,KAAK,GAAK,EAAM,GAAe,EAAO,GAC5D,EAAU,GAAK,EAAI,EAAI,KAAK,IAAI,GAElC,MAAO,IAAS,EAAW,WCjC7B,AAuCA,kBACI,EAA2B,EAAuB,EAAI,GACxD,KAAM,GAAe,EAAgB,EAAa,cAAe,UAC3D,EAAW,EAAgB,EAAS,UAAW,UAErD,EACI,EAAa,KAAO,EACpB,IAAM,uEACS,EAAa,QAChC,EACI,EAAa,KAAO,IAAM,EAAS,KACnC,IAAM,mFAEC,EAAa,yBAAyB,EAAS,QAC1D,EACI,EAAa,MAAM,MAAM,EAAG,EAAa,MAAM,OAAS,GACxD,EAAS,MACT,2FAEJ,KAAM,GAAU,EAAa,MAAM,EAAa,MAAM,OAAS,GAC/D,EACI,EAAI,GAAK,GAAK,EACd,IAAM,4EACY,eAAqB,KAE3C,KAAM,GAAkB,KAAM,GAAa,OACrC,EAAc,KAAM,GAAS,OAI7B,CAAC,EAAO,GAAQ,CAAC,EAAgB,OAAS,EAAS,GACnD,EAAY,GAAuB,OAAQ,GAEjD,OAAS,GAAI,EAAG,EAAI,EAAO,KACzB,KAAM,GAAS,EAAI,EACb,EAAO,EAAgB,SAAS,EAAQ,EAAS,GACjD,EAAmD,GACzD,OAAS,GAAI,EAAG,EAAI,EAAK,OAAQ,IAC/B,EAAU,KAAK,CAAC,MAAO,EAAK,GAAI,MAAO,IAEzC,EAAU,KAAK,CAAC,EAAG,IAAM,EAAE,MAAQ,EAAE,OAErC,EAAU,GAAK,EACf,OAAS,GAAI,EAAG,EAAI,EAAG,IACrB,GAAI,EAAU,GAAG,QAAU,EAAY,IACrC,EAAU,GAAK,EACf,OAKN,MAAI,KAAgB,GAClB,EAAa,UAEf,AAAI,IAAY,GACd,EAAS,UAIJ,GAAO,EAAW,EAAS,MAAO,QAGpC,KAAM,IAAc,GCrG3B,AAiDA,YACI,EAAM,EAAO,EACb,EACA,EACA,EAA4B,OAC5B,GACF,GAAI,GAAM,EACV,AAAI,EAAE,OAAS,GACb,GAAM,EAAQ,EAAG,CAAC,EAAG,EAAE,MAAM,GAAI,EAAE,MAAM,GAAI,EAAE,MAAM,MAEvD,GAAI,GAAO,EACX,AAAI,EAAK,OAAS,GAChB,GAAO,EAAQ,EAAI,CAAC,EAAG,EAAG,MAAM,GAAI,EAAG,MAAM,GAAI,EAAG,MAAM,MAE5D,AAAK,EACD,EAAI,OAAS,EACb,IAAM,iEACC,EAAI,UACf,AAAK,EACD,EAAK,OAAS,EACd,IAAM,8DACC,EAAK,UAChB,AAAK,EACD,EAAY,SAAW,EACvB,IAAM,mEACC,MACX,KAAM,GAAU,IAAe,OAAS,EAAI,MAAM,GAAK,EAAI,MAAM,GAC3D,EAAW,IAAe,OAAS,EAAK,MAAM,GAAK,EAAK,MAAM,GACpE,AAAK,EACD,IAAY,EAAY,GACxB,IAAM,4CAA4C,wCACd,EAAY,OACpD,AAAK,EACD,IAAa,EAAY,GACzB,IAAM,0CAA0C,0CACV,EAAY,QACtD,AAAI,GAAmB,MACrB,AAAK,EACD,AAAK,EAAM,GACX,IAAM,gFACiB,iBAA+B,MAG5D,KAAM,GAA+B,IACnC,KAAM,GAAY,EACZ,EAAc,AAAU,GAAwB,GAChD,EAAW,AAAU,GACvB,EAAI,MAAO,EAAa,EAAS,EAAW,EAAK,EAAiB,GAClE,GAEJ,MAAO,GAAQ,gBAAgB,EAAK,EAAM,IAGtC,EAAqC,CAAC,EAAG,EAAK,GAAI,GAClD,EAC0B,CAAC,UAAS,MAAK,aAAY,mBAE3D,MAAO,GAAO,cACH,EAAS,EAAgC,KACzC,GAAsB,GAG5B,KAAM,IAAuB,EAAG,CAAC,2BC/GxC,AA+BM,YACF,EAAY,EAAW,GACzB,GAAI,GAAc,MAAQ,IAAe,SACvC,MAAO,GAET,GAAI,IAAe,OACjB,MAAO,GAAI,EAAI,GAAK,IAEtB,KAAM,IAAI,OACN,gDAAgD,MAIhD,YACF,EAAc,GAChB,GAAI,GAAM,EACV,KAAM,GACF,AAAe,GAAiB,EAAK,MAAO,EAAa,OAC7D,MAAI,GAAW,OAAS,GACtB,GAAM,EAAI,EAAK,IAEV,EAAQ,EAAK,EAAK,OAGrB,YACF,EAAW,EACX,GACF,GAAI,IAAe,SACjB,MAAO,GACF,GAAI,IAAe,OACxB,MAAO,IAAK,GACP,GAAI,IAAe,MACxB,MAAO,IAAI,GACN,GAAI,IAAe,QACxB,MAAO,IAAM,GACR,GAAI,IAAe,QACxB,MAAO,IAAM,EAAG,GAElB,KAAM,IAAI,OAAM,4BAA4B,MAIvC,KAAM,IAAa,CAAC,EAAuB,KAChD,KAAM,GAAe,EAAgB,EACrC,MAAO,CAAC,GAAgB,IAAe,UC3EzC,AA+FA,YAAmD,CACjD,IACA,SACA,UACA,MACA,aAAa,OACb,YAAY,CAAC,EAAG,GAChB,kBACA,OACA,aAAa,SACb,2BAeA,GAFA,EAAa,GAAc,SAEvB,GAAW,EAAO,MAAM,cAAe,KAAgB,IACzD,GAAI,GAAS,GACT,EAAG,EAAQ,EAAS,EAAK,EAAY,EAAW,GACpD,MAAI,IAAQ,MACV,GAAS,EAAI,EAAQ,IAGhB,GAAgB,EAAQ,EAAY,GAG7C,KAAM,GAAK,EAAgB,EAAG,IAAK,UAC7B,EAAU,EAAgB,EAAQ,SAAU,UAElD,GAAI,GAAM,EACN,EAAe,GAEnB,AAAI,EAAG,OAAS,GACd,GAAe,GACf,EAAM,EAAQ,EAAI,CAAC,EAAG,EAAG,MAAM,GAAI,EAAG,MAAM,GAAI,EAAG,MAAM,MAE3D,AAAK,EACD,EAAI,OAAS,EACb,IAAM,6DACC,EAAI,SACf,AAAK,EACD,EAAQ,OAAS,EACjB,IAAM,8DACC,EAAQ,SACnB,AAAI,GAAmB,MACrB,AAAK,EACD,AAAK,EAAM,GACX,IAAM,6EACiB,iBAA+B,MAG5D,AAAK,EACD,EAAI,MAAM,KAAO,EAAQ,MAAM,GAC/B,IAAM,oCAAoC,EAAI,MAAM,yCACtB,EAAQ,MAAM,OAChD,AAAK,EACD,AAAU,GAA+B,EAAS,GAClD,IAAM,uEACa,oBAA0B,MACjD,AAAK,EACD,IAAe,OACf,IAAM,sCACF,2CAER,KAAM,GAAW,AAAU,GACvB,EAAI,MAAO,EAAQ,MAAO,EAAS,EAAW,EAAK,GAEvD,GAAI,GACJ,AAAI,GAAQ,MACV,GAAQ,EAAgB,EAAM,OAAQ,gBACtC,CAAC,GAAS,EAAe,EAAO,GAEhC,AAAe,EAA2B,EAAS,SAAU,EAAM,QAGrE,GAAI,GACJ,AAAI,GAA0B,MAC5B,GAA0B,EACtB,EAAwB,gBAAiB,iBAG/C,KAAM,GAAO,CAAC,EAAc,KAC1B,KAAM,CAAC,EAAS,EAAK,EAAG,GACpB,EAEE,GAAe,GAAqB,EAAI,EAAG,GAEjD,AAAK,EACD,AAAU,GAAkB,GAC5B,IAAM,uHAEoD,MAE9D,KAAM,IACF,GAAoB,EAAI,MAAO,GAAc,EAAS,EAAS,GAC7D,GACF,GAAqB,EAAK,GAAc,EAAQ,MAAO,EAAS,GAC9D,GAAgB,CAAC,GAAM,IAE7B,GAAI,GAAS,MACX,KAAM,IAAU,GAAqB,EAAO,IAC5C,GAAI,KAAK,IAEX,MAAO,KAGH,EAA+B,AAAC,IACpC,KAAM,GAAM,EAAQ,YAAY,CAC9B,MAAO,EACP,OAAQ,EACR,WACA,KAAM,EACN,aACA,uBAAwB,IAE1B,MAAO,IAGH,EAA4B,CAChC,EAAG,EACH,OAAQ,EACR,KAAM,EACN,uBAAwB,GAGpB,EACF,CAAC,UAAS,MAAK,aAAY,YAAW,kBAAiB,cAI3D,GAAI,GAAQ,MACV,KAAM,GACF,GAAW,CAAC,EAAe,EAAkB,KAC3C,GAAI,GAAM,EAAO,cACb,EAAS,EAAgC,KACzC,GAAa,GAEjB,SAAK,CAAC,EAAQ,EAAK,IAEnB,AAAI,GACF,GAAM,EAAQ,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,MAGrD,CAAC,MAAO,EAAK,SAAU,KAEpC,MAAO,GAAS,EAAK,QAErB,KAAM,GAAmB,GACrB,CAAC,EAAe,EAAkB,EAAc,KAC9C,GAAI,GAAM,EAAO,cACb,EAAS,EAAgC,KACzC,GAAa,GAEjB,SAAK,CAAC,EAAQ,EAAK,EAAK,IAExB,AAAI,GACF,GAAM,EAAQ,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,MAGrD,CAAC,MAAO,EAAK,SAAU,KAGpC,MAAO,GAAiB,EAAK,EAAS,IAGnC,KAAM,IAAS,EAAG,CAAC,kBC7Q1B,AAyBA,YACI,EAAM,EAAO,EACb,GACF,GAAI,GAAM,EACV,AAAI,EAAE,OAAS,GACb,GAAM,EAAQ,EAAG,CAAC,EAAG,EAAE,MAAM,GAAI,EAAE,MAAM,GAAI,EAAE,MAAM,MAEvD,GAAI,GAAO,EACX,AAAI,EAAK,OAAS,GAChB,GAAO,EAAQ,EAAI,CAAC,EAAG,EAAG,MAAM,GAAI,EAAG,MAAM,GAAI,EAAG,MAAM,MAG5D,KAAM,GAA+B,GACjC,EAAQ,yBAAyB,EAAK,EAAM,GAE1C,EAAoD,CAAC,EAAG,EAAK,GAAI,GAEvE,MAAO,GAAO,cACH,EAAS,EAAgC,KACzC,IAGN,KAAM,IACT,EAAG,CAAC,0CChDR,AAyBA,YACI,EAAmE,EACnE,EAAkB,GACpB,GAAI,GAAO,EACP,EAAe,GACnB,AAAI,EAAG,OAAS,GACd,GAAe,GACf,EAAO,EAAQ,EAAI,CAAC,EAAG,EAAG,MAAM,GAAI,EAAG,MAAM,GAAI,EAAG,MAAM,MAG5D,KAAM,GAA+B,GACjC,EAAQ,wBAAwB,EAAM,EAAQ,GAE5C,EAAmD,CAAC,GAAI,GAExD,EAAM,EAAO,cACf,EAAS,EAAgC,KACzC,IAEJ,MAAI,GACK,EAAQ,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,KAEtD,EAGF,KAAM,IACT,EAAG,CAAC,yCCnDR,AAyFA,YAA4D,CAC1D,IACA,SACA,UACA,MACA,aAAa,OACb,YAAY,CAAC,EAAG,GAChB,kBACA,OACA,aAAa,SACb,2BAaA,GAAI,GAAW,EAAO,MAAM,cAAe,KAAgB,IACzD,GAAI,GAAS,GACT,EAAG,EAAQ,EAAS,EAAK,EAAY,EAAW,GACpD,MAAI,IAAQ,MACV,GAAS,EAAI,EAAQ,IAGhB,GAAgB,EAAQ,EAAY,GAG7C,KAAM,GAAK,EAAgB,EAAG,IAAK,mBAC7B,EAAU,EAAgB,EAAQ,SAAU,mBAElD,GAAI,GAAM,EACN,EAAe,GACnB,AAAI,EAAG,OAAS,GACd,GAAe,GACf,EAAM,EAAQ,EAAI,CAAC,EAAG,EAAG,MAAM,GAAI,EAAG,MAAM,GAAI,EAAG,MAAM,MAE3D,AAAK,EACD,EAAI,OAAS,EACb,IAAM,sEACM,EAAI,SACpB,AAAK,EACD,EAAQ,OAAS,EACjB,IAAM,uEACc,EAAQ,SAChC,AAAK,EACD,EAAI,MAAM,KAAO,EAAQ,MAAM,GAC/B,IAAM,6DACE,EAAI,MAAM,qDACJ,EAAQ,MAAM,OAChC,AAAI,GAAa,MACf,GAAY,CAAC,EAAG,IAElB,AAAK,EACD,AAAU,GAA+B,EAAS,GAClD,IACI,sFACqB,oBAA0B,MAEvD,AAAI,GAAmB,MACrB,AAAK,EACD,AAAK,EAAM,GACX,IAAM,qFACuB,iBAA+B,MAGlE,KAAM,GAAW,AAAU,GACvB,EAAI,MAAO,EAAQ,MAAO,EAAS,EAAW,EAAK,EACnD,IAEJ,GAAI,GACJ,AAAI,GAAQ,MACV,GAAQ,EAAgB,EAAM,OAAQ,gBACtC,CAAC,GAAS,EAAe,EAAO,GAEhC,AAAe,EAA2B,EAAS,SAAU,EAAM,QAGrE,GAAI,GACJ,AAAI,GAA0B,MAC5B,GAA0B,EACtB,EAAwB,gBAAiB,0BAG/C,KAAM,GAAO,CAAC,EAAc,KAC1B,AAAK,EACD,AAAU,GAAkB,GAC5B,IAAM,mHAEE,MACZ,KAAM,CAAC,EAAS,EAAK,EAAG,GAAQ,EAE1B,GAAe,GAAqB,EAAI,EAAG,GAE3C,GAAO,GACR,EAAiB,MAAO,GAAc,EAAqB,GAC1D,GAAY,GACd,EAAiB,GAAe,EAAqB,MAAO,GAEhE,GAAI,GAAQ,MACV,KAAM,IAAU,GAAqB,EAAO,IAC5C,MAAO,CAAC,GAAM,GAAW,IAE3B,MAAO,CAAC,GAAM,KAGV,EAA+B,AAAC,IACpC,KAAM,GAAM,EAAQ,qBAAqB,CACvC,MAAO,EACP,OAAQ,EACR,WACA,KAAM,EACN,aACA,uBAAwB,IAE1B,MAAO,IAGH,EAAqC,CACzC,EAAG,EACH,OAAQ,EACR,KAAM,EACN,uBAAwB,GAEpB,EACF,CAAC,UAAS,MAAK,aAAY,YAAW,kBAAiB,cAI3D,GAAI,GAAQ,MACV,KAAM,GACF,GAAW,CAAC,EAAe,EAAkB,KAC3C,GAAI,GAAM,EAAO,cACb,EAAS,EAAgC,KACzC,GAAsB,GAE1B,SAAK,CAAC,EAAQ,EAAK,IAEnB,AAAI,GACF,GAAM,EAAQ,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,MAGrD,CAAC,MAAO,EAAK,SAAU,KAEpC,MAAO,GAAS,EAAK,QAErB,KAAM,GAAmB,GACrB,CAAC,EAAe,EAAkB,EAAc,KAC9C,GAAI,GAAM,EAAO,cACb,EAAS,EAAgC,KACzC,GAAsB,GAE1B,SAAK,CAAC,EAAQ,EAAK,EAAK,IAExB,AAAI,GACF,GAAM,EAAQ,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,MAGrD,CAAC,MAAO,EAAK,SAAU,KAGpC,MAAO,GAAiB,EAAK,EAAS,IAGnC,KAAM,IAAkB,EAAG,CAAC,2BClQnC,AAwDA,YAAwC,CACtC,IACA,IACA,aAAa,GACb,aAAa,GACb,OACA,aAAa,SACb,2BAUA,GAAI,GAAW,EAAO,MAAM,cAAe,KAAgB,IACzD,GAAI,GAAS,EAAc,EAAG,EAAG,EAAY,GAC7C,MAAI,IAAQ,MACV,GAAS,EAAI,EAAQ,IAGhB,GAAgB,EAAQ,EAAY,GAG7C,GAAI,GAAK,EAAgB,EAAG,IAAK,gBAC7B,EAAK,EAAgB,EAAG,IAAK,gBACjC,CAAC,EAAI,GAAM,EAAe,EAAI,GAE9B,KAAM,GACF,EAAa,EAAG,MAAM,EAAG,KAAO,GAAK,EAAG,MAAM,EAAG,KAAO,GACtD,EACF,EAAa,EAAG,MAAM,EAAG,KAAO,GAAK,EAAG,MAAM,EAAG,KAAO,GAEtD,EACF,EAAa,EAAG,MAAM,EAAG,KAAO,GAAK,EAAG,MAAM,EAAG,KAAO,GACtD,EACF,EAAa,EAAG,MAAM,EAAG,KAAO,GAAK,EAAG,MAAM,EAAG,KAAO,GAEtD,EAAa,EAAG,MAAM,MAAM,EAAG,IAC/B,EAAa,EAAG,MAAM,MAAM,EAAG,IAC/B,EAAY,AAAK,GAAc,GAC/B,EAAY,AAAK,GAAc,GAErC,AAAK,EACD,EAAG,MAAQ,GAAK,EAAG,MAAQ,GAAK,EAAG,OAAS,EAAG,KAC/C,IACI,kFACgB,EAAG,YAAY,EAAG,SAE1C,AAAK,EACD,AAAK,GAAY,EAAY,GAC7B,IAAM,4CAA4C,WAC3C,6BAAsC,EAAG,aACzC,EAAG,qBAEd,AAAK,EACD,IAAgB,EAChB,IAAM,wCAAwC,WACvC,6BAAuC,EAAG,aAC1C,EAAG,wBAAwB,oBACX,iBAE3B,KAAM,GAAW,EAAG,MAAM,MAAM,EAAG,IAAI,OAAO,CAAC,EAAa,IAEtD,EAAgB,EAClB,EAAQ,EAAI,CAAC,EAAW,EAAa,IACrC,EAAQ,EAAI,CAAC,EAAW,EAAa,IACnC,EAAgB,EAClB,EAAQ,EAAI,CAAC,EAAW,EAAa,IACrC,EAAQ,EAAI,CAAC,EAAW,EAAa,IAEzC,GAAI,GACJ,AAAI,GAAQ,MACV,GAAQ,EAAgB,EAAM,OAAQ,gBACtC,CAAC,GAAS,EAAe,EAAO,GAEhC,AAAe,EAA2B,EAAU,EAAM,QAG5D,GAAI,GACJ,AAAI,GAA0B,MAC5B,GAA0B,EACtB,EAAwB,gBAAiB,iBAG/C,KAAM,GAAO,CAAC,EAAc,MAC1B,KAAM,CAAC,GAAK,GAAK,GAAG,IAAS,GAIvB,GACF,GAAqB,EAAQ,EAAI,GAAE,OAAQ,GAAG,GAClD,GAAI,IACA,GAgBJ,GAdA,AAAI,CAAC,GAAc,CAAC,EAClB,IAAO,EAAc,GAAc,GAAK,GAAO,IAC/C,GAAO,EAAc,GAAK,GAAc,GAAM,KACzC,AAAI,CAAC,GAAc,EACxB,IAAO,EAAc,GAAc,GAAK,GAAO,IAC/C,GAAO,EAAc,GAAc,GAAK,GAAM,KACzC,AAAI,GAAc,CAAC,EACxB,IAAO,EAAc,GAAK,GAAc,GAAO,IAC/C,GAAO,EAAc,GAAK,GAAc,GAAO,KAE/C,IAAO,EAAc,GAAK,GAAc,GAAM,IAC9C,GAAO,EAAc,GAAc,GAAK,GAAM,KAG5C,GAAQ,MACV,KAAM,IAAU,GAAqB,GAAO,IAC5C,MAAO,CAAC,GAAM,GAAM,QAEpB,OAAO,CAAC,GAAM,KAIZ,EAA+B,AAAC,IACpC,KAAM,IAAI,EAAQ,iBAAiB,CACjC,EAAG,EACH,EAAG,EACH,aACA,aACA,KAAM,EACN,aACA,uBAAwB,IAE1B,MAAO,KAGH,EAA6B,CACjC,EAAG,EACH,EAAG,EACH,KAAM,EACN,uBAAwB,GAEpB,EAA2B,CAAC,aAAY,aAAY,cAI1D,GAAI,GAAQ,MACV,KAAM,GACF,GAAW,CAAC,GAAe,GAAe,MACxC,KAAM,IAAM,EAAO,cACf,EAAS,EAAgC,KACzC,GAAc,GAElB,UAAK,CAAC,GAAK,GAAK,KAET,CAAC,MAAO,EAAQ,GAAK,GAAW,SAAU,KAEvD,MAAO,GAAS,EAAK,QAErB,KAAM,GAAmB,GACrB,CAAC,GAAe,GAAe,GAAe,MAC5C,KAAM,IAAM,EAAO,cACf,EAAS,EAAgC,KACzC,GAAc,GAElB,UAAK,CAAC,GAAK,GAAK,GAAK,KAEd,CAAC,MAAO,EAAQ,GAAK,GAAW,SAAU,KAGvD,MAAO,GAAiB,EAAK,EAAK,IAI/B,KAAM,IAAS,EAAG,CAAC,kBClO1B,wECAA,AAkCA,YAAwB,GACtB,MAAO,IAAa,EAAc,IAAM,KAEnC,KAAM,IAAgB,EAAG,CAAC,oBCrCjC,AAkCA,YAAqB,GACnB,MAAO,IAAa,EAAc,GAAK,IAGlC,KAAM,IAAa,EAAG,CAAC,iBCtC9B,AA2CA,YACI,EAAkB,EAAqB,EAAmB,EAAS,GACnE,EAAW,GACb,GAAI,GAAQ,EACZ,KAAM,GAAmB,GACzB,KAAO,EAAQ,GAAe,EAAO,MACnC,EAAO,KAAK,EAAM,EAAQ,EAAO,IACjC,GAAS,EAGX,GAAI,EACF,KAAO,EAAQ,EAAO,OACpB,KAAM,GAAU,EAAQ,EAAe,EAAO,KACxC,EAAM,EAAO,CACjB,EAAM,EAAQ,EAAO,EAAc,GAAS,GAAK,CAAC,GAAS,KAE7D,EAAO,KAAK,GACZ,GAAS,EAIb,MAAI,GAAO,SAAW,EACb,GAAS,GAAI,CAAC,EAAG,IAGnB,EAAQ,EAAO,GAAS,CAAC,EAAO,OAAQ,IAE1C,KAAM,IAAQ,EAAG,CAAC,YCtEzB,AA6CA,YACI,EAAkB,EAAqB,EACvC,EACA,EAAyC,IAC3C,AAAI,GAAa,MACf,GAAY,GAAoB,IAElC,KAAM,GAAe,GAAM,EAAQ,EAAa,GAC1C,EAAiB,EAAI,EAAc,EAAS,IAC5C,EAAmB,GACzB,OAAS,GAAI,EAAG,EAAI,EAAa,MAAM,GAAI,IACzC,EAAO,KACH,GAAK,EAAM,EAAgB,CAAC,EAAG,GAAI,CAAC,EAAG,IAAe,IAE5D,MAAO,GAAO,GAET,KAAM,IAAO,EAAG,CAAC,WC7DxB,AAkDA,YACI,EACA,EACA,EACA,EACA,EACA,GAEF,KAAM,GAAS,EAAgB,EAAO,QAAS,iBACzC,EAAS,EAAgB,EAAO,QAAS,gBAAiB,WAC1D,EAAU,EAAgB,EAAQ,SAAU,gBAAiB,SACnE,EAAS,GAAU,WACnB,EAAqB,GAAsB,EAE3C,KAAM,GAAW,EAAO,MAAM,GAE9B,AAAK,EACD,EAAO,OAAS,EAChB,IAAM,6DACc,EAAO,SAC/B,AAAK,EACD,EAAO,OAAS,GAAK,EAAO,MAAM,KAAO,EACzC,IAAM,oDAAoD,sBACrC,EAAO,UAChC,AAAK,EACD,EAAQ,OAAS,GAAK,EAAQ,MAAM,KAAO,EAC3C,IAAM,qDAAqD,oBACtC,EAAO,UAChC,AAAK,EACD,EAAS,SAAW,EACpB,IAAM,wEACQ,EAAS,WAC3B,AAAK,EACD,EAAS,IAAM,GAAK,EAAS,IAAM,EACnC,IAAM,2CAA2C,KACrD,AAAK,EACD,IAAW,YAAc,IAAW,UACpC,IAAM,+CAA+C,KAEzD,KAAM,GAAiC,AAAC,GAAY,EAAQ,cACxD,EAAQ,EAAQ,EAAS,EAAU,EAAQ,GAEzC,EACoB,CAAC,MAAO,EAAQ,MAAO,EAAQ,OAAQ,GAC3D,EAA4B,CAAC,SAAQ,qBAAoB,YACzD,EAAM,EAAO,cACf,EAAS,EAAgC,KAAiB,GAC1D,GACJ,MAAO,GAGF,KAAM,IAAgB,EAAG,CAAC,oBCrGjC,AAkCA,YAAwB,GACtB,KAAM,GAAS,EAAgB,EAAO,QAAS,gBAAiB,WAEhE,AAAK,EACD,EAAO,OAAS,EAChB,IAAM,6DACc,EAAO,SAE/B,KAAM,GAA8B,CAAC,MAAO,GACtC,EACF,EAAO,UAAU,GAAe,EAAgC,IACpE,MAAO,GAGF,KAAM,IAAgB,EAAG,CAAC,oBChDjC,AA2CA,YACI,EAA4B,EAC5B,EAA6C,EAC7C,EAAkC,IACpC,KAAM,GAAS,EAAgB,EAAO,QAAS,mBAAoB,WAEnE,AAAK,EACD,EAAO,OAAS,EAChB,IAAM,gEACc,EAAO,SAE/B,KAAM,GAAiC,CAAC,MAAO,GACzC,EAA+B,CAAC,UAAS,YAAW,UACpD,EAAM,EAAO,UACf,GAAkB,EAClB,GACJ,MAAO,GAGF,KAAM,IAAmB,EAAG,CAAC,uBC9DpC,AAoBA,YACI,EAAiB,EAAkB,EACnC,EAAsB,EAAwB,GAMhD,AAAI,GAAgB,MAClB,GAAe,IAEjB,AAAI,GAAkB,MACpB,GAAiB,OAAO,mBAE1B,AAAI,GAAgB,MAClB,GAAe,GAGjB,KAAM,GAAW,EAAM,MAAM,GAC7B,SAAgB,KAAK,IAAI,EAAe,GAExC,AAAK,EACD,GAAK,GAAgB,GAAgB,EACrC,IAAM,4CAA4C,MACtD,AAAK,EACD,EAAM,OAAS,EACf,IAAM,+CAA+C,EAAM,SAC/D,AAAK,EACD,EAAM,MAAM,KAAO,EACnB,IACI,oDAAoD,EAAM,MAAM,MACxE,AAAK,EAAO,EAAO,OAAS,EAAG,IAAM,8BACrC,AAAK,EACD,EAAO,MAAM,KAAO,EACpB,IAAM,sDAAsD,cAC7C,EAAO,MAAM,MAChC,AAAK,EACD,GAAK,GAAgB,GAAgB,EACrC,IAAM,4CAA4C,MAC/C,CAAC,gBAAe,eAAc,iBAAgB,gBC3DvD,AA0BA,YACI,EAA4B,EAC5B,EAAuB,EAAe,GACtC,EAAiB,OAAO,mBAC1B,KAAM,GAAS,EAAgB,EAAO,QAAS,qBACzC,EAAU,EAAgB,EAAQ,SAAU,qBAE5C,EAAS,GACX,EAAQ,EAAS,EAAe,EAAc,GAClD,EAAgB,EAAO,cACvB,EAAe,EAAO,aACtB,EAAiB,EAAO,eAExB,KAAM,GAAQ,CAAC,gBAAe,eAAc,kBAC5C,MAAO,GAAO,cACV,GAAK,EAAE,kBACH,EAAQ,EAAS,EAAe,EAAc,GAClD,CAAC,MAAO,EAAQ,OAAQ,GAAU,KAAiB,GACnD,GAGC,KAAM,IAAoB,EAAG,CAAC,wBC/CrC,AA8BM,YACF,EAAU,EAAY,GACxB,KAAM,GAAQ,GAAa,EAAK,EAAS,GACnC,EAAiB,EAAQ,EAAI,CAAE,GAAQ,GAAK,EAClD,EAAI,OAAO,EAAgB,EAAG,GAkB1B,YACF,EAAU,EAAW,GACvB,MAAO,IAAc,EAAK,EAAQ,GAAc,IAUlD,YAA8B,EAAM,GAClC,MAAO,GAAI,EAAI,EAAI,EAAI,EAAI,GAAK,EAGlC,YACI,EAAU,EAAW,GACvB,GAAI,GAAO,EACP,EAAQ,EAAI,OACZ,EAAS,EACT,EAAQ,GACZ,KAAO,EAAO,IACZ,EAAS,EAAS,GAAQ,IAAU,GACpC,KAAM,GAAgB,EAAW,EAAQ,EAAI,IAC7C,AAAI,EAAgB,EAClB,EAAO,EAAS,EAEhB,GAAQ,EAGR,EAAQ,CAAC,GAIb,MAAO,GAAQ,EAAO,CAAC,EAAO,ECvFhC,AAmCM,YACF,EAAmB,EAAoB,EACvC,EAAsB,GACxB,MAAO,IACI,EAAO,EAAQ,EAAe,EAAc,EAC5C,GACC,gBAGR,YACF,EAAmB,EAAoB,EACvC,EAAsB,EACtB,GACF,MAAO,IACH,EAAO,EAAQ,EAAe,EAAc,EAC5C,EAAsB,GACtB,EAA6C,IAI7C,YACF,EAAmB,EAAoB,EACvC,EAAsB,EACtB,GACF,MAAO,IACH,EAAO,EAAQ,EAAe,EAAc,EAAgB,EAC5D,IAGN,YACI,EAAmB,EAAoB,EACvC,EAAsB,EAAwB,EAC9C,EAAqB,GAAO,EAAqB,GACjD,EAAqB,IAGvB,KAAM,GAAa,GAEnB,OAAS,GAAI,EAAG,EAAI,EAAO,OAAQ,IACjC,AAAI,EAAO,GAAK,GACd,EAAW,KAAK,CAAC,MAAO,EAAO,GAAI,SAAU,EAAG,mBAAoB,IAIxE,EAAW,KAAK,IAIhB,KAAM,GAAQ,EAAe,EAAK,IAAO,EAAgB,EAEnD,EAA4B,GAC5B,EAA2B,GAEjC,KAAO,EAAgB,OAAS,GAAiB,EAAW,OAAS,IACnE,KAAM,GAAY,EAAW,MACvB,CAAC,MAAO,EAAe,WAAU,sBAAsB,EAE7D,GAAI,EAAgB,EAClB,MASF,GAAI,GAAkB,GACtB,OAAS,GAAI,EAAgB,OAAS,EAAG,GAAK,EAAoB,EAAE,GAClE,KAAM,GAAM,GAAsB,EAAO,EAAU,EAAgB,IAEnE,GAAI,GAAO,GACT,EAAkB,GAClB,MAMF,GAHA,EAAU,MACN,EAAU,MAAQ,GAAe,EAAc,EAAO,GAEtD,EAAU,OAAS,EACrB,MAWJ,EAAU,mBAAqB,EAAgB,OAE/C,AAAK,GAGH,CAAI,EAAU,QAAU,EACtB,GAAgB,KAAK,GACrB,EAAe,KAAK,EAAU,QACzB,AAAI,EAAU,MAAQ,GAG3B,GAAa,EAAY,EAAW,KAM1C,KAAM,GAAe,EAAgB,OAC/B,EAAa,EAAgB,EAEnC,AAAI,GAAsB,EAAa,GACrC,GAAgB,KAAK,GAAG,GAAI,OAAM,GAAY,KAAK,IACnD,EAAe,KAAK,GAAG,GAAI,OAAM,GAAY,KAAK,KAGpD,KAAM,GACe,CAAC,gBAAiB,GAAS,EAAiB,UAEjE,MAAI,IACF,GAAO,eAAoB,GAAS,EAAgB,YAGtD,AAAI,GACF,GAAO,aAAkB,EAAO,EAAc,UAGzC,EAGT,YAA+B,EAAmB,EAAW,GAC3D,KAAM,GAAS,EAAM,SAAS,EAAI,EAAG,EAAI,EAAI,GACvC,EAAS,EAAM,SAAS,EAAI,EAAG,EAAI,EAAI,GACvC,EAAQ,KAAK,IAAI,EAAO,GAAI,EAAO,IACnC,EAAQ,KAAK,IAAI,EAAO,GAAI,EAAO,IACnC,EAAQ,KAAK,IAAI,EAAO,GAAI,EAAO,IACnC,EAAQ,KAAK,IAAI,EAAO,GAAI,EAAO,IACnC,EAAQ,KAAK,IAAI,EAAO,GAAI,EAAO,IACnC,EAAQ,KAAK,IAAI,EAAO,GAAI,EAAO,IACnC,EAAQ,KAAK,IAAI,EAAO,GAAI,EAAO,IACnC,EAAQ,KAAK,IAAI,EAAO,GAAI,EAAO,IACnC,EAAS,GAAQ,GAAU,GAAQ,GACnC,EAAS,GAAQ,GAAU,GAAQ,GACzC,GAAI,GAAS,GAAK,GAAS,EACzB,MAAO,GAET,KAAM,GAAmB,KAAK,IAAI,EAAO,GACnC,EAAmB,KAAK,IAAI,EAAO,GACnC,EAAmB,KAAK,IAAI,EAAO,GACnC,EAAmB,KAAK,IAAI,EAAO,GACnC,EAAmB,KAAK,IAAI,EAAmB,EAAkB,GACnE,KAAK,IAAI,EAAmB,EAAkB,GAClD,MAAO,GAAoB,GAAQ,EAAQ,GAO7C,YAAwB,EAAsB,EAAe,GAC3D,KAAM,GAAS,KAAK,IAAI,EAAQ,EAAM,GACtC,MAAO,IAAO,EAAe,EAAS,EAGxC,YAA6B,EAAe,GAK1C,MAAQ,GAAG,MAAQ,EAAG,OAChB,EAAG,QAAU,EAAG,OAAW,EAAG,SAAW,EAAG,SC7MpD,AAyCA,kBACI,EAA4B,EAC5B,EAAuB,EAAe,GACtC,EAAiB,OAAO,mBAC1B,KAAM,GAAS,EAAgB,EAAO,QAAS,0BACzC,EAAU,EAAgB,EAAQ,SAAU,0BAE5C,EAAS,GACX,EAAQ,EAAS,EAAe,EAAc,GAClD,EAAgB,EAAO,cACvB,EAAe,EAAO,aACtB,EAAiB,EAAO,eAExB,KAAM,GAAiB,KAAM,SAAQ,IAAI,CAAC,EAAO,OAAQ,EAAQ,SAC3D,EAAY,EAAe,GAC3B,EAAa,EAAe,GAK5B,EAAM,GACR,EAAW,EAAY,EAAe,EAAc,GACxD,MAAI,KAAW,GACb,EAAO,UAET,AAAI,IAAY,GACd,EAAQ,UAEH,EAGF,KAAM,IAAyB,GCxEtC,AAwDA,YACI,EAA4B,EAC5B,EAAuB,EAAe,GACtC,EAAiB,OAAO,kBACxB,EAAe,GACjB,KAAM,GAAS,EAAgB,EAAO,QAAS,qBACzC,EAAU,EAAgB,EAAQ,SAAU,qBAE5C,EAAS,GACX,EAAQ,EAAS,EAAe,EAAc,EAC9C,GACJ,EAAgB,EAAO,cACvB,EAAe,EAAO,aACtB,EAAiB,EAAO,eACxB,EAAe,EAAO,aAEtB,KAAM,GAAoC,CAAC,MAAO,EAAQ,OAAQ,GAC5D,EACF,CAAC,gBAAe,eAAc,iBAAgB,gBAE5C,EAAS,EAAO,UACH,GAAqB,EACrB,GAEnB,MAAO,CAAC,gBAAiB,EAAO,GAAI,eAAgB,EAAO,IAGtD,KAAM,IAA6B,EAAG,CAAC,iCCnF9C,AAmDA,kBACI,EAA4B,EAC5B,EAAuB,EAAe,GACtC,EAAiB,OAAO,kBACxB,EAAe,GACjB,KAAM,GAAS,EAAgB,EAAO,QAAS,0BACzC,EAAU,EAAgB,EAAQ,SAAU,0BAE5C,EAAS,GACX,EAAQ,EAAS,EAAe,EAAc,EAC9C,GACJ,EAAgB,EAAO,cACvB,EAAe,EAAO,aACtB,EAAiB,EAAO,eACxB,EAAe,EAAO,aAEtB,KAAM,GAAiB,KAAM,SAAQ,IAAI,CAAC,EAAO,OAAQ,EAAQ,SAC3D,EAAY,EAAe,GAC3B,EAAa,EAAe,GAK5B,EAAM,GACR,EAAW,EAAY,EAAe,EAAc,EACpD,GAEJ,MAAI,KAAW,GACb,EAAO,UAET,AAAI,IAAY,GACd,EAAQ,UAEH,EAGF,KAAM,IAAkC,GCvF/C,AAkDA,YACI,EAA4B,EAC5B,EAAuB,EAAe,GACtC,EAAiB,OAAO,kBACxB,EAAqB,IACvB,KAAM,GAAS,EAAgB,EAAO,QAAS,qBACzC,EAAU,EAAgB,EAAQ,SAAU,qBAE5C,EAAS,GACX,EAAQ,EAAS,EAAe,EAAc,EAC9C,MACE,EAAiB,EAAO,cACxB,EAAgB,EAAO,aACvB,EAAkB,EAAO,eAEzB,EAAoC,CAAC,MAAO,EAAQ,OAAQ,GAC5D,EAAkC,CACtC,cAAe,EACf,aAAc,EACd,eAAgB,EAChB,sBAGI,EAAS,EAAO,UACH,GAAqB,EACrB,GAEnB,MAAO,CAAC,gBAAiB,EAAO,GAAI,aAAc,EAAO,IAGpD,KAAM,IAA0B,EAAG,CAAC,8BChF3C,AA6CA,kBACI,EAA4B,EAC5B,EAAuB,EAAe,GACtC,EAAiB,OAAO,kBACxB,EAAqB,IACvB,KAAM,GAAS,EAAgB,EAAO,QAAS,0BACzC,EAAU,EAAgB,EAAQ,SAAU,0BAE5C,EAAS,GACX,EAAQ,EAAS,EAAe,EAAc,EAC9C,MACE,EAAiB,EAAO,cACxB,EAAgB,EAAO,aACvB,EAAkB,EAAO,eAEzB,CAAC,EAAW,GACd,KAAM,SAAQ,IAAI,CAAC,EAAO,OAAQ,EAAQ,SAKxC,EAAM,GACR,EAAW,EAAY,EAAgB,EAAe,EACtD,GAEJ,MAAI,KAAW,GACb,EAAO,UAET,AAAI,IAAY,GACd,EAAQ,UAEH,EAGF,KAAM,IAA+B,GC/E5C,AA0CA,YACI,EAAsB,EAAwB,EAAe,IAC/D,KAAM,GAAU,EAAgB,EAAQ,SAAU,kBAElD,AAAK,EACD,EAAQ,OAAS,GAAK,EAAQ,OAAS,EACvC,IAAM,gEACM,EAAQ,SACxB,AAAK,EACD,EAAK,SAAW,EAChB,IAAM,6DACC,MAEX,GAAI,GAAc,EACd,EAAe,GACnB,AAAI,EAAQ,OAAS,GACnB,GAAe,GACf,EAAc,EACV,EAAS,CAAC,EAAG,EAAQ,MAAM,GAAI,EAAQ,MAAM,GAAI,EAAQ,MAAM,MAGrE,KAAM,CAAC,EAAW,GAAY,EACxB,EAAiC,CAAC,EAAS,IAC/C,GAAK,CAAC,IACC,EAAQ,eACX,EAAa,EAAW,EAAU,IAGlC,EAA+B,CAAC,OAAQ,GACxC,EAA6B,CAAC,eAAc,QAE5C,EAAM,EAAO,cACf,EAAS,EAAgC,KACzC,GAAgB,GAEpB,MAAI,GACK,EAAQ,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,KAEtD,EAGF,KAAM,IAAiB,EAAG,CAAC,qBCnFlC,AA0CA,YACI,EAAsB,EAAwB,EAAe,IAC/D,KAAM,GAAU,EAAgB,EAAQ,SAAU,yBAElD,AAAK,EACD,EAAQ,OAAS,GAAK,EAAQ,OAAS,EACvC,IAAM,uEACM,EAAQ,SACxB,AAAK,EACD,EAAK,SAAW,EAChB,IACI,oEACG,MACX,AAAK,EACD,EAAQ,QAAU,WAAa,EAAQ,QAAU,QACjD,IAAM,oDAEV,GAAI,GAAc,EACd,EAAe,GACnB,AAAI,EAAQ,OAAS,GACnB,GAAe,GACf,EAAc,EACV,EAAS,CAAC,EAAG,EAAQ,MAAM,GAAI,EAAQ,MAAM,GAAI,EAAQ,MAAM,MAErE,KAAM,CAAC,EAAW,GAAY,EAExB,EAAsC,CAAC,OAAQ,GAC/C,EAAoC,CAAC,eAAc,QAEnD,EAAiC,CAAC,EAAS,IAC/C,GAAK,CAAC,IACC,EAAQ,sBACX,EAAa,EAAW,EAAU,IAGlC,EAAM,EAAO,cACf,EAAS,EAAgC,KACzC,GAAuB,GAE3B,MAAI,GACK,EAAQ,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,KAEtD,EAGF,KAAM,IAAwB,EAAG,CAAC,4BCvFzC,AA0EA,YACI,EAAiB,EAAkB,GACrC,EACI,EAAW,IAAM,EACjB,IAAM,gDAAgD,MAC1D,EACI,EAAW,IAAM,EACjB,IAAM,gDAAgD,MAE1D,KAAM,GAAK,EAAgB,EAAG,IAAK,YAEnC,EACI,EAAG,MAAQ,EACX,IAAM,4CAA4C,EAAG,SAEzD,KAAM,GAAQ,EAAG,MACX,CAAC,EAAG,GAAK,EAAG,MAAM,MAAM,IAE9B,GAAI,CAAE,IAAY,GAChB,KAAM,IAAI,OACN,yBAAyB,mDACwB,OAEvD,GAAI,CAAE,IAAY,GAChB,KAAM,IAAI,OACN,yBAAyB,sDAC2B,OAG1D,AAAI,EAAW,GACb,GAAW,GAEb,AAAI,EAAW,GACb,GAAW,GAGb,KAAM,GAAI,EAAQ,GAAM,EAAG,EAAG,EAAG,SAAU,CAAC,GAAI,IAC1C,EAAI,GAAM,EAAG,EAAG,EAAG,SACnB,EAAK,EAAI,EAAG,GAEZ,EAAS,GACX,GAAU,EAAI,EAAO,CAAC,EAAU,UAChC,GAAa,EAAI,EAAO,CAAC,EAAU,WAEjC,EAAO,GAAM,CAAC,EAAG,GAAI,EAAG,OAE9B,MAAO,GACI,GAAM,GAAQ,EAAQ,EAAI,CAAC,GAAI,EAAG,KACvB,IAAI,GAAO,GAAM,EAAQ,EAAK,KACzC,GAGN,KAAM,IAAW,EAAG,CAAC,eC9H5B,AA4DA,YAAsB,GACpB,GAAI,GACJ,GAAI,MAAM,QAAQ,IAChB,EAAkB,GAClB,EACI,GAAM,MAAQ,EAAG,OAAS,EAC1B,IAAM,qEAEV,KAAM,GAAM,EAAG,GAAG,MAAM,GACxB,OAAS,GAAI,EAAG,EAAI,EAAG,OAAQ,EAAE,EAC/B,EACI,EAAG,GAAG,MAAM,KAAO,EACnB,IACI,iEACK,EAAkB,GAAG,MAAM,UAAU,UAGpD,GAAkB,GAClB,EAAK,GAAM,EAAI,EAAG,MAAM,GAAI,GAAG,IAAI,GAAK,GAAQ,EAAG,CAAC,KAGtD,EACI,EAAG,QAAU,EAAG,GAAG,MAAM,GACzB,IAAM,oCACK,EAAkB,yCACC,EAAkB,GAAG,MAAM,QAE7D,KAAM,GAAiB,GACjB,EAAO,EACb,OAAS,GAAI,EAAG,EAAI,EAAG,OAAQ,EAAE,EAC/B,EAAG,KAAK,EAAO,KAAK,KAClB,GAAI,GAAI,EAAK,GACb,GAAI,EAAI,EACN,OAAS,GAAI,EAAG,EAAI,EAAG,EAAE,GACvB,KAAM,GAAO,EAAI,EAAI,EAAI,EAAG,GAAI,IAAK,EAAG,IACxC,EAAI,EAAI,EAAG,GAGf,MAAO,GAAI,EAAG,GAAK,EAAG,iBAI1B,MAAI,GACK,GAAM,EAAI,GAEV,EAIJ,KAAM,IAAc,EAAG,CAAC,kBC7G/B,AAoFA,YAAa,EAAW,EAAe,IAMrC,GALA,EACI,EAAE,MAAQ,EACV,IAAM,gEACF,EAAE,QAEN,EAAE,OAAS,EACb,MAAO,IAAK,EAAe,GACtB,CAKL,KAAM,GAAgB,EAAE,MAAM,MAAM,EAAG,EAAE,MAAM,OAAS,GAC7B,OAAO,CAAC,EAAO,IAAS,EAAQ,GACrD,EAAO,GACT,EACI,EACA,CACE,EAAe,EAAE,MAAM,EAAE,MAAM,OAAS,GACxC,EAAE,MAAM,EAAE,MAAM,OAAS,KAE/B,GACE,EAAmB,GACnB,EAAmB,GACzB,EAAK,QAAQ,IACX,KAAM,CAAC,EAAK,GAAO,GAAK,EAAiB,GACzC,EAAK,KAAK,GACV,EAAK,KAAK,KAEZ,KAAM,GAAI,EAAQ,GAAM,EAAM,GAAI,EAAE,OAC9B,EAAI,EAAQ,GAAM,EAAM,GAAI,EAAE,OACpC,MAAO,CAAC,EAAG,IAIf,YAAc,EAAa,EAAe,IACxC,MAAO,GAAO,KAAK,KACjB,EACI,EAAE,MAAM,SAAW,EACnB,IAAM,0CACF,EAAE,MAAM,mBAEhB,KAAM,GAAI,EAAE,MAAM,GACZ,EAAI,EAAE,MAAM,GAElB,GAAI,GAAI,GAAI,GACR,EAAI,GAAM,GAEd,KAAM,GAAQ,GAAS,CAAC,CAAC,IAAK,CAAC,EAAG,IAClC,GAAI,GAAc,GAAM,GAExB,KAAM,GAAQ,GAAK,EAAI,EAAI,EAC3B,OAAS,GAAI,EAAG,EAAI,EAAO,EAAE,GAG3B,KAAM,GAAQ,EACR,EAAQ,EACR,EAAQ,EACd,CAAC,EAAG,EAAG,GAAK,EAAO,KAAK,KAEtB,KAAM,GAAS,EAAM,EAAG,CAAC,EAAG,GAAI,CAAC,EAAI,EAAG,IAClC,EAAQ,GAAK,GACb,EAAM,EAAM,EAAG,CAAC,EAAG,GAAI,CAAC,EAAG,IAG3B,EAAI,GAAM,GAAQ,EAAK,GAAI,GAAS,CAAC,CAAC,MAAO,GAAS,CAAC,CAAC,MAExD,EAAK,EAAI,EAAK,EAAI,EAAG,IACrB,EAAO,EAAI,EAAQ,GACzB,AAAI,EAAK,MAAM,KAAO,EACpB,EAAI,GAAM,GAEV,EAAI,EACA,CACE,EACA,EAAM,EAAM,CAAC,EAAG,GAAI,CAAC,EAAK,MAAM,GAAK,EAAG,EAAK,MAAM,MAGrD,GAEN,KAAM,GAAM,GAAI,EAAI,EAAO,EAAG,GAAK,IAG7B,EAAW,EAAM,EAAG,CAAC,EAAG,GAAI,CAAC,EAAI,EAAG,IACpC,EAAsB,EAAI,EAAK,GAC/B,EAAe,EAAU,GAC/B,GAAI,IAAM,EACR,EAAI,EAAI,EAAU,EAAO,EAAW,EAAO,EAAI,UAE/C,KAAM,GACF,EAAI,EAAU,EAAO,EAAW,EAAO,EAAI,KAC/C,EAAI,EAAO,CAAC,EAAM,EAAG,CAAC,EAAG,GAAI,CAAC,EAAG,IAAK,GAAY,GAEpD,KAAM,GAAuB,EAAU,GACjC,EAAW,EAAM,EAAG,CAAC,EAAG,GAAI,CAAC,EAAG,EAAE,MAAM,GAAK,IACnD,GAAI,IAAM,EACR,EAAI,EAAI,EAAU,EAAO,EAAO,EAAU,GAAI,SAE9C,KAAM,GACF,EAAI,EAAU,EAAO,EAAO,EAAU,GAAI,IAC9C,EAAI,EAAO,CAAC,EAAM,EAAG,CAAC,EAAG,GAAI,CAAC,EAAG,IAAK,GAAY,GAEpD,MAAO,CAAC,EAAG,EAAG,KAEhB,GAAQ,CAAC,EAAO,EAAO,IAGzB,MAAI,CAAC,GAAgB,EAAI,GACvB,GAAI,EAAM,EAAG,CAAC,EAAG,GAAI,CAAC,EAAG,IACzB,EAAI,EAAM,EAAG,CAAC,EAAG,GAAI,CAAC,EAAG,KAGpB,CAAC,EAAG,KAIR,KAAM,IAAK,EAAG,CAAC,SCzMtB,AAiBA,GAAY,IAAZ,AAAA,UAAY,GACV,EAAA,EAAA,KAAA,GAAA,OACA,EAAA,EAAA,KAAA,GAAA,OACA,EAAA,EAAA,IAAA,GAAA,MACA,EAAA,EAAA,uBAAA,GAAA,2BAJU,IAAA,IAAS,KCwBrB,YACI,EAAsB,EACtB,EAAY,GAAU,wBACxB,KAAM,GAAU,EAAgB,EAAQ,SAAU,uBAClD,GAAI,GAAmB,KACvB,AAAI,GAAW,MACb,GAAW,EAAgB,EAAS,UAAW,wBAGjD,KAAM,GAAgB,GAAY,KAAQ,EAAU,EAAI,EAAS,GAEjE,GAAI,IAAc,GAAU,KAC1B,MAAO,GAET,GAAI,IAAc,GAAU,IAC1B,MAAO,GAAI,GAEb,GAAI,IAAc,GAAU,MAC1B,GAAI,GAAY,KACd,MAAO,IAAK,GACP,CACL,KAAM,GAAkB,EAAQ,KAAO,EAAS,KAC1C,EAAS,EAAI,EAAI,GAAe,EAAI,IAC1C,MAAO,GAAkB,EAAI,EAAI,EAAQ,EAAO,IACnB,GAGjC,GAAI,IAAc,GAAU,wBAC1B,GAAI,GAAY,KACd,MAAO,GAAI,EAAI,GAAe,EAAO,EAAQ,OACxC,CACL,KAAM,GAAqB,EAAI,EAAU,GAAK,EAAQ,QAEhD,EACF,EAAK,EAAI,GAAS,EAAoB,EAAO,KAAM,WACvD,MAAO,GAAI,EAAI,GAAe,IAIlC,KAAM,OAAM,sBAAsB,KAE7B,KAAM,IAAsB,EAAG,CAAC,0BClFvC,AA0CA,YACI,EAAsB,EACtB,EACA,EAAY,GAAU,wBACxB,KAAM,GAAU,EAAgB,EAAQ,SAAU,sBAC5C,EACF,EAAgB,EAAa,cAAe,sBAChD,GAAI,GAAmB,KACvB,AAAI,GAAW,MACb,GAAW,EAAgB,EAAS,UAAW,uBAEjD,EACI,EAAQ,MAAO,EAAa,MAAO,iCAEvC,KAAM,GAAS,GAAI,EAAI,EAAS,IAChC,MAAO,IAAoB,EAAQ,EAAU,GAGxC,KAAM,IAAqB,EAAG,CAAC,yBChBtC,YACI,EAAsB,EAA2B,EACjD,EACA,EAAY,GAAU,wBACxB,KAAM,GAAU,EAAgB,EAAQ,SAAU,kBAC5C,EACF,EAAgB,EAAa,cAAe,kBAChD,GAAI,GAAmB,KACvB,AAAI,GAAW,MACb,GAAW,EAAgB,EAAS,UAAW,mBAEjD,EACI,EAAQ,MAAO,EAAa,MAAO,6BAEvC,KAAM,GAAM,EAAO,GACb,EAAS,EAAI,EAAK,EAAI,EAAI,EAAS,GAAe,EAAM,KAC9D,MAAO,IAAoB,EAAQ,EAAU,GAExC,KAAM,IAAiB,EAAG,CAAC,qBCnBlC,YACI,EAAsB,EACtB,EACA,EAAY,GAAU,wBACxB,GAAI,GAAU,EAAgB,EAAQ,SAAU,aAChD,KAAM,GAAe,EAAgB,EAAa,cAAe,aACjE,GAAI,GAAmB,KACvB,AAAI,GAAW,MACb,GAAW,EAAgB,EAAS,UAAW,cAEjD,EAAkB,EAAQ,MAAO,EAAa,MAAO,wBAErD,KAAM,GAAM,EAAO,GAEnB,EAAU,EAAI,EAAI,EAAO,GAAI,GAAU,GACvC,KAAM,GAAS,GAAK,EAAI,EAAK,EAAI,EAAS,KAC1C,MAAO,IAAoB,EAAQ,EAAU,GAExC,KAAM,IAAY,EAAG,CAAC,gBC7D7B,AAgDA,YACI,EAAsB,EACtB,EAA6B,EAAQ,EACrC,EAAY,GAAU,wBACxB,KAAM,GAAU,EAAgB,EAAQ,SAAU,aAC5C,EAAe,EAAgB,EAAa,cAAe,aACjE,GAAI,GAAmB,KACvB,AAAI,GAAW,MACb,GAAW,EAAgB,EAAS,UAAW,cAEjD,EAAkB,EAAQ,MAAO,EAAa,MAAO,wBAErD,KAAM,GAAc,EAAO,GACrB,EAAQ,GAAI,EAAI,EAAc,IAC9B,EAAY,GAAQ,EAAO,GAC3B,EAAS,EAAI,EAAO,GAEpB,EACF,EAAI,EAAI,EAAO,IAAM,EAAO,IAAa,EAAI,EAAa,IAC9D,MAAO,IAAoB,EAAQ,EAAU,GAExC,KAAM,IAAY,EAAG,CAAC,gBCrE7B,AA+CA,YACI,EAAsB,EACtB,EAA6B,EAAU,KACvC,EAAY,GAAU,wBACxB,KAAM,GAAU,EAAgB,EAAQ,SAAU,WAC5C,EAAe,EAAgB,EAAa,cAAe,WACjE,GAAI,GAAmB,KACvB,AAAI,GAAW,MACb,GAAW,EAAgB,EAAS,UAAW,YAEjD,EAAkB,EAAQ,MAAO,EAAa,MAAO,sBAErD,KAAM,GAAM,EAAO,GACb,EAAgB,EAAO,GAEvB,EAAK,GAAI,EAAI,EAAS,GAAI,EAAI,EAAc,MAC5C,EACF,EAAI,EAAI,EAAK,GAAU,GAAI,EAAI,EAAI,EAAK,GAAe,KACrD,EAAS,EAAI,EAAI,GACvB,MAAO,IAAoB,EAAQ,EAAU,GAExC,KAAM,IAAU,EAAG,CAAC,cCpE3B,AAuCA,YACI,EAAsB,EACtB,EACA,EAAY,GAAU,wBACxB,KAAM,GAAU,EAAgB,EAAQ,SAAU,oBAC5C,EACF,EAAgB,EAAa,cAAe,oBAChD,GAAI,GAAmB,KACvB,AAAI,GAAW,MACb,GAAW,EAAgB,EAAS,UAAW,qBAEjD,EACI,EAAQ,MAAO,EAAa,MAAO,+BAEvC,KAAM,GAAS,GAAkB,EAAS,GAC1C,MAAO,IAAoB,EAAQ,EAAU,GAExC,KAAM,IAAmB,EAAG,CAAC,uBCxDpC,AAmCA,YACI,EAAsB,GACxB,KAAM,GACF,EAAgB,EAAQ,SAAU,iCAChC,EACF,EAAgB,EAAQ,SAAU,iCACtC,EACI,EAAQ,MAAO,EAAQ,MAAO,4CAsBlC,KAAM,GAAY,GAAK,GACjB,EAAgB,EAAI,EAAS,GAC7B,EAAgB,GAAM,GAAI,GAAI,GAAI,MAExC,MAAO,GAAI,EAAI,EAAW,GAAgB,GAuB5C,YACI,EAAgC,EAChC,EAA6B,EAAiB,EAC9C,EAAY,GAAU,wBACxB,GAAI,GAAoB,EACpB,EAAkB,mBAAoB,uBAC1C,KAAM,GAAU,EAAgB,EAAQ,SAAU,uBAClD,GAAI,GAAmB,KAOvB,GANA,AAAI,GAAW,MACb,GAAW,EAAgB,EAAS,UAAW,wBAEjD,EACI,EAAkB,MAAO,EAAQ,MAAO,kCAExC,EAAiB,GACnB,KAAM,GAAuB,EAAO,GAC9B,EAAM,EAAO,GACb,EAAO,EAAO,IAEpB,EACI,EAAI,EAAI,EAAmB,EAAI,EAAK,IAChC,EAAI,EAAM,IAEpB,KAAM,GAAS,GAA+B,EAAmB,GAEjE,MAAO,IAAoB,EAAQ,EAAU,GAGxC,KAAM,IAAsB,EAAG,CAAC,0BCvHvC,AA+DA,YACI,EAAW,EAAW,EAAM,IAK9B,GAJA,AAAI,IAAQ,IACV,GAAM,EAAO,KAAO,GAGlB,IAAQ,EAAO,KAAO,EACxB,KAAM,OACF,mGACuC,EAAO,oBAC/B,KAGrB,KAAM,GACF,GAAW,CAAC,EAAgB,EAAgB,KAI1C,KAAM,GAAW,GACX,EAAM,GAAU,EAAQ,CAAC,GAAM,GAC/B,EAAY,EAAI,EAAK,EAAQ,WAAY,GAC/C,EAAK,CAAC,EAAQ,IAEd,KAAM,GAAa,GAAI,EAAI,EAAW,IAChC,EAAW,EAAI,EAAY,CAAC,IAE5B,EAAW,CAAC,EAAO,KACvB,KAAM,CAAC,EAAQ,GAAa,EACtB,EAAU,GAAqB,EAAG,MAAO,CAAC,IAChD,MAAO,CACL,EAAI,EAAQ,EAAI,GACZ,EAAI,EAAK,EAAQ,WAAY,GAAI,KACrC,EAAI,EAAQ,EAAI,GACZ,EAAI,GAAI,GAAY,EAAK,EAAQ,eAGzC,MAAO,CAAC,QAAO,cAGrB,MAAO,GAAS,EAAQ,GAqB1B,YACI,EAA4B,EAC5B,EAA6B,EAAiB,EAC9C,EAAY,GAAU,wBACxB,GAAI,GACA,EAAgB,EAAc,eAAgB,uBAClD,KAAM,GAAU,EAAgB,EAAQ,SAAU,uBAClD,GAAI,GAAmB,KASvB,GAPA,AAAI,GAAW,MACb,GAAW,EAAgB,EAAS,UAAW,wBAGjD,EACI,EAAc,MAAO,EAAQ,MAAO,kCAEpC,EAAiB,GACnB,KAAM,GAAuB,EAAO,GAC9B,EAAM,EAAO,GACb,EAAa,EAAO,EAAc,MAAM,IAE9C,EACI,EAAI,EAAI,EAAe,EAAI,EAAK,IAC5B,EAAI,EAAsB,IAGpC,KAAM,GAAS,GAA+B,EAAe,GAE7D,MAAO,IAAoB,EAAQ,EAAU,GAGxC,KAAM,IAAsB,EAAG,CAAC,0BC1JvC,urGAsNA,KAAM,IAAW,CACf,OACA,QACA,QACA,UASI,GAAS,CACb,iBACA,cACA,SACA,SAeI,GAAQ,CACZ,iBACA,yBACA,kBACA,oBACA,iBACA,qBACA,0BACA,8BACA,mCACA,2BACA,iCAOI,GAAS,CACb,YACA,eACA,OAaI,GAAS,CACb,sBACA,uBACA,kBACA,aACA,aACA,WACA,oBACA,uBACA,wBCjSF,AA+BA,GAAa,IC/Bb,AAsBO,KAAM,IAAkD,CAC7D,QAAW,EACX,QAAW,EACX,MAAS,EACT,OAAU,EACV,MAAS,EACT,KAAQ,EACR,UAAa,GC7Bf,AA2BA,KAAM,IAA0B,EAmBhC,kBACI,EAAuC,GAGzC,KAAM,GAAgC,GAChC,EAA2C,GAE3C,EAAkB,MAAM,QAAQ,GAClC,EAAQ,IAAI,GAAU,EAAO,MAC7B,OAAO,KAAK,GAEhB,OAAS,GAAI,EAAG,EAAI,EAAM,OAAQ,EAAE,GAClC,KAAM,GAAO,EAAM,GACb,EAAI,MAAM,QAAQ,GAAW,EAAQ,GAAG,OAAS,EAAQ,GAC/D,GAAI,EAAE,QAAU,WAAa,EAAE,QAAU,SAAW,EAAE,QAAU,QAC5D,EAAE,QAAU,UAAY,EAAE,QAAU,YACtC,KAAM,IAAI,OAAM,gCAAgC,OAAU,EAAE,SAE9D,KAAM,GAA6B,CAAC,OAAM,MAAO,EAAE,MAAO,MAAO,EAAE,OACnE,GAAI,EAAE,QAAU,UACd,KAAM,GAAY,GAAI,SAAoB,KAAM,KAC9C,KAAM,GAAO,KAAM,GAAE,QACf,EAAgB,EAAK,OAAO,CAAC,EAAG,IAAM,EAAI,EAAE,OAAQ,GACtD,GAA0B,EAAK,OAC7B,EAAQ,GAAI,YAAW,GAC7B,GAAI,GAAS,EACb,OAAS,GAAI,EAAG,EAAI,EAAK,OAAQ,KAC/B,KAAM,GAAM,EAAK,GACX,EACF,GAAI,YAAW,GAAI,aAAY,CAAC,EAAI,SAAS,QACjD,EAAM,IAAI,EAAe,GACzB,GAAU,GACV,EAAM,IAAI,EAAK,GACf,GAAU,EAAI,OAEhB,EAAQ,KAEV,EAAa,KAAK,OAElB,GAAa,KAAK,EAAE,QAEtB,AAAI,GAAS,MACX,GAAK,MAAQ,GAEf,EAAM,KAAK,GAGb,KAAM,GAAe,KAAM,SAAQ,IAAI,GACvC,MAAO,CAAC,KAAM,GAAuB,GAAe,SAkBhD,YACF,EAAqB,GAEvB,KAAM,GAAsB,GAC5B,GAAI,GACA,EAAS,EACb,SAAW,KAAQ,IACjB,KAAM,GAAO,EAAK,KACZ,EAAQ,EAAK,MACb,EAAQ,EAAK,MACb,EAAO,GAAc,GAC3B,GAAI,GAEJ,GAAI,gBAAkB,IACpB,KAAM,GAAe,EAAK,aAC1B,GAAI,EAAa,QAAU,SAAW,EAAa,QAAU,UAC3D,GAAI,CAAE,QAAS,IAAgB,SAAW,IACxC,KAAM,IAAI,OACN,UAAU,EAAK,0BAA0B,EAAa,oEAGnD,EAAa,QAAU,WAChC,GAAI,IAAU,UACZ,KAAM,IAAI,OACN,UAAU,EAAK,0BAA0B,EAAa,yDACH,UAGzD,MAAM,IAAI,OACN,UAAU,EAAK,uCACO,EAAa,+EAIzC,KAAM,GAAyB,GAAqB,EAAa,OAC3D,EACF,EAAO,MAAM,EAAQ,EAAS,EAAO,GACnC,EAAkB,EAAa,QAAU,QAC3C,GAAI,YAAW,GACf,GAAI,aAAY,GACpB,GAAI,IAAU,UACZ,GAAI,EAAa,QAAU,SAAW,EAAa,QAAU,UAC3D,EAAS,GAAI,cAAa,EAAe,QACzC,OAAS,GAAI,EAAG,EAAI,EAAe,OAAQ,KACzC,KAAM,GAAI,EAAe,GACzB,EAAO,GAAK,EAAI,EAAa,MAAQ,EAAa,aAE3C,EAAa,QAAU,UAChC,AAAI,IAAkB,QACpB,GAAgB,MAElB,EAAS,EAAc,OAEvB,MAAM,IAAI,OACN,iCAAiC,EAAa,0CAG3C,IAAU,SACnB,GAAI,EAAa,QAAU,SAAW,EAAa,QAAU,SAC3D,KAAM,IAAI,OACN,iCAAiC,EAAa,gCAGpD,EAAS,GAAI,YAAW,EAAe,QACvC,OAAS,GAAI,EAAG,EAAI,EAAe,OAAQ,KACzC,KAAM,GAAI,EAAe,GACzB,EAAO,GAAK,KAAK,MAAM,EAAI,EAAa,MAAQ,EAAa,UAG/D,MAAM,IAAI,OAAM,gCAAgC,OAAU,KAE5D,GAAU,EAAO,UACR,IAAU,UACnB,KAAM,GAAO,GAAc,EAAK,OAChC,EAAS,GACT,OAAS,GAAI,EAAG,EAAI,EAAM,KACxB,KAAM,GAAa,GAAI,aACnB,EAAO,MAAM,EAAQ,EAAS,KAA0B,GAC5D,GAAU,GACV,KAAM,GAAQ,GAAI,YAAW,EAAO,MAAM,EAAQ,EAAS,IAC1D,EAAwB,KAAK,GAC9B,GAAU,QAGZ,KAAM,GAAc,GAAqB,GACnC,EAAa,EAAO,MAAM,EAAQ,EAAS,EAAO,GAExD,GAAI,IAAU,UACZ,EAAS,GAAI,cAAa,WACjB,IAAU,QACnB,EAAS,GAAI,YAAW,WACf,IAAU,OACnB,EAAS,GAAI,YAAW,WACf,IAAU,aACnB,EAAS,GAAI,cAAa,GAC1B,KAAM,GAAO,GAAI,cAAa,EAAO,OAAS,GACxC,EAAQ,GAAI,cAAa,EAAO,OAAS,GAC/C,OAAS,GAAI,EAAG,EAAI,EAAK,OAAQ,IAC/B,EAAK,GAAK,EAAO,EAAI,GACrB,EAAM,GAAK,EAAO,EAAI,EAAI,GAE5B,KAAM,GAAa,GAAO,EAAM,EAAO,WACjC,EAAc,GAAO,EAAO,EAAO,WACzC,EAAI,GAAQ,GAAQ,EAAY,OAEhC,MAAM,IAAI,OAAM,gCAAgC,OAAU,KAE5D,GAAU,EAAO,EAEnB,AAAI,IAAU,aACZ,GAAI,GAAQ,GAAO,EAAQ,EAAO,IAGtC,MAAO,GAMH,YAAiC,GAErC,GAAI,IAAO,KACT,KAAM,IAAI,OAAM,wBAAwB,KAAK,UAAU,MAGzD,GAAI,GAAkB,EAStB,KAAM,GAA6B,GACnC,EAAG,QAAQ,AAAC,IAMV,GALA,GAAmB,EAAE,WAErB,EAAa,KACT,EAAE,aAAe,EAAE,OAAO,WAAa,EACA,GAAK,GAAE,YAAoB,IAClE,CAAE,aAAoB,eAAgB,YAAoB,aACxD,YAAoB,aACxB,KAAM,IAAI,OAAM,mCAAmC,EAAE,YAAY,UAKrE,KAAM,GAAI,GAAI,YAAW,GACzB,GAAI,GAAS,EACb,SAAa,QAAQ,AAAC,IACpB,EAAE,IAAI,GAAI,YAAW,EAAE,QAAS,GAChC,GAAU,EAAE,aAGP,EAAE,OAIX,KAAM,IAAgB,MAAO,SAAW,aACnC,OAAO,OAAS,aAAe,MAAO,OAAS,aAC/C,MAAO,OAAS,aAWf,YAA2B,GAC/B,MAAI,IACK,OAAO,WAAW,GAEpB,GAAI,MAAK,CAAC,IAAM,KA8CnB,YAAkC,GACtC,GAAI,EAAQ,SAAW,EACrB,MAAO,GAAQ,GAGjB,GAAI,GAAkB,EACtB,EAAQ,QAAQ,AAAC,IACf,GAAmB,EAAO,aAG5B,KAAM,GAAO,GAAI,YAAW,GAC5B,GAAI,GAAS,EACb,SAAQ,QAAQ,AAAC,IACf,EAAK,IAAI,GAAI,YAAW,GAAS,GACjC,GAAU,EAAO,aAEZ,EAAK,OAUR,YAAmB,GACvB,KAAM,GAAY,IAElB,IADA,EAAO,EAAK,OACL,EAAK,SAAS,IACnB,EAAO,EAAK,MAAM,EAAG,EAAK,OAAS,GAErC,KAAM,GAAQ,EAAK,MAAM,GACzB,MAAO,GAAM,EAAM,OAAS,GAQxB,YAAuC,GAE3C,GAAI,EAAe,wBAAyB,aAC1C,KAAM,IAAI,OAAM,uDAGlB,MAAO,CACL,UAAW,GAAI,QACf,kBAAmB,OACnB,mBAAoB,EAAe,eAAiB,KAChD,EACA,GAAiB,KAAK,UAAU,EAAe,gBACnD,iBAAkB,EAAe,aAAe,KAC5C,EACA,GAAiB,KAAK,UAAU,EAAe,cACnD,gBAAiB,EAAe,YAAc,KAC1C,EACA,EAAe,WAAW,YAUlC,cACE,KAAM,GAAkB,AAAC,IACvB,GAAI,GAAI,GAAK,GACT,EAAI,EAER,KAAQ,GAAI,WAAgB,GAC1B,GAAK,QACL,IAAM,EAER,UAAK,CAAC,QACN,GAAK,UAEE,EAAI,GAGP,EAAe,GAAI,aAAY,MAErC,EAAa,GAAK,EAClB,OAAS,GAAI,EAAG,EAAI,KAAM,IACxB,EAAa,GAAK,EAAgB,GAEpC,OAAS,GAAI,KAAM,EAAI,KAAM,IAC3B,EAAa,GAAK,UAAe,GAAI,MAAS,IAGhD,MAAO,GAST,cACE,KAAM,GAAgB,GAAI,aAAY,IAEtC,EAAc,GAAK,EACnB,EAAc,IAAM,WACpB,EAAc,IAAM,WACpB,EAAc,IAAM,WACpB,OAAS,GAAI,EAAG,EAAI,GAAI,IACtB,EAAc,GAAK,GAAK,GAE1B,OAAS,GAAI,GAAI,EAAI,GAAI,IACvB,EAAc,GAAK,WAAe,GAAI,IAAO,IAG/C,MAAO,GAST,cACE,KAAM,GAAc,GAAI,aAAY,IAEpC,OAAS,GAAI,EAAG,EAAI,GAAI,IACtB,EAAY,GAAK,KAEnB,SAAY,GAAK,EAAY,IAAM,EAE5B,EAUH,cAKJ,KAAM,GAAe,KACf,EAAgB,KAChB,EAAc,KAEpB,MAAO,AAAC,KACN,KAAM,GAAS,GAAI,aAAY,EAAI,EAAe,QAC5C,EAAmB,GAAI,aAAY,GACzC,OAAS,GAAQ,EAAG,EAAQ,EAAe,OAAQ,KACjD,KAAM,GAAc,EAAe,GAC7B,EACF,EAAa,EAAY,GAAe,IAAO,GAAc,OAC7D,EAAc,GAAe,IACjC,EAAiB,GAAS,EAE5B,MAAO,IAAI,cAAa,IChf5B,SA6BE,cACE,KAAK,YAAc,GACnB,KAAK,YAAc,SAGN,eACb,MAAI,IAAiB,UAAY,MAC/B,IAAiB,SAAW,GAAI,OAE3B,GAAiB,eASnB,oBAAmB,GACxB,GAAiB,cAAc,YAAY,KAAK,SAS3C,oBAAmB,GACxB,GAAiB,cAAc,YAAY,KAAK,SAW3C,iBAAgB,GACrB,MAAO,IAAiB,YAAY,EAAK,cAWpC,iBAAgB,EAAsB,GAE3C,MAAO,IAAiB,YAAY,EAAK,OAAQ,SAGpC,aACX,EAAsB,EACtB,GACF,KAAM,GAA6B,GAC7B,EAAU,IAAgB,OAC5B,GAAiB,cAAc,YAC/B,GAAiB,cAAc,YACnC,SAAQ,QAAQ,IACd,KAAM,GAAU,EAAO,EAAK,GAC5B,AAAI,IAAY,MACd,EAAc,KAAK,KAGhB,GAIJ,KAAM,IAAqB,AAAC,GAC/B,GAAiB,mBAAmB,GAC3B,GAAqB,AAAC,GAC/B,GAAiB,mBAAmB,GAC3B,GAAkB,AAAC,GAC5B,GAAiB,gBAAgB,GACxB,GACT,CAAC,EAAsB,IACnB,GAAiB,gBAAgB,EAAK,GC/G9C,AAiCA,KAAM,IAAoB,MAjC1B,SAyCE,cACE,KAAK,SAAW,SAGH,eACb,MAAI,IAA0B,UAAY,MACxC,IAA0B,SAAW,GAAI,OAEpC,GAA0B,eAS5B,iBAAgB,EAAgB,GACrC,EAAO,GAAU,KAAM,IAAM,yCAC7B,AAAI,EAAO,SAAS,KAClB,GAAS,EAAO,MAAM,EAAG,EAAO,QAAQ,MAE1C,EAAO,EAAO,OAAS,EAAG,IAAM,uCAChC,KAAM,GAAW,GAA0B,cAC3C,EACI,EAAS,SAAS,IAAW,KAC7B,IAAM,2DACF,OACR,EAAS,SAAS,GAAU,QAGvB,YAAW,GAChB,KAAM,GAAU,KAAK,cAAc,SAAS,GAC5C,GAAI,GAAW,KACb,KAAM,IAAI,OAAM,yCAAyC,MAE3D,MAAO,SAGF,cACL,MAAO,QAAO,KAAK,KAAK,cAAc,WAY1C,YAAkB,GAChB,GAAI,EAAI,QAAQ,MAAuB,GACrC,KAAM,IAAI,OACN,6EAEG,GAA0B,aAAa,KAAK,QAErD,MAAO,CACL,OAAQ,EAAI,MAAM,IAAmB,GACrC,KAAM,EAAI,MAAM,IAAmB,IAIvC,kBACI,EAAmB,EACnB,EAAe,IACjB,EACI,IAAc,EACd,IAAM,wCAAwC,MAElD,KAAM,GAAe,GAAiB,gBAAgB,GACtD,EACI,EAAa,OAAS,EACtB,IAAM,kEACF,MACR,EACI,EAAa,OAAS,EACtB,IAAM,yCAAyC,EAAa,wCACxB,MACxC,KAAM,GAAc,EAAa,GAE3B,EAAe,GAAiB,gBAAgB,GACtD,EACI,EAAa,OAAS,EACtB,IAAM,uEACK,MACf,EACI,EAAa,OAAS,EACtB,IAAM,yCAAyC,EAAa,6CACnB,MAC7C,KAAM,GAAc,EAAa,GAE3B,EAAe,GAAS,GAAW,OACnC,EAAa,GAAS,GAAW,KACjC,EAAa,IAAiB,GAAS,GAAW,OAElD,EAAiB,KAAM,GAAY,OAKzC,AAAI,GAAgB,GAClB,KAAM,IAA0B,WAAW,GACtC,YAAY,GAGnB,KAAM,GAAa,KAAM,GAAY,KAAK,GAK1C,MAAI,IAAgB,CAAC,GACnB,KAAM,IAA0B,WAAW,GACtC,YAAY,GAGZ,EAAW,mBAuCpB,oBACE,KAAM,GAAU,GAA0B,aACpC,EAA2C,GACjD,SAAW,KAAU,IACnB,KAAM,GACF,KAAM,IAA0B,WAAW,GAAQ,aACvD,SAAW,KAAQ,IACjB,KAAM,GAAM,EAAS,GAAoB,EACzC,EAAI,GAAO,EAAU,IAGzB,MAAO,GAqCT,kBAA2B,GACzB,KAAM,GAAgB,GAAS,GACzB,EAAU,GAA0B,WAAW,EAAc,QACnE,MAAO,GAAQ,YAAY,EAAc,MAmD3C,kBACI,EAAmB,GACrB,KAAM,GAAe,GACrB,MAAO,IAAmB,EAAW,EAAS,GAkDhD,kBACI,EAAmB,GACrB,KAAM,GAAe,GACrB,MAAO,IAAmB,EAAW,EAAS,GCpWhD,AA4BA,KAAM,IAA2B,QAC3B,GAA8B,QAC9B,GAAqC,eAE3C,YAAkB,GAChB,MAAO,IAAI,SAAQ,GAAW,WAAW,IAAU,KAAK,GAjC1D,SA4CE,YAAY,GACV,GAAI,CAAC,KAAM,QAAQ,cAGjB,KAAM,IAAI,OACN,uFAIN,AAAI,EAAe,WAAW,GAAiB,aAC7C,GAAiB,EAAe,MAAM,GAAiB,WAAW,SAEpE,AAAI,IAAkB,MAAQ,EAAe,SAAW,IACtD,GAAiB,IAGnB,KAAK,sBAAwB,EAAiB,GAC9C,KAAK,mBACD,EAAiB,QAGjB,MAAK,GACT,GAAI,MAAQ,WAAc,YACxB,KAAM,IAAI,OACN,2FAGN,KAAM,GAAa,OAAO,IAAI,gBAAgB,GAAI,MAC9C,CAAC,EAAe,YAAa,CAAC,KAAM,8BAExC,GAAI,EAAe,wBAAyB,aAC1C,KAAM,IAAI,OACN,yFAEC,CACL,KAAM,GAAyC,CAAC,CAC9C,MAAO,CAAC,KAAO,KAAK,oBACpB,QAAS,EAAe,cAEpB,EAA4C,CAChD,cAAe,EAAe,cAC9B,OAAQ,EAAe,OACvB,YAAa,EAAe,YAC5B,YAAa,EAAe,YAC5B,mBAEI,EACF,OAAO,IAAI,gBAAgB,GAAI,MAC3B,CAAC,KAAK,UAAU,IAChB,CAAC,KAAM,sBAIT,EAAa,KAAK,YAAc,KAAO,SAAS,cAAc,KACvB,KAAK,WAQlD,GAPA,EAAW,SAAW,KAAK,sBAC3B,EAAW,KAAO,EAIlB,KAAM,IAAM,IAAM,EAAW,cAAc,GAAI,YAAW,WAEtD,EAAe,YAAc,MAC/B,KAAM,GAAmB,KAAK,kBAAoB,KAC9C,SAAS,cAAc,KACvB,KAAK,iBACT,EAAiB,SAAW,KAAK,mBACjC,EAAiB,KAAO,EACxB,KAAM,IACF,IAAM,EAAiB,cAAc,GAAI,YAAW,WAG1D,MAAO,CAAC,mBAAoB,GAA6B,MA1E7C,GAAA,WAAa,eA1C/B,SA4HE,YAAY,GACV,GAAI,GAAS,MAAQ,EAAM,OAAS,EAClC,KAAM,IAAI,OACN,wEACgB,KAEtB,KAAK,MAAQ,OAGT,QACJ,KAAM,GAAW,KAAK,MAAM,GACtB,EAAc,KAAK,MAAM,MAAM,GAErC,MAAO,IAAI,SAAwB,CAAC,EAAS,KAC3C,KAAM,GAAa,GAAI,cACvB,EAAW,OAAS,AAAC,IAEnB,KAAM,GAAY,KAAK,MAAO,EAAM,OAAe,QAC7C,EAAgB,EAAU,cAChC,GAAI,GAAiB,MACnB,EAAO,GAAI,OACP,4CAA4C,EAAS,SACzD,OAGF,AAAI,EAAY,SAAW,GACzB,EAAQ,CAAC,kBAGX,KAAM,GAAkB,EAAU,gBAClC,GAAI,GAAmB,MACrB,EAAO,GAAI,OACP,6CAA6C,EAAS,SAC1D,OAGF,GAAI,GACJ,IACE,EACI,KAAK,4BAA4B,EAAiB,SAC/C,GACP,EAAO,GACP,OAGF,KAAM,GAAsC,GACtC,EAAkB,GAClB,EAAgC,GACtC,EAAgB,QAAQ,IACtB,EAAa,MAAM,QAAQ,IACzB,EAAM,KAAK,GACX,EAAe,KAAK,QAEtB,EAAY,KAAK,GAAG,EAAa,WAGnC,EAAgB,QAAQ,IACtB,EAAa,MAAM,QAAQ,IACzB,KAAM,GAAmB,GAAI,cAC7B,EAAiB,OAAS,AAAC,IAEzB,KAAM,GAAc,EAAM,OAAe,OACnC,EAAQ,EAAM,QAAQ,GAC5B,EAAe,GAAS,EACxB,AAAI,EAAe,QAAQ,QAAU,IACnC,EAAQ,CACN,gBACA,cACA,WAAY,GAAwB,GACpC,OAAQ,EAAU,OAClB,YAAa,EAAU,YACvB,YAAa,EAAU,YACvB,oBAAqB,EAAU,uBAIrC,EAAiB,QAAU,GACvB,EAAO,6CAA6C,OACxD,EAAiB,kBAAkB,EAAW,SAIpD,EAAW,QAAU,GAAS,EAC1B,sEACc,EAAS,6EAE3B,EAAW,WAAW,KAOlB,4BACJ,EAAiC,GACnC,KAAM,GAAsB,GACtB,EAAY,EAAM,IAAI,GAAQ,GAAS,EAAK,OAC5C,EAAqC,GAC3C,SAAW,KAAS,GAClB,EAAM,MAAM,QAAQ,IAClB,KAAM,GAAe,GAAS,GAC9B,GAAI,EAAU,QAAQ,KAAkB,GACtC,KAAM,IAAI,OACN,uDACI,MAGV,GADA,EAAU,KAAK,GACX,EAAU,QAAQ,KAAkB,GACtC,KAAM,IAAI,OACN,8BAA8B,uBAElC,EAAW,GAAQ,EAAM,EAAU,QAAQ,MAKjD,GAAI,EAAU,SAAW,EAAM,OAC7B,KAAM,IAAI,OACN,wDACI,EAAU,oDACV,EAAM,YAEhB,MAAO,IAIJ,KAAM,IAAmC,AAAC,GAC1C,KAAM,QAAQ,eAGb,EAAC,MAAM,QAAQ,IAAQ,EAAI,WAAW,GAAiB,aAClD,GAAiB,EAAI,MAAM,GAAiB,WAAW,SAHzD,KASX,GAAiB,mBAAmB,IA0C9B,YAA2B,EAAiB,SAChD,MAAO,IAAI,IAAiB,GA4CxB,YAAuB,GAC3B,MAAO,IAAI,IAAa,GC7V1B,AA6BM,YACF,EAAmC,EACnC,EAAwB,GAC1B,EAAc,GACd,EAAgB,GAAiB,KAAO,EAAI,EAC5C,EAAc,GAAe,KAAO,EAAI,EACxC,EAAc,EAAe,GAC7B,GAAI,GAAkB,EAEtB,KAAM,GAAkB,AAAC,GACvB,GAAQ,KAAK,IACX,KAAM,GAAW,EACb,GAAE,EAAkB,EAAS,OAAU,GAAc,GAEzD,SAAW,GACJ,IAEF,GAGT,WAAuB,GACrB,EACI,GAAY,MAAQ,MAAM,QAAQ,IAAa,EAAS,OAAS,EACjE,IAAM,uCAGZ,WAAuB,EAAuB,GAC5C,EACI,GAAiB,GAAK,GAAiB,EACvC,IAAM,oEACmB,KAC7B,EACI,GAAe,GAAK,GAAe,EACnC,IAAM,kEACiB,KAC3B,EACI,GAAe,EACf,IAAM,yEACmB,qBAClB,KAGb,MAAO,SAAQ,IAAI,EAAS,IAAI,ICvElC,AAoCA,kBACI,EAAqB,GACvB,AAAI,GAAe,MACjB,GAAc,IAGhB,KAAM,GAAY,EAAY,WAAa,KAAO,KAAM,SAAS,MACf,EAAY,UAGxD,EAAW,EAAU,IACvB,GACI,EAAU,EAAU,EAAY,YAAa,CAAC,SAAU,MAE1D,EAAqB,EACrB,EAAmB,GAEnB,EAAY,EAAY,YAAc,KACxC,KAAM,SAAQ,IAAI,GAClB,KAAM,IACF,EAAU,EAAY,WAAY,EAClC,GAEF,EAAiB,EAAU,IAAI,GAAY,EAAS,eAEpD,EAAsB,GACtB,EAAoB,EAEpB,EAAU,EAAY,YAAc,KACtC,KAAM,SAAQ,IAAI,GAClB,KAAM,IACF,EAAgB,EAAY,WAAY,EACxC,GACR,MAAO,GAYT,kBACI,EAAiC,EAAiB,GAClD,EACA,GAOF,KAAM,GAAe,AAAC,GAClB,GAAyB,EAAW,CAAC,gBACnC,EAAc,GAAqB,GAEzC,MAAO,GAAY,EAAU,EAAgB,GA2BzC,YACF,GAGF,MAAO,OACI,EAAiC,EAAiB,GAClD,KAGT,KAAM,GAAyB,EAAS,IAAI,IAAM,IAC5C,EAKF,GACE,EACF,GAAe,KAAO,EAAY,IAAI,IAAM,IAAS,GACnD,EAAmC,GAwCzC,GAvCA,EAAS,QAAQ,CAAC,EAAqB,KACrC,GAAI,GAAc,EAClB,EAAoB,QAAQ,QAAQ,IAClC,KAAM,GAAY,gBAAkB,GAChC,EAAa,aAAa,MAC1B,EAAa,MAEX,EAAe,GAAqB,GACtC,AAAK,GAAc,EAAa,OAE9B,EAA8B,KAClC,EAAuB,GAAc,GACrC,AAAI,EAAoB,IAAe,MACrC,GAAoB,GAAc,IAGpC,EAAoB,GAAY,KAAK,CACnC,cAAe,EACf,cACA,UAAW,KAIf,AAAI,GAAe,KACjB,EAAY,QAAQ,CAAC,EAAY,KAC/B,AAAI,IAAe,EAAa,MAC9B,KACA,EAAa,GAAe,MAIhC,IAGF,EAAuB,KAAK,EAAa,MACzC,GAAe,MAIf,CAAC,EAAa,MAAM,GAAS,IAC/B,KAAM,GAAkB,EAAY,OAAO,CAAC,EAAG,IAAM,CAAC,EAAa,IACnE,KAAM,IAAI,OACN,kDACG,EAAgB,KAAK;wCAErB,EAAuB,KAAK,UAKrC,KAAM,GACF,EAAuB,OAAO,CAAC,EAAa,EAAa,IACvD,CAAI,GACF,EAAY,KAAK,GAEZ,GACN,IAED,EAAsB,GAC5B,EAAoB,QAAQ,IAC1B,EAAS,GAAG,MAAM,QAAQ,IACxB,KAAM,GAAW,EACZ,CAAC,EAAe,SAAS,KAAa,GAAN,KAAY,EACjD,EAAU,KAAK,OAGnB,KAAM,GAAU,KAAM,GAAqB,GAErC,EAAmC,GACzC,GAAI,GAAoB,EACxB,SAAoB,QAAQ,IAC1B,KAAM,GAAa,EAAS,GAAG,MAAM,OAErC,GAAI,GAAa,EACjB,OAAS,GAAI,EAAG,EAAI,EAAY,IAC9B,GAAc,EAAQ,EAAoB,GAAG,WAI/C,KAAM,GAAc,GAAI,aAAY,GAC9B,EAAkB,GAAI,YAAW,GACvC,GAAI,GAAoB,EACxB,OAAS,GAAI,EAAG,EAAI,EAAY,KAC9B,KAAM,GAAS,GAAI,YAAW,EAAQ,EAAoB,IAC1D,EAAgB,IAAI,EAAQ,GAC5B,GAAqB,EAAO,WAG9B,KAAM,GAAiB,EAAoB,GAC3C,EAAe,QAAQ,IACrB,KAAM,GAAa,EAAY,MAC3B,EAAa,YACb,EAAa,YAAc,EAAa,WACtC,EACF,GAAc,EAAY,CAAC,EAAa,gBAC5C,SAAW,KAAQ,GACjB,EAAiB,GAAQ,EAAgB,KAI7C,GAAqB,IAGhB,GCpPX,AA+BA,KAAM,IAAyB,2BACzB,GAAY,mBAhClB,SA8CE,YAAY,EAAc,GA+BxB,GAtCO,KAAA,eAAiB,OAQxB,AAAI,GAAe,MACjB,GAAc,IAEhB,KAAK,iBAAmB,EAAY,iBACpC,KAAK,WAAa,EAAY,WAE9B,AAAI,EAAY,WAAa,KAC3B,GACI,MAAO,GAAY,WAAc,WACjC,IAAM,+HAGV,KAAK,MAAQ,EAAY,WAEzB,KAAK,MAAQ,KAAM,SAAS,MAG9B,EACI,GAAQ,MAAQ,EAAK,OAAS,EAC9B,IAAM,2DAGV,AAAI,MAAM,QAAQ,IAChB,EACI,EAAK,SAAW,EAChB,IAAM,iEACmB,EAAK,YAEpC,KAAK,KAAO,EAER,EAAY,aAAe,MAC3B,EAAY,YAAY,MAAQ,KAClC,KAAM,IAAI,OACN,sEAEN,KAAK,YAAc,EAAY,aAAe,QAG1C,MAAK,GACT,GAAI,EAAe,wBAAyB,aAC1C,KAAM,IAAI,OACN,2FAIN,KAAM,GAAO,OAAO,OAAO,CAAC,OAAQ,KAAK,gBAAiB,KAAK,aAC/D,EAAK,KAAO,GAAI,YAEhB,KAAM,GAAyC,CAAC,CAC9C,MAAO,CAAC,uBACR,QAAS,EAAe,cAEpB,EAA4C,CAChD,cAAe,EAAe,cAC9B,OAAQ,EAAe,OACvB,YAAa,EAAe,YAC5B,YAAa,EAAe,YAC5B,oBAAqB,EAAe,oBACpC,mBAGF,EAAK,KAAK,OACN,aACA,GAAI,MACA,CAAC,KAAK,UAAU,IAChB,CAAC,KAAM,KACX,cAEJ,AAAI,EAAe,YAAc,MAC/B,EAAK,KAAK,OACN,oBACA,GAAI,MAAK,CAAC,EAAe,YAAa,CAAC,KAAM,KAC7C,qBAGN,KAAM,GAAW,KAAM,MAAK,MAAM,KAAK,KAAM,GAE7C,GAAI,EAAS,GACX,MAAO,CACL,mBAAoB,GAA6B,GACjD,UAAW,CAAC,IAGd,KAAM,IAAI,OACN,gEACG,EAAS,gBAYd,QACJ,KAAM,GAAqB,KAAM,MAAK,MAAM,KAAK,KAAM,KAAK,aAE5D,GAAI,CAAC,EAAmB,GACtB,KAAM,IAAI,OACN,cAAc,KAAK,gCAChB,EAAmB,iFAG5B,GAAI,GACJ,IACE,EAAc,KAAM,GAAmB,aAChC,GACP,GAAI,GAAU,+CAA+C,KAAK,QAGlE,KAAI,MAAK,KAAK,SAAS,OACrB,GAAW,+UAOX,GAAW,uEAGP,GAAI,OAAM,GAElB,KAAM,GAAgB,EAAY,cAC5B,EAAkB,EAAY,gBAC9B,EAAc,EAAY,YAC1B,EAAc,EAAY,YAC1B,EAAS,EAAY,OACrB,EAAsB,EAAY,oBAGxC,GAAI,GAAiB,MAAQ,GAAmB,KAC9C,KAAM,IAAI,OACN,2BAA2B,KAAK,iEAItC,GAAI,GACA,EACJ,GAAI,GAAmB,MACrB,KAAM,GAAU,KAAM,MAAK,YAAY,GACvC,CAAC,EAAa,GAAc,EAG9B,MAAO,CACL,gBACA,cACA,aACA,sBACA,cACA,cACA,eAIU,aAAY,GAExB,KAAM,GAAa,MAAM,QAAQ,KAAK,MAAQ,KAAK,KAAK,GAAK,KAAK,KAC5D,CAAC,EAAQ,GAAU,GAAS,GAC5B,EAAa,KAAK,kBAAoB,EAEtC,EAAc,GACpB,SAAW,KAAS,GAClB,EAAY,KAAK,GAAG,EAAM,SAG5B,KAAM,GAAsB,GAC5B,EAAgB,QAAQ,IACtB,EAAa,MAAM,QAAQ,IACzB,EAAU,KAAK,EAAa,EAAO,OAGvC,KAAM,GAAU,KAAM,IAAyB,EAAW,CACxD,YAAa,KAAK,YAClB,UAAW,KAAK,MAChB,WAAY,KAAK,aAEnB,MAAO,CAAC,EAAa,GAAwB,KA1L/B,GAAA,iBAAmB,eAyM/B,YAAmB,GACvB,KAAM,GAAY,EAAI,YAAY,KAC5B,EAAkB,EAAI,YAAY,KAClC,EAAS,EAAI,UAAU,EAAG,GAC1B,EACF,EAAkB,EAAY,EAAI,UAAU,GAAmB,GACnE,MAAO,CAAC,EAAS,IAAK,GAGlB,YAAuB,GAC3B,MAAO,GAAI,MAAM,GAAY,mBAAqB,KAG7C,KAAM,IACT,CAAC,EAAa,KACZ,GAAI,MAAO,QAAU,aAChB,IAAe,MAAQ,EAAY,WAAa,MAInD,MAAO,MACF,CACL,GAAI,GAAS,GAMb,GALA,AAAI,MAAM,QAAQ,GAChB,EAAS,EAAI,MAAM,GAAW,GAAa,IAE3C,EAAS,GAAa,GAEpB,EACF,MAAO,IAAK,EAAK,GAGrB,MAAO,OAEb,GAAiB,mBAAmB,IACpC,GAAiB,mBAAmB,IAyE9B,YAAe,EAAc,GACjC,MAAO,IAAI,IAAY,EAAM,GAQzB,YACF,EAAc,GAChB,MAAO,IAAK,EAAM,GCzWpB,SAwBE,YAA6B,GAAA,KAAA,eAAA,OAEvB,QACJ,MAAO,MAAK,gBA3BhB,SAgCE,YACqB,GAAA,KAAA,YAAA,OAGf,MAAK,GACT,MAAO,MAAK,YAAY,IAyBtB,YACF,EAAmC,EACnC,EAA0B,GAC5B,GAAI,UAAU,SAAW,GACvB,KAAM,GACD,EAAkC,eAAiB,MACnD,EAAkC,aAAe,KACtD,MAAI,GACK,GAAI,IAAkB,GAI7B,SAAQ,KACJ,yNAIG,GAAI,IAAkB,CAAC,cAAe,SAK/C,gBAAQ,KACJ,yNAIG,GAAI,IAAkB,CAC3B,cAAe,EACf,cACA,aACA,mBAoBA,YACF,GAEF,MAAO,IAAI,IAAiB,GCpH9B,idCAA,AAwDM,YACF,EAA6B,EAC7B,GACF,KAAM,GAAU,EAAgB,EAAQ,SAAU,mBAC5C,EACF,EAAgB,EAAa,cAAe,mBAEhD,AAAK,EACD,GAAc,MAAQ,EAAa,GAAK,OAAO,UAAU,GACzD,IAAM,+DACS,KACnB,AAAK,EACD,EAAQ,OAAS,EACjB,IAAM,gDAAgD,EAAQ,QAClE,AAAK,EACD,EAAa,OAAS,EACtB,IAAM,qDACS,EAAa,QAChC,AAAK,EACD,EAAQ,MAAM,KAAO,EAAa,MAAM,GACxC,IAAM,uCACC,EAAQ,MAAM,UAAU,EAAa,MAAM,uEAEtD,AAAK,EACD,EAAa,GAAK,OAAO,UAAU,GACnC,IAAM,4DACC,KAIX,KAAM,GAAe,GAAO,EAAK,EAAS,SAAU,GAC9C,EACF,GAAO,EAAK,EAAc,SAAU,GAClC,EAA0B,EAAU,GAC1C,MAAO,GAAK,EAAO,EAAe,GAAoB,SAGjD,KAAM,IAAkB,EAAG,CAAC,sBC7FnC,4CCAA,uDA+BA,GAAI,IAwBJ,YACI,EAEA,EAAc,GAEhB,GAAI,EAAc,EAChB,KAAM,IAAI,OACN,kEAEN,GAAI,GAAU,KACZ,KAAM,IAAI,OAAM,4DAElB,GAAI,GAAc,GACd,EAAc,GACd,EAAU,GACV,EAAU,GACV,EAAe,GACnB,GAAK,EAAqB,eAAgB,YACxC,EAAc,WAEZ,MAAQ,YAAe,aAAe,YAAkB,WAC1D,EAAc,WAEZ,MAAQ,mBAAsB,aAC9B,YAAkB,kBACpB,EAAU,WAER,MAAQ,mBAAsB,aAC9B,YAAkB,kBACpB,EAAU,WAEA,EAAe,YAAc,KACvC,EAAe,OAEf,MAAM,IAAI,OACN,qPAIY,EAAc,YAAY,QAE5C,GAAI,GACF,KAAM,GAAgC,EACtC,GAAI,GACC,EAA4B,WACzB,EACN,KAAM,IAAI,OACN,yGAMR,KAAM,GAAS,GAAU,GAAY,EAAO,aAC5C,GAAI,GAAU,MACZ,KAAM,GAA2B,CAAC,UAC5B,EAAyB,CAAC,eAChC,MAAO,GAAO,UACH,GAAY,EACZ,GAGb,KAAM,CAAC,EAAO,GAAU,EACpB,CACG,EAA4B,WAC5B,EAA4B,aAE/B,CAAC,EAAO,MAAO,EAAO,QAC1B,GAAI,GAEJ,AAAI,EACF,EAEK,EAAe,WAAW,MAAM,aAAa,EAAG,EAAG,EAAO,GAAQ,KAClE,AAAI,GAAe,EACxB,EAAQ,EAAiC,KACpC,AAAI,IAAW,IACpB,CAAI,IAAuB,MACzB,IAAsB,SAAS,cAAc,UAAU,WAAW,OAEpE,GAAoB,OAAO,MAAQ,EACnC,GAAoB,OAAO,OAAS,EACpC,GAAoB,UAChB,EAA4B,EAAG,EAAG,EAAO,GAC7C,EAAO,GAAoB,aAAa,EAAG,EAAG,EAAO,GAAQ,MAE/D,GAAI,GACJ,GAAI,IAAgB,EAClB,EAAS,GAAI,YAAW,QAExB,KAAM,GAAY,EAAQ,EAC1B,EAAS,GAAI,YAAW,EAAY,GACpC,OAAS,GAAI,EAAG,EAAI,EAAW,IAC7B,OAAS,GAAU,EAAG,EAAU,EAAa,EAAE,EAC7C,EAAO,EAAI,EAAc,GAAW,EAAK,EAAI,EAAI,GAIvD,KAAM,GAAqC,CAAC,EAAQ,EAAO,GAC3D,MAAO,IAAS,EAAQ,EAAU,SAqBpC,kBACI,EACA,GACF,GAAI,GAAO,EAAgB,EAAK,MAAO,YACvC,GAAI,CAAE,aAAe,MAEnB,KAAM,GAAoB,EAC1B,EAAO,EAAK,EAAmB,SAC/B,EAAkB,UAEpB,GAAI,EAAK,OAAS,GAAK,EAAK,OAAS,EACnC,KAAM,IAAI,OACN,wDAAwD,EAAK,SAEnE,KAAM,CAAC,EAAQ,GAAS,EAAK,MAAM,MAAM,EAAG,GACtC,EAAQ,EAAK,OAAS,EAAI,EAAI,EAAK,MAAM,GAE/C,GAAI,EAAQ,GAAK,IAAU,EACzB,KAAM,IAAI,OACN,0DACqB,KAG3B,KAAM,GAAO,KAAM,GAAK,OAClB,EAAY,GAAI,GAChB,EAAY,GAAI,GAChB,EAAO,KAAM,SAAQ,IAAI,CAAC,EAAU,OAAQ,EAAU,SACtD,EAAU,EAAK,GACf,EAAU,EAAK,GACf,EAAS,EAAQ,GACjB,EAAS,EAAQ,GAGvB,GAFA,EAAU,UACV,EAAU,UACN,EAAK,QAAU,WACjB,GAAI,EAAS,GAAK,EAAS,EACzB,KAAM,IAAI,OACN,kFACgC,OAAY,eAEzC,EAAK,QAAU,SACxB,GAAI,EAAS,GAAK,EAAS,IACzB,KAAM,IAAI,OACN,kFACkC,OAAY,WAGpD,MAAM,IAAI,OACN,kCAAkC,EAAK,+CAG7C,KAAM,GAAa,EAAK,QAAU,UAAY,IAAM,EAC9C,EAAQ,GAAI,mBAAkB,EAAQ,EAAS,GAErD,OAAS,GAAI,EAAG,EAAI,EAAS,EAAO,EAAE,GACpC,GAAI,GAAG,EAAG,EAAG,EACb,AAAI,IAAU,EACZ,GAAI,EAAK,GAAK,EACd,EAAI,EAAK,GAAK,EACd,EAAI,EAAK,GAAK,EACd,EAAI,KACC,AAAI,IAAU,EACnB,GAAI,EAAK,EAAI,GAAK,EAClB,EAAI,EAAK,EAAI,EAAI,GAAK,EACtB,EAAI,EAAK,EAAI,EAAI,GAAK,EACtB,EAAI,KACC,AAAI,IAAU,GACnB,GAAI,EAAK,EAAI,GAAK,EAClB,EAAI,EAAK,EAAI,EAAI,GAAK,EACtB,EAAI,EAAK,EAAI,EAAI,GAAK,EACtB,EAAI,EAAK,EAAI,EAAI,GAAK,GAGxB,KAAM,GAAI,EAAI,EACd,EAAM,EAAI,GAAK,KAAK,MAAM,GAC1B,EAAM,EAAI,GAAK,KAAK,MAAM,GAC1B,EAAM,EAAI,GAAK,KAAK,MAAM,GAC1B,EAAM,EAAI,GAAK,KAAK,MAAM,GAG5B,GAAI,GAAU,MACZ,EAAO,MAAQ,EACf,EAAO,OAAS,EAChB,KAAM,GAAM,EAAO,WAAW,MACxB,EAAY,GAAI,WAAU,EAAO,EAAO,GAC9C,EAAI,aAAa,EAAW,EAAG,GAEjC,MAAI,KAAS,GACX,EAAK,UAEA,EAGF,KAAM,IAAa,EAAG,CAAC,iBC1P9B,+CAUM,YACF,EAAgB,GAClB,GAAI,EAAO,KAAO,EAChB,KAAM,IAAI,OACN,4EACqB,EAAO,SAElC,GAAI,EAAQ,KAAO,EACjB,KAAM,IAAI,OACN,8EACqB,EAAQ,SAEnC,GAAI,EAAQ,QAAU,QACpB,KAAM,IAAI,OACN,yEACsB,EAAQ,UAEpC,GAAI,EAAQ,MAAM,EAAQ,KAAO,GAAK,EAAO,KAC3C,KAAM,IAAI,OACN,iEACG,EAAQ,MAAM,EAAQ,KAAO,UAAU,EAAO,QAGvD,GAAI,EAAO,OAAS,EAClB,KAAM,IAAI,OACN,mEACiB,EAAO,UAG9B,KAAM,GAAe,EAAQ,MACvB,EAAY,EAAa,EAAa,OAAS,GAIrD,GAAI,GAAU,EACd,OAAS,GAAI,EAAG,EAAI,EAAa,OAAS,EAAG,EAAE,EAC7C,GAAW,EAAa,GAG1B,KAAM,GAAa,EAAO,MAEpB,EAAc,EAAa,QACjC,EAAY,MAEZ,GAAI,GAAY,EAChB,OAAS,GAAI,EAAW,EAAI,EAAO,KAAM,EAAE,EACzC,GAAa,EAAW,GACxB,EAAY,KAAK,EAAW,IAG9B,KAAM,GACF,CAAC,GAAG,GAAe,EAAO,OAAO,IAAI,GAAU,EAAS,GACvD,GAAG,MAAM,EAAG,GAEjB,MAAO,CAAC,EAAa,EAAS,EAAW,GCjF3C,+FA0EE,eACE,MAAQ,MAAK,YACR,gBAiBA,YACH,EAAiC,GACnC,MAAO,IAAI,GAAI,IA/FnB,SAiHE,cACE,KAAK,aAAe,SAMf,UACL,MAAI,IAAiB,UAAY,MAC/B,IAAiB,SAAW,GAAI,OAE3B,GAAiB,eAMnB,UAAiC,GACtC,GAAiB,SAAS,aAAa,EAAI,WACvC,CAAC,EAAK,EAAI,aA2BZ,YACF,GACF,EACI,EAAI,WAAa,KACjB,IAAM,+EAEV,EACI,MAAO,GAAI,WAAc,SACzB,IAAM,sDACF,MAAO,GAAI,WACnB,EACI,EAAI,UAAU,OAAS,EACvB,IAAM,qFAGV,GAAiB,SAAS,GC9K5B,AAGA,KAAM,IAAU,QCHhB,gBAyCwC,IAgBtC,SAAS,EAAiB,EAAa,GAAO,GAE5C,KAAM,CAAC,QAAO,SAAS,KAAK,iBAAiB,EAAG,GAEhD,GAAI,GAAW,MACb,KAAM,GACF,EAAQ,IAAI,GAAM,EAAC,KAAM,EAAE,KAAM,OAAQ,EAAM,EAAE,SACrD,KAAK,eAAe,OAEpB,MAAK,eAAe,GAMtB,MAFA,IAAQ,GAEJ,EACK,EAEP,GAAM,UACC,SAOP,cACF,MAAI,MAAK,aAAe,MACtB,MAAK,YAAc,GAEd,KAAK,YAGJ,sBACR,KAAK,YAAc,KAAK,WAAa,EAevC,iBAAiB,EAAiB,GAEhC,MAAO,IAAc,EAAG,GAe1B,UACE,AAAI,KAAK,aAAe,MACtB,GAAQ,KAAK,kBAIX,kBACJ,MAAI,MAAK,aAAe,MACtB,MAAK,YAAc,GAEd,CACL,KAAM,OAEN,OAAQ,EAAO,KAAK,YAAa,eAI/B,cACJ,KAAM,IAAI,OAAM,gEAGZ,YAAW,GACf,KAAM,IAAI,OACN,4DACG,KAAK,uBAUE,mBAAkB,GAEhC,YAAK,YAAe,MAAM,GAAa,GAAG,OAAO,QAAQ,GAClD,EAAa,MAAM,IAI9B,OAAO,eAAe,GAAW,OAAO,YAAa,CACnD,MAAO,AAAC,GACC,EAAS,UAAY,MAAQ,EAAS,kBAAoB,MAC7D,EAAS,gBAAkB,OCvKnC,gBA+BuC,IAMrC,YACc,EAAgC,EAChC,EAAkB,MAC9B,QAFY,KAAA,aAAA,EAAgC,KAAA,IAAA,EAChC,KAAA,QAAA,EALN,KAAA,iBAAwC,GACxC,KAAA,mBAA0C,GAOhD,AAAI,GAAW,MACb,MAAK,QAAU,EAAO,QAAQ,WAIlC,eAAe,GACb,KAAM,GAAgB,MAAM,QAAQ,GAChC,EAAkB,IAAI,GAAQ,EAAK,MACnC,OAAO,KAAK,GAEhB,EAAc,QAAQ,CAAC,EAAM,KAC3B,KAAM,GAAQ,EAAO,oBAAoB,GACnC,EAAY,GAClB,AAAI,KAAK,iBAAiB,IAAM,MAC9B,MAAK,iBAAiB,GAAK,CACzB,aAAc,GAAG,eACjB,SAAU,EAAK,IAAM,EAAU,GAAO,SAAS,MAGnD,AAAI,KAAK,mBAAmB,IAAM,MAChC,MAAK,mBAAmB,GAAK,CAC3B,aAAc,GAAG,cACjB,SAAU,EAAK,IAAM,EAAU,GAAO,SAAS,MAInD,KAAM,GAAW,MAAM,QAAQ,GAC3B,EAAkB,GAAG,OACrB,EAAkB,GACtB,GAAI,GAAY,KACd,OAGF,KAAM,GAAkB,KAAK,iBAAiB,GAAG,SAC3C,EAAoB,KAAK,mBAAmB,GAAG,SAErD,EAAK,KACH,KAAM,GACF,EAAI,EAAI,EAAiB,KAAK,KAC1B,EAAI,EAAO,GAAW,EAAI,KAAK,MAEjC,EACF,EAAI,EAAI,GAAK,EAAI,EAAmB,KAAK,UACjC,GAAK,EAAI,EAAiB,KAAK,WACnC,GAEF,EACF,EAAI,EAAI,EAAmB,KAAK,KAC5B,EAAI,EAAO,GAAU,EAAI,KAAK,MAEtC,EAAgB,OAAO,GACvB,EAAkB,OAAO,GAEzB,KAAM,GAAW,EAAI,EAAI,EAAS,CAAC,KAAK,cAAe,GACvD,EAAM,OAAO,OAGjB,KAAK,sBAGP,UACE,AAAI,KAAK,oBAAsB,MAC7B,IAAQ,KAAK,iBAAiB,IAAI,GAAK,EAAE,WACzC,GAAQ,KAAK,mBAAmB,IAAI,GAAK,EAAE,iBAIzC,cAEJ,KAAM,GACF,CAAC,GAAG,KAAK,iBAAkB,GAAG,KAAK,oBACvC,MAAO,CAAC,KAAM,MAAK,kBAAkB,OACjC,EAAU,IAAI,GAAM,EAAC,KAAM,EAAE,aAAc,OAAQ,EAAE,kBAGrD,YAAW,GACf,EAAe,KAAM,MAAK,kBAAkB,GAC5C,KAAM,GAAgB,EAAa,OAAS,EACtC,EAAY,GAClB,KAAK,iBACD,EAAa,MAAM,EAAG,GAAe,IAAI,GAAM,EACJ,aAAc,EAAE,KAChB,SAAU,EAAE,OAAO,SACf,MAEnD,KAAK,mBACD,EAAa,MAAM,EAAe,EAAgB,GAC7C,IAAI,GAAM,EACJ,aAAc,EAAE,KAChB,SAAU,EAAE,OAAO,SAAS,MAI7C,YACE,MAAO,CACL,aAAgB,KAAK,aACrB,IAAO,KAAK,IACZ,QAAW,KAAK,eAKb,YACH,EAAiC,GACnC,MAAO,IAAI,GAAI,EAAO,aAAiB,EAAO,IAAQ,EAAO,UAjHxD,GAAA,UAAY,WAoHrB,GAAc,ICrJd,gBA+BsC,IAMpC,YACc,EAA8B,EAA0B,IACpE,QADY,KAAA,aAAA,EAA8B,KAAA,wBAAA,EAHpC,KAAA,iBAAwC,GAOhD,eAAe,GACb,KAAM,GAAgB,MAAM,QAAQ,GAChC,EAAkB,IAAI,GAAQ,EAAK,MACnC,OAAO,KAAK,GAEhB,EAAc,QAAQ,CAAC,EAAM,KAC3B,KAAM,GAAQ,EAAO,oBAAoB,GACzC,GAAI,KAAK,iBAAiB,IAAM,MAC9B,KAAM,GAAY,GAClB,KAAK,iBAAiB,GAAK,CACzB,aAAc,GAAG,gBACjB,SAAU,EACN,IAAM,GAAK,EAAM,MAAO,KAAK,yBAClB,SAAS,KAI5B,KAAM,GAAW,MAAM,QAAQ,GAC3B,EAAkB,GAAG,OACrB,EAAkB,GACtB,GAAI,GAAY,KACd,OAGF,KAAM,GAAkB,KAAK,iBAAiB,GAAG,SAEjD,EAAK,KACH,KAAM,GAAqB,EAAI,EAAiB,EAAO,IACvD,EAAgB,OAAO,GAEvB,KAAM,GAAW,EACb,EAAI,EAAI,EACA,GAAK,EAAI,EAAoB,EAAO,QAAQ,aAChD,CAAC,KAAK,cACV,GACJ,EAAM,OAAO,OAGjB,KAAK,sBAGP,UACE,AAAI,KAAK,kBAAoB,MAC3B,GAAQ,KAAK,iBAAiB,IAAI,GAAK,EAAE,gBAIvC,cAEJ,MAAO,CAAC,KAAM,MAAK,kBAAkB,OAAO,KAAK,iBAAiB,IAC9D,GAAM,EAAC,KAAM,EAAE,aAAc,OAAQ,EAAE,kBAGvC,YAAW,GACf,EAAe,KAAM,MAAK,kBAAkB,GAC5C,KAAM,GAAY,GAClB,KAAK,iBAAmB,EAAa,IACjC,GAAM,EAAC,aAAc,EAAE,KAAM,SAAU,EAAE,OAAO,SAAS,MAG/D,YACE,MAAO,CACL,aAAgB,KAAK,aACrB,wBAA2B,KAAK,+BAK7B,YACH,EAAiC,GACnC,MAAO,IAAI,GAAI,EAAO,aAAiB,EAAO,0BA/EzC,GAAA,UAAY,UAkFrB,GAAc,ICnHd,gBAkCmC,IASjC,YACc,EAAgC,EAChC,EAAyB,EAAkB,MACvD,QAFY,KAAA,aAAA,EAAgC,KAAA,MAAA,EAChC,KAAA,MAAA,EAAyB,KAAA,QAAA,EAL/B,KAAA,uBAA8C,GAC9C,KAAA,wBAA+C,GAMrD,EAAK,KAEH,KAAK,SAAW,EAAO,GAAO,WAC9B,KAAK,SAAW,EAAO,GAAO,aAGhC,AAAI,GAAW,MACb,MAAK,QAAU,EAAO,QAAQ,WAIlC,eAAe,GACb,KAAM,GAAW,MAAM,QAAQ,GAC3B,EAAkB,IAAI,GAAK,EAAE,MAC7B,OAAO,KAAK,GAChB,EAAK,KACH,KAAM,GAAmB,EAAI,EAAG,KAAK,UAC/B,EAAmB,EAAI,EAAG,KAAK,UAErC,EAAS,QAAQ,CAAC,EAAM,KACtB,KAAM,GAAQ,EAAO,oBAAoB,GACnC,EAAY,GAClB,AAAI,KAAK,uBAAuB,IAAM,MACpC,MAAK,uBAAuB,GAAK,CAC/B,aAAc,GAAG,MACjB,SAAU,EAAK,IAAM,EAAU,GAAO,SAAS,MAGnD,AAAI,KAAK,wBAAwB,IAAM,MACrC,MAAK,wBAAwB,GAAK,CAChC,aAAc,GAAG,MACjB,SAAU,EAAK,IAAM,EAAU,GAAO,SAAS,MAInD,KAAM,GAAW,MAAM,QAAQ,GAC3B,EAAkB,GAAG,OACrB,EAAkB,GACtB,GAAI,GAAY,KACd,OAGF,KAAM,GAAc,KAAK,uBAAuB,GAAG,SAC7C,EAAe,KAAK,wBAAwB,GAAG,SAE/C,EACF,EAAI,EAAI,EAAa,KAAK,OAAQ,EAAI,EAAU,EAAI,KAAK,QACvD,EACF,EAAI,EAAI,EAAc,KAAK,OACvB,EAAI,EAAO,GAAW,EAAI,KAAK,QAEjC,EAA2B,EAAI,EAAgB,GAC/C,EACF,EAAI,EAAiB,GAEzB,EAAY,OAAO,GACnB,EAAa,OAAO,GAEpB,KAAM,GACF,EAAI,EAAI,EAAI,EACA,EAAI,GAAK,GAA4B,KAAK,UAC9C,CAAC,KAAK,cACV,GACR,EAAM,OAAO,KAGf,KAAK,SAAS,OAAO,EAAI,KAAK,SAAU,KAAK,QAC7C,KAAK,SAAS,OAAO,EAAI,KAAK,SAAU,KAAK,UAE/C,KAAK,sBAGP,UACE,KAAK,SAAS,UACd,KAAK,SAAS,UAEd,AAAI,KAAK,wBAA0B,MACjC,GAAQ,KAAK,uBAAuB,IAAI,GAAK,EAAE,WAEjD,AAAI,KAAK,yBAA2B,MAClC,GAAQ,KAAK,wBAAwB,IAAI,GAAK,EAAE,gBAI9C,cAEJ,KAAM,GACF,CAAC,GAAG,KAAK,uBAAwB,GAAG,KAAK,yBAC7C,MAAO,CAAC,KAAM,MAAK,kBAAkB,OACjC,EAAU,IAAI,GAAM,EAAC,KAAM,EAAE,aAAc,OAAQ,EAAE,kBAGrD,YAAW,GACf,EAAe,KAAM,MAAK,kBAAkB,GAC5C,EAAK,KACH,KAAK,SAAS,OAAO,GAAI,KAAK,MAAO,KAAK,YAAc,IACxD,KAAK,SAAS,OAAO,GAAI,KAAK,MAAO,KAAK,YAAc,MAG1D,KAAM,GAAgB,EAAa,OAAS,EACtC,EAAY,GAClB,KAAK,uBACD,EAAa,MAAM,EAAG,GAAe,IAAI,GAAM,EACJ,aAAc,EAAE,KAChB,SAAU,EAAE,OAAO,SACf,MAEnD,KAAK,wBACD,EAAa,MAAM,EAAe,EAAgB,GAC7C,IAAI,GAAM,EACJ,aAAc,EAAE,KAChB,SAAU,EAAE,OAAO,SAAS,MAI7C,YACE,MAAO,CACL,aAAgB,KAAK,aACrB,MAAS,KAAK,MACd,MAAS,KAAK,MACd,QAAW,KAAK,eAKb,YACH,EAAiC,GACnC,MAAO,IAAI,GACP,EAAO,aAAiB,EAAO,MAAU,EAAO,MAChD,EAAO,UA5IN,GAAA,UAAY,OA+IrB,GAAc,ICnLd,gBAiCqC,IASnC,YACc,EAAgC,EAChC,EAAyB,EAAkB,KAC3C,EAAQ,GACpB,QAHY,KAAA,aAAA,EAAgC,KAAA,MAAA,EAChC,KAAA,MAAA,EAAyB,KAAA,QAAA,EACzB,KAAA,MAAA,EANN,KAAA,uBAA8C,GAC9C,KAAA,2BAAkD,GAQxD,EAAK,KACH,KAAK,UAAY,EAAO,GAAG,WAC3B,KAAK,SAAW,EAAO,GAAO,aAGhC,AAAI,GAAW,MACb,MAAK,QAAU,EAAO,QAAQ,WAIlC,eAAe,GACb,KAAM,GAAgB,MAAM,QAAQ,GAChC,EAAkB,IAAI,GAAQ,EAAK,MACnC,OAAO,KAAK,GAEhB,EAAK,KACH,KAAM,GAAmB,EAAI,EAAG,KAAK,UAC/B,EACF,EAAI,CAAC,KAAK,aAAc,EAAI,EAAI,KAAK,UAAW,KAAK,OAAQ,IAEjE,EAAc,QAAQ,CAAC,EAAM,KAC3B,KAAM,GAAQ,EAAO,oBAAoB,GACnC,EAAY,GAClB,AAAI,KAAK,uBAAuB,IAAM,MACpC,MAAK,uBAAuB,GAAK,CAC/B,aAAc,GAAG,MACjB,SAAU,EAAU,GAAO,SAAS,KAGxC,AAAI,KAAK,2BAA2B,IAAM,MACxC,MAAK,2BAA2B,GAAK,CACnC,aAAc,GAAG,MACjB,SAAU,EAAU,GAAO,SAAS,KAIxC,KAAM,GAAW,MAAM,QAAQ,GAC3B,EAAkB,GAAG,OACrB,EAAkB,GACtB,GAAI,GAAY,KACd,OAGF,KAAM,GAAc,KAAK,uBAAuB,GAAG,SAC7C,EAAkB,KAAK,2BAA2B,GAAG,SAErD,EACF,EAAI,EAAI,EAAa,KAAK,OAAQ,EAAI,EAAU,EAAI,KAAK,QAEvD,EAAM,EAAI,EAAiB,KAAK,OAChC,EAAM,GAAI,GAEV,EAAqB,GAAQ,EAAK,GAExC,EAAY,OAAO,GACnB,EAAgB,OAAO,GAEvB,KAAM,GACF,EAAI,EAAI,EAAI,EAAI,GACR,EAAI,EAAgB,EAAI,EAAoB,KAAK,WACrD,GAER,EAAM,OAAO,KAGf,KAAK,UAAU,OAAO,EAAI,KAAK,UAAW,IAC1C,KAAK,SAAS,OAAO,EAAI,KAAK,SAAU,KAAK,UAE/C,KAAK,sBAGP,UACE,KAAK,SAAS,UACd,KAAK,UAAU,UAEf,AAAI,KAAK,wBAA0B,MACjC,GAAQ,KAAK,uBAAuB,IAAI,GAAK,EAAE,WAEjD,AAAI,KAAK,4BAA8B,MACrC,GAAQ,KAAK,2BAA2B,IAAI,GAAK,EAAE,gBAIjD,cACJ,KAAM,IAAI,OAAM,wDAGZ,YAAW,GACf,KAAM,IAAI,OAAM,mDAGlB,YACE,MAAO,CACL,aAAgB,KAAK,aACrB,MAAS,KAAK,MACd,MAAS,KAAK,MACd,QAAW,KAAK,QAChB,MAAS,KAAK,aAKX,YACH,EAAiC,GACnC,MAAO,IAAI,GACP,EAAO,aAAiB,EAAO,MAAU,EAAO,MAChD,EAAO,QAAY,EAAO,QAvHzB,GAAA,UAAY,SA0HrB,GAAc,IC7Jd,gBA6BkC,IAKhC,YAAsB,GACpB,QADoB,KAAA,aAAA,EAEpB,KAAK,gBAAgB,GAGvB,eAAe,GACb,KAAM,GAAW,MAAM,QAAQ,GAC3B,EAAkB,IAAI,GAAK,EAAE,MAC7B,OAAO,KAAK,GAChB,EAAS,QAAQ,CAAC,EAAM,KACtB,KAAM,GAAW,MAAM,QAAQ,GAC3B,EAAkB,GAAG,OACrB,EAAkB,GACtB,GAAI,GAAY,KACd,OAEF,KAAM,GAAQ,EAAO,oBAAoB,GACzC,EAAK,KACH,KAAM,GAAW,EAAI,EAAI,KAAK,EAAG,GAAW,GAC5C,EAAM,OAAO,OAGjB,KAAK,sBAMP,gBAAgB,GACd,KAAK,aAAe,EACpB,AAAI,KAAK,GAAK,MACZ,KAAK,EAAE,UAET,KAAK,EAAI,GAAK,EAAO,CAAC,IAGxB,UACE,KAAK,EAAE,eAGH,cACJ,MAAO,CAAC,KAAM,MAAK,uBAGf,YAAW,GAEf,GADA,EAAe,KAAM,MAAK,kBAAkB,GACxC,EAAa,SAAW,EAC1B,KAAM,IAAI,OAAM,iDAIpB,YACE,MAAO,CAAC,aAAgB,KAAK,oBAIxB,YACH,EAAiC,GACnC,MAAO,IAAI,GAAI,EAAO,eA7DjB,GAAA,UAAY,MAgErB,GAAc,IC/Fd,gBA+BuC,IAMrC,YACc,EAA8B,EAChC,EAAc,IACxB,MAAM,GAFM,KAAA,aAAA,EAA8B,KAAA,SAAA,EAChC,KAAA,YAAA,EAJJ,KAAA,cAAqC,GAM3C,KAAK,EAAI,EAAO,KAAK,UAGvB,eAAe,GACb,KAAM,GAAgB,MAAM,QAAQ,GAChC,EAAkB,IAAI,GAAQ,EAAK,MACnC,OAAO,KAAK,GAEhB,EAAc,QAAQ,CAAC,EAAM,KAC3B,KAAM,GAAQ,EAAO,oBAAoB,GACzC,GAAI,KAAK,cAAc,IAAM,MAC3B,KAAM,GAAY,GAClB,KAAK,cAAc,GAAK,CACtB,aAAc,GAAG,aACjB,SAAU,EAAK,IAAM,EAAU,GAAO,SAAS,KAInD,KAAM,GAAe,KAAK,cAAc,GAAG,SACrC,EAAW,MAAM,QAAQ,GAC3B,EAAkB,GAAG,OACrB,EAAkB,GACtB,GAAI,GAAY,KACd,OAGF,EAAK,KACH,GAAI,GACJ,KAAM,GAAkB,EAAI,EAAI,KAAK,EAAG,GAAe,GACvD,AAAI,KAAK,YACP,EAAW,EACP,EAAI,KAAK,EAAG,EAAI,EAAU,EAAI,EAAiB,KAAK,KAAM,GAE9D,EAAW,EAAI,EAAI,KAAK,EAAG,GAAkB,GAE/C,EAAa,OAAO,GACpB,EAAM,OAAO,OAGjB,KAAK,sBAGP,UACE,KAAK,EAAE,UACP,AAAI,KAAK,eAAiB,MACxB,GAAQ,KAAK,cAAc,IAAI,GAAK,EAAE,WAS1C,YAAY,GACV,KAAK,SAAW,OAGZ,cAEJ,MAAO,CAAC,KAAM,MAAK,kBAAkB,OAAO,KAAK,cAAc,IAC3D,GAAM,EAAC,KAAM,EAAE,aAAc,OAAQ,EAAE,kBAGvC,YAAW,GACf,EAAe,KAAM,MAAK,kBAAkB,GAC5C,KAAM,GAAY,GAClB,KAAK,cAAgB,EAAa,IAC9B,GAAM,EAAC,aAAc,EAAE,KAAM,SAAU,EAAE,OAAO,SAAS,MAG/D,YACE,MAAO,CACL,aAAgB,KAAK,aACrB,SAAY,KAAK,SACjB,YAAe,KAAK,mBAKjB,YACH,EAAiC,GACnC,MAAO,IAAI,GACP,EAAO,aAAiB,EAAO,SAAa,EAAO,cA3FlD,GAAA,UAAY,WA8FrB,GAAc,IC/Hd,gBAgCsC,IASpC,YACc,EAAgC,EAAQ,GACxC,EAAW,EAAe,EAAkB,KACtD,EAAW,IACb,QAOA,GAVY,KAAA,aAAA,EAAgC,KAAA,MAAA,EAChC,KAAA,SAAA,EAA0B,KAAA,QAAA,EANhC,KAAA,uBAA8C,GAC9C,KAAA,mBAA0C,GAC1C,KAAA,qBAA4C,GAQlD,KAAK,SAAW,EAEhB,AAAI,GAAW,MACb,MAAK,QAAU,EAAO,QAAQ,WAE5B,GAAgB,KAClB,KAAM,IAAI,OAAM,sDAIpB,eAAe,GACb,KAAM,GAAgB,MAAM,QAAQ,GAChC,EAAkB,IAAI,GAAQ,EAAK,MACnC,OAAO,KAAK,GAEhB,EAAc,QAAQ,CAAC,EAAM,KAC3B,KAAM,GAAQ,EAAO,oBAAoB,GACnC,EAAY,GAClB,AAAI,KAAK,uBAAuB,IAAM,MACpC,MAAK,uBAAuB,GAAK,CAC/B,aAAc,GAAG,QACjB,SAAU,EAAK,IAAM,EAAU,GAAO,SAAS,MAGnD,AAAI,KAAK,mBAAmB,IAAM,MAChC,MAAK,mBAAmB,GAAK,CAC3B,aAAc,GAAG,aACjB,SAAU,EAAK,IAAM,EAAU,GAAO,SAAS,MAGnD,AAAI,KAAK,qBAAqB,IAAM,MAAQ,KAAK,UAC/C,MAAK,qBAAqB,GAAK,CAC7B,aAAc,GAAG,OACjB,SAAU,EAAK,IAAM,EAAU,GAAO,SAAS,MAInD,KAAM,GAAW,MAAM,QAAQ,GAC3B,EAAkB,GAAG,OACrB,EAAkB,GACtB,GAAI,GAAY,KACd,OAGF,KAAM,GAAwB,KAAK,uBAAuB,GAAG,SACvD,EAAqB,KAAK,mBAAmB,GAAG,SACtD,EAAK,KACH,KAAM,GACF,EAAI,EAAI,EAAuB,KAAK,OAChC,EAAI,EAAO,GAAW,EAAI,KAAK,QAEvC,GAAI,KAAK,UACP,KAAM,GAAsB,KAAK,qBAAqB,GAAG,SAEnD,EACF,EAAI,EAAI,EAAqB,KAAK,OAC9B,EAAI,EAAU,EAAI,KAAK,QAEzB,EACF,EAAI,EAAI,EAAU,KAAK,cACnB,GACI,EAAI,EACA,EAAI,EAAO,GAAyB,KAAK,YACnD,EACF,EAAI,EAAI,EAAoB,KAAK,UAAW,GAEhD,EAAsB,OAAO,GAC7B,EAAoB,OAAO,GAC3B,EAAmB,OAAO,GAE1B,KAAM,GAAW,EAAI,EAAO,GAC5B,EAAM,OAAO,QAGb,KAAM,GACF,EAAI,EAAI,EAAuB,KAAK,OAChC,EAAI,EAAO,GAAW,EAAI,KAAK,QAEjC,EACF,EAAI,EAAI,EAAoB,KAAK,UAC7B,EAAI,EAAI,EAAU,KAAK,cACnB,GAAK,EAAI,EAA0B,KAAK,YAEpD,EAAsB,OAAO,GAC7B,EAAmB,OAAO,GAE1B,KAAM,GAAW,EAAI,EAAO,GAC5B,EAAM,OAAO,QAInB,KAAK,sBAGP,UACE,AAAI,KAAK,wBAA0B,MACjC,GAAQ,KAAK,uBAAuB,IAAI,GAAK,EAAE,WAEjD,AAAI,KAAK,sBAAwB,MAAQ,KAAK,UAC5C,GAAQ,KAAK,qBAAqB,IAAI,GAAK,EAAE,WAE/C,AAAI,KAAK,oBAAsB,MAC7B,GAAQ,KAAK,mBAAmB,IAAI,GAAK,EAAE,gBAIzC,cAEJ,KAAM,GACF,CAAC,GAAG,KAAK,uBAAwB,GAAG,KAAK,oBAC7C,MAAI,MAAK,UACP,EAAU,KAAK,GAAG,KAAK,sBAElB,CAAC,KAAM,MAAK,kBAAkB,OACjC,EAAU,IAAI,GAAM,EAAC,KAAM,EAAE,aAAc,OAAQ,EAAE,kBAGrD,YAAW,GACf,EAAe,KAAM,MAAK,kBAAkB,GAC5C,KAAM,GACF,KAAK,SAAW,EAAa,OAAS,EAAI,EAAa,OAAS,EAC9D,EAAY,GAClB,KAAK,uBACD,EAAa,MAAM,EAAG,GAAe,IAAI,GAAM,EACJ,aAAc,EAAE,KAChB,SAAU,EAAE,OAAO,SACf,MAEnD,KAAK,mBACD,EAAa,MAAM,EAAe,EAAgB,GAC7C,IAAI,GAAM,EACJ,aAAc,EAAE,KAChB,SAAU,EAAE,OAAO,SAAS,MAE3C,AAAI,KAAK,UACP,MAAK,qBACD,EAAa,MAAM,EAAgB,EAAG,EAAgB,GACjD,IAAI,GAAM,EACJ,aAAc,EAAE,KAChB,SAAU,EAAE,OAAO,SAAS,OAK/C,YACE,MAAO,CACL,aAAgB,KAAK,aACrB,MAAS,KAAK,MACd,SAAY,KAAK,SACjB,QAAW,KAAK,QAChB,SAAY,KAAK,gBAKd,YACH,EAAiC,GACnC,MAAO,IAAI,GACP,EAAO,aAAiB,EAAO,MAAU,EAAO,SAChD,EAAO,QAAY,EAAO,WA5KzB,GAAA,UAAY,UA+KrB,GAAc,ICjNd,eAgES,KAAI,GACT,MAAO,IAAI,IAAa,SAmBnB,UAAS,EAAsB,EAAkB,EAAc,IAEpE,MAAO,IAAI,IAAkB,EAAc,EAAU,SAwBhD,SACH,EAAsB,EAAQ,GAAI,EAAW,EAAK,EAAkB,KACpE,EAAW,IACb,MAAO,IAAI,IACP,EAAc,EAAO,EAAU,EAAS,SAgBvC,MACH,EAAe,KAAO,EAAQ,GAAK,EAAQ,KAC3C,EAAkB,MACpB,MAAO,IAAI,IAAc,EAAc,EAAO,EAAO,SAgBhD,UAAS,EAAe,KAAM,EAAM,IAAK,EAAkB,MAEhE,MAAO,IAAI,IAAkB,EAAc,EAAK,SAiB3C,QACH,EAAe,KAAO,EAAQ,GAAK,EAAQ,KAAO,EAAkB,KACpE,EAAQ,GACV,MAAO,IAAI,IAAgB,EAAc,EAAO,EAAO,EAAS,SAoB3D,SAAQ,EAAsB,EAA0B,IAE7D,MAAO,IAAI,IAAiB,EAAc,ICjM9C,AA4BA,AAAC,GAAmB,GAAc,GAAmB,GACpD,GAAkB,GAAiB,GAE7B,KAAM,IAAQ,CACnB,IAAK,GAAsB,IAC3B,SAAU,GAAsB,SAChC,SAAU,GAAsB,SAChC,QAAS,GAAsB,QAC/B,QAAS,GAAsB,QAC/B,OAAQ,GAAsB,OAC9B,KAAM,GAAsB,MCtC9B,AAiBA,KAAM,IAA2B,KAC3B,MAAO,wBAA0B,YAC5B,sBACE,MAAO,eAAiB,YAC1B,aAEF,AAAC,GAAgB,OAY1B,cACE,MAAO,IAAI,SAAc,GAAW,GAAc,IAAM,MCpC1D,AAkBM,YACF,EAAiC,EACjC,GACF,KAAM,GACF,EAAc,OAAO,IAAW,SAAW,EAAS,EAAO,IACzD,EACF,EAAe,OAAO,IAAW,SAAW,EAAS,EAAO,IAChE,MAAO,CAAC,EAAS,GCzBnB,AAyBM,YACF,EAAsB,EAAsB,EAC5C,EAAe,IACjB,GAAI,GAAqB,GACzB,GAAI,EACF,EAAW,EAAS,OAAO,EAAW,MAAM,IAC5C,EAAS,KAAK,EAAW,GAAK,GAC9B,EAAW,EAAS,OAAO,EAAW,MAAM,SAE5C,EAAW,EAAS,OAAO,EAAW,IACtC,KAAM,GAAgB,EAAW,OACjC,OAAS,GAAI,EAAG,EAAI,EAAe,EAAE,EACnC,EACI,EAAS,OAAO,CAAC,EAAW,EAAI,GAAK,EAAW,GAAI,EAAW,KAErE,EAAW,EAAS,OAAO,EAAW,MAAM,EAAgB,IAE9D,MAAO,GAYH,YACF,EAAsB,EACtB,EAAe,IACjB,KAAM,GAAW,GACjB,GAAI,GACF,EAAS,KAAK,GACd,OAAS,GAAI,EAAiB,EAAG,EAAI,EAAc,EAAE,EACnD,AAAI,GAAK,EAAI,EACX,GAAS,KAAK,GACd,EAAS,KAAK,EAAK,GAAiB,KAEpC,EAAS,KAAK,QAIlB,KAAM,GAAsB,GACtB,EAAqB,GAC3B,OAAS,GAAI,EAAG,EAAI,EAAc,EAAE,EAClC,AAAI,GAAK,EAAiB,EAAI,GAAK,EAAI,IAAM,EAC3C,EAAmB,KAAK,GAExB,EAAoB,KAAK,GAG7B,EAAS,KAAK,GAAG,GACjB,EAAS,KAAK,GACd,EAAS,KAAK,GAAG,GAEnB,MAAO,GAYH,YACF,EAAsB,EAAsB,EAC5C,EAAe,IACjB,KAAM,GAAmB,GAEzB,AAAI,EACF,EAAiB,KAAK,EAAW,GAAK,GAEtC,EAAiB,KAAK,EAAW,GAAK,GAGxC,OAAS,GAAI,EAAG,EAAI,EAAW,OAAQ,EAAE,EACvC,AAAI,GAAK,EAAW,OAClB,AAAI,EACF,EAAiB,KAAK,EAAW,EAAI,GAAK,EAAW,IAErD,EAAiB,KAAK,EAAW,GAAK,EAAW,EAAI,IAGvD,EAAiB,KAAK,EAAW,IAIrC,MAAO,GAOH,YACF,EAAmB,GACrB,KAAM,GAAmB,CAAC,GAC1B,OAAS,GAAI,EAAG,EAAI,EAAY,EAAE,EAChC,EAAiB,KAAK,EAAM,GAAG,IAEjC,MAAO,GAcH,YACF,EAA0B,EAAmB,GAC/C,KAAM,GAAY,EAAe,MAAM,EAAG,GAC1C,OAAS,GAAI,EAAG,EAAI,EAAY,EAAE,EAChC,EAAU,KAAK,EAAe,EAAI,GAAK,EAAM,GAAG,GAAK,EAAM,GAAG,IAGhE,MAAO,GCvJT,AAiBO,KAAM,IAAkB,mBAClB,GAAa,mBClB1B,AAiBO,KAAM,IAAQ,SACR,GAAS,WACT,GAAS,YACT,GAAS,YACT,GAAS,aACT,GAAS,YCtBtB,AAmBM,eAAkB,GACtB,AAAK,KAAM,QAAQ,YACjB,QAAQ,KAAK,GAAG,GAId,eAAiB,GACrB,AAAK,KAAM,QAAQ,YACjB,QAAQ,IAAI,GAAG,GC3BnB,AAgCM,YACF,EAAoB,GACtB,GAAI,EAAK,SAAW,EAAK,OACvB,KAAM,IAAI,OACN,gEACG,EAAK,iBAAiB,EAAK,WAEpC,KAAM,GAAS,GAAI,cAAa,EAAK,OAAS,GAC9C,OAAS,GAAI,EAAG,EAAI,EAAO,OAAQ,GAAK,EACtC,EAAO,GAAK,EAAK,EAAI,GACrB,EAAO,EAAI,GAAK,EAAK,EAAI,GAE3B,MAAO,GAiBH,YAAiC,GAErC,KAAM,GAAO,GAAI,cAAa,EAAQ,OAAS,GACzC,EAAO,GAAI,cAAa,EAAQ,OAAS,GAC/C,OAAS,GAAI,EAAG,EAAI,EAAQ,OAAQ,GAAK,EACvC,EAAK,EAAI,GAAK,EAAQ,GACtB,EAAK,EAAI,GAAK,EAAQ,EAAI,GAE5B,MAAO,CAAC,OAAM,QAOV,YAA+B,GAEnC,KAAM,GAAM,KAAK,KAAK,EAAQ,OAAS,GACjC,EAAO,GAAI,cAAa,GACxB,EAAO,GAAI,cAAa,GAC9B,OAAS,GAAI,EAAG,EAAI,EAAQ,OAAQ,GAAK,EACvC,EAAK,KAAK,MAAM,EAAI,IAAM,EAAQ,GAClC,EAAK,KAAK,MAAM,EAAI,IAAM,EAAQ,EAAI,GAExC,MAAO,CAAC,OAAM,QAOV,YAA8B,GAElC,KAAM,GAAM,KAAK,MAAM,EAAQ,OAAS,GAClC,EAAO,GAAI,cAAa,GACxB,EAAO,GAAI,cAAa,GAC9B,OAAS,GAAI,EAAG,EAAI,EAAQ,OAAQ,GAAK,EACvC,EAAK,KAAK,MAAM,EAAI,IAAM,EAAQ,GAClC,EAAK,KAAK,MAAM,EAAI,IAAM,EAAQ,EAAI,GAExC,MAAO,CAAC,OAAM,QAQV,YACF,EAAuB,GACzB,KAAM,GAAO,EAAQ,EAAQ,GACvB,EAAO,EAAQ,EAAQ,EAAI,GACjC,MAAO,CAAC,OAAM,QASV,YACF,EAAkB,EAAc,EAAc,GAChD,EAAK,EAAQ,GAAK,EAClB,EAAK,EAAQ,EAAI,GAAK,EAMlB,YACF,EAAW,GACb,KAAM,GAAO,GAAI,cAAa,EAAI,GAC5B,EAAO,GAAI,cAAa,EAAI,GAClC,OAAS,GAAI,EAAG,EAAI,KAAK,KAAK,EAAI,GAAI,KACpC,KAAM,GAAK,GAAU,EAAI,IAAM,KAAK,GAAM,GAAI,GAC9C,EAAK,GAAK,KAAK,IAAI,GACnB,EAAK,GAAK,KAAK,IAAI,GAErB,MAAO,CAAC,OAAM,QAMV,YACF,EAAW,EAAW,GACxB,KAAM,GAAK,GAAU,EAAI,IAAM,KAAK,GAAM,GAAI,GACxC,EAAO,KAAK,IAAI,GAChB,EAAO,KAAK,IAAI,GACtB,MAAO,CAAC,OAAM,QCvJhB,g9CAsDM,YACF,EAAM,EAAiB,GACzB,GAAI,IAAU,aACZ,GAAI,EAAE,QAAU,YACd,MAAO,GAAE,QAEX,KAAM,GAAc,GAAM,EAAE,OACtB,EAAS,EAAK,EAAG,WACjB,EAAS,EAAQ,QAAQ,EAAQ,GACvC,SAAY,UACZ,EAAO,UACA,EAGT,GAAI,CAAC,GAAgB,EAAE,MAAO,GAG5B,MAAO,GAAO,qBAAqB,EAAE,OAAQ,EAAE,MAAO,GAExD,GAAI,EAAE,QAAU,aACd,KAAM,GAAO,EAAQ,KAAK,GACpB,EAAS,EAAK,EAAM,GAC1B,SAAK,UACE,EAET,GAAI,IAAU,QACZ,MAAO,GAAQ,IAAI,GACd,GAAI,IAAU,QACnB,KAAM,GAAO,EAAO,EAAG,EAAE,OACnB,EAAS,EAAQ,SAAS,EAAG,GACnC,SAAK,UACE,MAEP,MAAM,IAAI,OAAM,iCAAiC,EAAE,YAAY,KAI7D,YACF,EAAM,GACR,MAAO,GAAO,qBAAqB,EAAE,OAAQ,EAAO,EAAE,OAGlD,YAAuB,EAAe,EAAc,GACxD,KAAM,GAAQ,GAAO,GAAU,GAAM,GAE/B,EAAS,GAAoB,EAAK,WACxC,EAAO,GAAK,EACZ,OAAS,GAAI,EAAG,EAAI,EAAO,OAAQ,IACjC,EAAO,GAAK,EAAO,EAAI,GAAK,EAG9B,MAAO,IAAS,EAAQ,WCzG1B,AAwBM,YACF,EAAM,EAAsB,GAC9B,KAAM,GAAQ,GAAI,OAAM,EAAE,MAAM,KAAK,GAC/B,EAAO,EAAE,MAAM,QACrB,MAAO,GAAW,IAAI,IACpB,KAAM,GAAY,CAAC,GAAG,GACtB,EAAU,GAAQ,EAClB,KAAM,GAAS,EAAM,EAAG,EAAO,GAC/B,SAAM,IAAS,EACR,ICjCX,AA0BM,YACF,EAAiC,GACnC,KAAM,GAAqB,GAAI,OAAM,EAAK,MAC1C,OAAS,GAAI,EAAG,EAAI,EAAS,OAAQ,IACnC,EAAS,GAAK,EAAK,MAAM,GAAK,EAAK,GAErC,KAAM,GAAS,GAAO,EAAU,EAAK,OACrC,OAAS,GAAI,EAAG,EAAI,EAAO,OAAO,OAAQ,EAAE,GAC1C,KAAM,GAAS,EAAO,WAAW,GAE3B,EAAwB,GAAI,OAAM,EAAK,MAC7C,OAAS,GAAI,EAAG,EAAI,EAAY,OAAQ,IACtC,EAAY,GAAK,EAAO,GAAK,EAAK,MAAM,GAG1C,KAAM,GAAgB,EAAK,WAAW,GAEtC,EAAO,OAAO,GAAK,EAAK,OAAO,GAEjC,MAAO,GAAO,WC7ChB,AAwBM,YACF,EAAe,EAAkB,EAAyB,EAC1D,GAEF,KAAM,GAAU,EAAO,EAAO,OAAS,GACjC,CAAC,EAAO,GAAQ,CAAC,EAAE,OAAS,EAAS,GACrC,EAAc,GAAuB,EAAQ,EAAQ,GACrD,EAAiB,GAAuB,QAAS,EAAQ,GAE/D,OAAS,GAAI,EAAG,EAAI,EAAO,KACzB,KAAM,GAAS,EAAI,EACb,EAAO,EAAE,SAAS,EAAQ,EAAS,GACnC,EAAmD,GACzD,OAAS,GAAI,EAAG,EAAI,EAAK,OAAQ,IAC/B,EAAU,KAAK,CAAC,MAAO,EAAK,GAAI,MAAO,IAEzC,EAAU,KAAK,CAAC,EAAG,IAAM,EAAE,MAAQ,EAAE,OAErC,KAAM,GAAY,EAAI,EAChB,EAAW,EAAY,SAAS,EAAW,EAAY,GACvD,EAAc,EAAe,SAAS,EAAW,EAAY,GACnE,OAAS,GAAI,EAAG,EAAI,EAAG,IACrB,EAAS,GAAK,EAAU,GAAG,MAC3B,EAAY,GAAK,EAAU,GAAG,MAKlC,KAAM,GAAc,EAAO,QAC3B,SAAY,EAAY,OAAS,GAAK,EAC/B,CACL,GAAO,EAAa,EAAa,GACjC,GAAO,EAAgB,EAAa,UCxDxC,4KCAA,AAsBO,KAAM,IAAkB,KAClB,GAAkB,KAvB/B,SAiDE,YAAoB,EAAgC,GAAhC,KAAA,QAAA,EAAgC,KAAA,UAAA,EAH5C,KAAA,KAAO,GAAI,WACX,KAAA,aAAe,EAIvB,IAAI,GACF,MAAK,MAAK,KAAK,IAAI,IACjB,KAAK,UAAU,SAAS,KAAK,QAAS,GAEjC,KAAK,KAAK,IAAI,GAGvB,IAAI,EAAgB,GAClB,KAAK,eACL,KAAK,KAAK,IAAI,EAAQ,GAGxB,IAAI,GACF,MAAO,MAAK,KAAK,IAAI,GAGvB,OAAO,GACL,YAAK,eACE,KAAK,KAAK,OAAO,GAG1B,aACE,MAAO,MAAK,cAzEhB,SAiGE,KAAK,GACH,MAAO,GAAkB,QAE3B,KAAK,GACH,MAAO,GAAkB,QAE3B,SAAS,GACP,MAAO,GAAkB,YAE3B,aACE,MAAO,GAAkB,cAE3B,YAAY,GACV,MAAO,GAAkB,eAE3B,MAAM,EAAuB,EAAiB,GAC5C,MAAO,GAAkB,SAE3B,KAAK,EAAgB,EAAuB,EAAiB,GAE3D,MAAO,GAAkB,QAE3B,SACE,MAAO,GAAkB,UAG3B,iBACE,MAAO,GAAkB,kBAG3B,UACE,MAAO,MAAK,mBAAqB,GAAK,GAAkB,GAG1D,YACI,EAAa,EAAa,EAC1B,GACF,MAAO,GAAkB,eAG3B,iBACI,CAAC,IAAG,IAAG,aAAY,aAAY,OAAM,aAAY,2BAEnD,MAAO,GAAkB,oBAG3B,MAAwB,EAAM,EAAiB,GAC7C,MAAO,GAAkB,SAE3B,aACI,EAAM,EAAiB,EAAe,GACxC,MAAO,GAAkB,gBAE3B,QAAQ,EAAW,GACjB,MAAO,GAAkB,WAE3B,QAA0B,EAAM,GAC9B,MAAO,GAAkB,WAG3B,OAAO,EAAmB,GACxB,MAAO,GAAkB,UAG3B,IAAsB,GACpB,MAAO,GAAkB,OAG3B,IAAI,EAAW,GACb,MAAO,GAAkB,OAE3B,KAAuB,GACrB,MAAO,GAAkB,QAE3B,SAAS,EAAW,GAClB,MAAO,GAAkB,YAE3B,SAAS,EAAW,GAClB,MAAO,GAAkB,YAE3B,WAAW,EAAW,GACpB,MAAO,GAAkB,cAE3B,SAAS,EAAW,GAClB,MAAO,GAAkB,YAG3B,IAAI,EAAW,GACb,MAAO,GAAkB,OAE3B,KAAK,EAAW,GACd,MAAO,GAAkB,QAG3B,mBACI,EAAM,EAAsB,GAC9B,MAAO,GAAkB,sBAG3B,OAAO,EAAW,GAChB,MAAO,GAAkB,UAE3B,OAAO,EAAW,GAChB,MAAO,GAAkB,UAG3B,MAAM,EAAW,GACf,MAAO,GAAkB,SAE3B,SAAS,EAAW,GAClB,MAAO,GAAkB,YAG3B,KAAK,EAAW,GACd,MAAO,GAAkB,QAE3B,UAAU,EAAW,GACnB,MAAO,GAAkB,aAG3B,QAAQ,EAAW,GACjB,MAAO,GAAkB,WAE3B,aAAa,EAAW,GACtB,MAAO,GAAkB,gBAG3B,WAA6B,GAC3B,MAAO,GAAkB,cAE3B,WAAW,EAAW,GACpB,MAAO,GAAkB,cAE3B,UAAU,EAAW,GACnB,MAAO,GAAkB,aAG3B,MAAM,GACJ,MAAO,GAAkB,SAE3B,OAAO,EAAmB,EAAW,GACnC,MAAO,GAAkB,UAG3B,KAAuB,EAAM,EAAW,GACtC,MAAO,GAAkB,QAG3B,IAAI,EAAW,GACb,MAAO,GAAkB,OAE3B,QAAQ,EAAW,GACjB,MAAO,GAAkB,WAG3B,IAAI,EAAW,GACb,MAAO,GAAkB,OAG3B,IAAI,EAAW,GACb,MAAO,GAAkB,OAE3B,QAAQ,EAAW,GACjB,MAAO,GAAkB,WAG3B,IAAI,EAAW,GACb,MAAO,GAAkB,OAE3B,IAAI,EAAW,GACb,MAAO,GAAkB,OAG3B,kBAAkB,EAAW,GAC3B,MAAO,GAAkB,qBAG3B,KAAuB,GACrB,MAAO,GAAkB,QAE3B,MAAwB,GACtB,MAAO,GAAkB,SAE3B,MAAwB,GACtB,MAAO,GAAkB,SAG3B,KAAuB,GACrB,MAAO,GAAkB,QAG3B,MAAwB,GACtB,MAAO,GAAkB,SAE3B,MAAwB,GACtB,MAAO,GAAkB,SAE3B,SAA2B,GACzB,MAAO,GAAkB,YAG3B,IAAsB,EAAM,GAC1B,MAAO,GAAkB,OAE3B,IAAsB,GACpB,MAAO,GAAkB,OAE3B,MAAwB,GACtB,MAAO,GAAkB,SAE3B,QAA0B,EAAM,GAC9B,MAAO,GAAkB,WAE3B,IAAsB,GACpB,MAAO,GAAkB,OAE3B,MAAwB,GACtB,MAAO,GAAkB,SAE3B,KAAuB,GACrB,MAAO,GAAkB,QAE3B,MAAwB,GACtB,MAAO,GAAkB,SAE3B,OAAyB,GACvB,MAAO,GAAkB,UAE3B,WAA6B,GAC3B,MAAO,GAAkB,cAE3B,KAAuB,GACrB,MAAO,GAAkB,QAE3B,MAAwB,GACtB,MAAO,GAAkB,SAE3B,MAAwB,EAAM,GAC5B,MAAO,GAAkB,SAE3B,IAAsB,GACpB,MAAO,GAAkB,OAE3B,OAAyB,EAAO,GAC9B,MAAO,GAAkB,UAE3B,KAAuB,GACrB,MAAO,GAAkB,QAE3B,IAAsB,GACpB,MAAO,GAAkB,OAG3B,KAAuB,EAAM,EAAa,GACxC,MAAO,GAAkB,QAG3B,IAAsB,GACpB,MAAO,GAAkB,OAE3B,WAA6B,GAC3B,MAAO,GAAkB,cAG3B,QAA0B,GACxB,MAAO,GAAkB,WAG3B,SAA2B,GACzB,MAAO,GAAkB,YAG3B,IAAsB,GACpB,MAAO,GAAkB,OAE3B,IAAsB,GACpB,MAAO,GAAkB,OAE3B,IAAsB,GACpB,MAAO,GAAkB,OAG3B,KAAuB,GACrB,MAAO,GAAkB,QAE3B,KAAuB,GACrB,MAAO,GAAkB,QAE3B,KAAuB,GACrB,MAAO,GAAkB,QAE3B,MAAwB,EAAM,GAC5B,MAAO,GAAkB,SAG3B,KAAuB,GACrB,MAAO,GAAkB,QAE3B,KAAuB,GACrB,MAAO,GAAkB,QAE3B,KAAuB,GACrB,MAAO,GAAkB,QAG3B,MAAwB,GACtB,MAAO,GAAkB,SAE3B,MAAwB,GACtB,MAAO,GAAkB,SAE3B,MAAwB,GACtB,MAAO,GAAkB,SAG3B,IAAsB,GACpB,MAAO,GAAkB,OAG3B,KAAuB,EAAM,GAC3B,MAAO,GAAkB,QAG3B,YACI,CAAC,QAAO,SAAQ,WAAU,OAAM,aAAY,2BAE9C,MAAO,GAAkB,eAG3B,OAAO,EAAa,EAAkB,GACpC,MAAO,GAAkB,UAE3B,eAAe,EAAc,EAAkB,GAE7C,MAAO,GAAkB,kBAE3B,gBAAgB,EAAa,EAAc,GACzC,MAAO,GAAkB,mBAG3B,qBACI,CAAC,QAAO,SAAQ,WAAU,OAAM,aAAY,2BAE9C,MAAO,GAAkB,wBAG3B,gBAAgB,EAAiB,EAAkB,GAEjD,MAAO,GAAkB,mBAE3B,wBAAwB,EAAc,EAAkB,GAEtD,MAAO,GAAkB,2BAE3B,yBAAyB,EAAa,EAAc,GAElD,MAAO,GAAkB,4BAE3B,OAAO,EAAa,EAAkB,GACpC,MAAO,GAAkB,UAE3B,eAAe,EAAc,EAAkB,GAE7C,MAAO,GAAkB,kBAE3B,gBAAgB,EAAa,EAAc,GACzC,MAAO,GAAkB,mBAE3B,QAAQ,EAAa,GACnB,MAAO,GAAkB,WAE3B,gBAAgB,EAAc,EAAa,EAAa,GAEtD,MAAO,GAAkB,mBAE3B,QAAQ,EAAa,GACnB,MAAO,GAAkB,WAE3B,gBAAgB,EAAc,EAAa,GACzC,MAAO,GAAkB,mBAE3B,UAAU,EAAa,GACrB,MAAO,GAAkB,aAE3B,kBAAkB,EAAc,EAAa,GAC3C,MAAO,GAAkB,qBAE3B,UAAU,EAAa,GACrB,MAAO,GAAkB,aAE3B,kBACI,EAAc,EAAa,EAAa,GAC1C,MAAO,GAAkB,qBAG3B,QAA0C,EAAM,GAE9C,MAAO,GAAkB,WAE3B,KAAuB,EAAM,GAC3B,MAAO,GAAkB,QAG3B,KAAuB,EAAM,GAC3B,MAAO,GAAkB,QAG3B,IACI,EAAM,EAAmC,GAC3C,MAAO,GAAkB,OAG3B,UAA4B,EAAM,GAChC,MAAO,GAAkB,aAG3B,OAAyB,EAAM,EAAmB,GAChD,MAAO,GAAkB,UAG3B,SAAS,EAAW,GAClB,MAAO,GAAkB,YAG3B,UACI,EAAiB,EAAiB,GACpC,MAAO,GAAkB,aAG3B,eACI,EAAM,EAAsB,GAC9B,MAAO,GAAkB,kBAG3B,eACI,EAAM,EAAsB,GAC9B,MAAO,GAAkB,kBAG3B,eACI,EAAa,EAAmB,EAChC,GACF,MAAO,GAAkB,kBAG3B,uBAAuB,EAAc,EAAa,GAEhD,MAAO,GAAkB,0BAG3B,sBACI,EAAa,EAAmB,EAChC,GACF,MAAO,GAAkB,yBAG3B,8BACI,EAAc,EAAa,GAC7B,MAAO,GAAkB,iCAG3B,UACI,EAAa,EAAyB,EACtC,EAA4B,EAC5B,GACF,MAAO,GAAkB,aAG3B,6BACI,EAAa,EAAgB,EAAc,EAC3C,GACF,MAAO,GAAkB,gCAG3B,QACI,EAAc,EAAsB,EAAuB,EAC3D,EAAc,EAAe,GAC/B,MAAO,GAAkB,WAG3B,YACI,EAAkB,EAAqB,EACvC,GACF,MAAO,GAAkB,eAG3B,OAAO,EAAmB,EAAe,EAAiB,GAExD,MAAO,GAAkB,UAG3B,OAAO,EAAW,EAAc,EAAoB,GAElD,MAAO,GAAkB,UAG3B,kBACI,EAAiB,EAAkB,EACnC,EAAsB,GACxB,MAAO,GAAkB,qBAG3B,IAAI,GACF,MAAO,GAAkB,OAE3B,KAAK,GACH,MAAO,GAAkB,QAE3B,QAA0B,EAAS,GACjC,MAAO,GAAkB,WAE3B,KAAuB,GACrB,MAAO,GAAkB,QAE3B,KAAuB,GACrB,MAAO,GAAkB,QAG3B,cACI,EAAiB,EAAiB,EAClC,EAA4B,EAC5B,GACF,MAAO,GAAkB,iBAG3B,aAAa,EAAa,EAAmB,GAC3C,MAAO,GAAkB,gBAI3B,MAAwB,EAAU,EAAsB,GACtD,MAAO,GAAkB,SAG3B,cACI,EAAuB,EAAsB,EAC7C,GACF,MAAO,GAAkB,iBAG3B,KAAK,GACH,MAAO,GAAkB,QAG3B,KACI,EAAoB,EAAsB,GAC5C,MAAO,GAAkB,QAG3B,SAAyB,GACvB,MAAO,GAAkB,YAG3B,UAA0B,GACxB,MAAO,GAAkB,aAG3B,SAAS,EAAe,EAAc,GACpC,MAAO,GAAkB,YAG3B,UACE,MAAO,GAAkB,YAI7B,WAA2B,GACzB,KAAM,IAAI,OACN,IAAI,6FCzpBV,AAwBO,KAAM,IAA4B,CACvC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,KACrB,KAAM,CAAC,GAAK,EACZ,MAAO,CAAC,EAAG,IAAM,EAAI,EAAI,GAAK,EAAK,EAAG,WAAY,QC7BtD,AA4BO,KAAM,IAA6B,CACxC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,KACrB,KAAM,CAAC,GAAK,EAEZ,MAAO,CACL,EAAG,KACD,KAAM,GAAI,EAAO,EAAK,EAAG,YACnB,EAAI,GAAK,EAAI,EAAO,GAAI,IAC9B,MAAO,IAAI,EAAI,EAAI,QCtC3B,AA0BO,KAAM,IAA8B,CACzC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,KACrB,KAAM,CAAC,GAAK,EAEZ,MAAO,CACL,EAAG,KACD,KAAM,GAAI,GAAK,EAAI,EAAO,EAAK,EAAG,YAAa,IAC/C,MAAO,GAAI,EAAI,OCnCvB,AAuBO,KAAM,IAA4B,CACvC,WAAY,GACZ,aAAc,CAAC,IAAK,KACpB,SAAU,CAAC,EAAY,KACrB,KAAM,CAAC,EAAG,GAAK,EACT,EACF,AAAe,EAA2B,EAAE,MAAO,EAAE,OAEnD,EAAO,KACX,GAAI,GAAM,EACV,KAAM,GAAa,AAAe,GAAiB,EAAE,MAAO,GAC5D,MAAI,GAAW,OAAS,GACtB,GAAM,EAAI,EAAK,IAEV,EAAQ,EAAK,EAAE,QAElB,EAAO,KACX,GAAI,GAAM,EACV,KAAM,GAAa,AAAe,GAAiB,EAAE,MAAO,GAC5D,MAAI,GAAW,OAAS,GACtB,GAAM,EAAI,EAAK,IAEV,EAAQ,EAAK,EAAE,QAGxB,MAAO,CAAC,EAAG,EAAM,EAAG,KChDxB,AAqBO,KAAM,IAA6B,CACxC,WAAY,GACZ,cAAe,GACf,SAAU,CAAC,EAAY,KACrB,KAAM,GAAsC,GAC5C,SAAM,QAAQ,CAAC,EAAG,KAChB,EAAK,GAAK,IAAM,EAAG,UAEd,IC7BX,AAsBO,KAAM,IAA+B,CAC1C,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,KACrB,KAAM,CAAC,GAAK,EACZ,MAAO,CAAC,EAAG,IAAM,EAAU,MC3B/B,AAsBO,KAAM,IAA+B,CAC1C,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,KACrB,KAAM,CAAC,GAAK,EACZ,MAAO,CAAC,EAAG,IAAM,EAAU,MC3B/B,AA2BO,KAAM,IAA6B,CACxC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,KACrB,KAAM,CAAC,GAAK,EACZ,MAAO,CAAC,EAAG,IAAM,EAAI,EAAI,GAAK,EAAI,EAAO,GAAI,EAAO,EAAK,EAAG,kBChChE,AA2BO,KAAM,IAA8B,CACzC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,KACrB,KAAM,CAAC,GAAK,EAEZ,MAAO,CACL,EAAG,KACD,KAAM,GAAI,GAAK,EAAI,EAAO,GAAI,EAAO,EAAK,EAAG,cAC7C,MAAO,GAAI,EAAI,OCpCvB,AA6BO,KAAM,IAA8B,CACzC,WAAY,GACZ,aAAc,CAAC,IAAK,KACpB,SAAU,CAAC,EAAY,KACrB,KAAM,CAAC,EAAG,GAAK,EACT,EAAW,EAA2B,EAAE,MAAO,EAAE,OAEjD,EAAO,KACX,KAAM,GAAI,EAAI,EAAO,GAAI,EAAO,IAChC,GAAI,GAAM,EAAI,EAAI,EAAI,EAAG,IACzB,KAAM,GAAa,GAAiB,EAAE,MAAO,GAC7C,MAAI,GAAW,OAAS,GACtB,GAAM,EAAI,EAAK,IAEV,EAAQ,EAAK,EAAE,QAElB,EAAO,KACX,KAAM,GAAI,EAAI,EAAO,GAAI,EAAO,IAChC,GAAI,GAAM,GAAI,EAAI,EAAI,EAAI,EAAG,KAC7B,KAAM,GAAa,GAAiB,EAAE,MAAO,GAC7C,MAAI,GAAW,OAAS,GACtB,GAAM,EAAI,EAAK,IAEV,EAAQ,EAAK,EAAE,QAExB,MAAO,CAAC,EAAG,EAAM,EAAG,KCtDxB,AAyBO,KAAM,IAA6B,CACxC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,KACrB,KAAM,CAAC,GAAK,EAEZ,MAAO,CAAC,EAAG,IAAM,EAAI,EAAI,EAAI,EAAO,EAAK,EAAG,YAAa,OC/B7D,AA0BO,KAAM,IAA8B,CACzC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,KACrB,KAAM,CAAC,GAAK,EAEZ,MAAO,CAAC,EAAG,IAAM,EAAI,EAAI,EAAI,EAAO,GAAI,EAAO,EAAK,EAAG,iBC/B3D,AA2DA,YACI,EAAkB,EAClB,EACA,EACA,EAA6C,CAAC,EAAG,EAAG,GACpD,EAA4B,GAC9B,KAAM,GAAM,EAAgB,EAAI,KAAM,qBAChC,EAAS,EAAgB,EAAO,QAAS,qBAE/C,GAAI,GAAO,EACP,EAAU,EACV,EAAe,GAEnB,AAAI,EAAO,OAAS,GAClB,GAAe,GACf,EAAO,EACH,EAAK,CAAC,EAAG,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,KACjE,EAAU,EAAQ,EAAQ,CACxB,EAAG,EAAO,MAAM,GAAI,EAAO,MAAM,GAAI,EAAO,MAAM,GAAI,EAAO,MAAM,MAIvE,AAAK,EACD,EAAK,OAAS,EACd,IAAM,8DACC,EAAK,SAChB,AAAK,EACD,EAAQ,OAAS,EACjB,IAAM,iEACC,EAAQ,SAEnB,AAAK,EACD,AAAU,GAA+B,EAAS,GAClD,IAAM,kFACwB,oBAA0B,MAE5D,AAAI,GAAmB,MACrB,AAAK,EACD,AAAK,EAAM,GACX,IAAM,kFACwB,iBAA+B,MAGnE,KAAM,GAA+B,IACnC,KAAM,GAAW,AAAU,GACvB,EAAQ,MAAO,EAAY,EAAS,EAAW,EAAK,GAExD,MAAO,GAAQ,kBAAkB,EAAM,EAAS,IAG5C,EAAkC,CAAC,GAAI,EAAM,MAAO,GAEpD,EACF,CAAC,aAAY,UAAS,YAAW,MAAK,mBAEpC,EAAM,EAAO,cACf,EAAS,EAAgC,KACzC,GAAmB,GAEvB,MAAI,GACK,EACI,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,KAIhE,EAGF,KAAM,IAAoB,EAAG,CAAC,wBChIrC,AAsBO,KAAM,IAAkC,CAC7C,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,EAAiB,KACtC,KAAM,CAAC,GAAK,EACN,CAAC,aAAY,UAAS,YAAW,MAAK,mBACxC,EAEE,EACF,GAAa,KAAO,CAAC,EAAG,EAAG,GAAiC,EAEhE,MAAO,CACL,EAAG,IAAM,GACL,EAAgB,EAAG,EAAY,EAAS,EAAY,EACpD,MCpCV,AA8CA,YACI,EAAkB,EAAqB,EACvC,EAAkC,GACpC,KAAM,GAAM,EAAgB,EAAI,KAAM,mBAChC,EAAS,EAAgB,EAAO,QAAS,mBAE/C,AAAK,EACD,EAAO,OAAS,EAAI,KACpB,IAAM,kBAAkB,EAAO,oCAC3B,EAAI,SAEZ,GAAI,GAAU,EACV,EAAO,EACP,EAAe,GAEnB,AAAI,EAAO,OAAS,GAClB,GAAe,GACf,EACI,EAAQ,EAAQ,CAAC,EAAG,EAAO,MAAM,GAAI,EAAO,MAAM,GAAI,EAAO,MAAM,KACvE,EAAO,EAAQ,EAAK,CAAC,EAAG,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,MAGhE,AAAK,EACD,EAAK,OAAS,EACd,IAAM,4DACC,EAAK,SAChB,AAAK,EACD,EAAQ,OAAS,EACjB,IAAM,+DACC,EAAQ,SAEnB,KAAM,GAA+B,IACnC,KAAM,GAAW,AAAU,GACvB,EAAQ,MAAO,EAAY,EAAS,EAAmB,GAE3D,MAAO,GAAQ,gBAAgB,EAAM,EAAS,IAG1C,EAAgC,CAAC,GAAI,EAAM,MAAO,GAElD,EAA8B,CAAC,aAAY,UAAS,OAEpD,EAAM,EAAO,cACf,EAAS,EAAgC,KAAM,GAC/C,GAEJ,MAAI,GACK,EAAQ,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,KAEtD,EAGF,KAAM,IAAkB,EAAG,CAAC,sBClGnC,AAsBO,KAAM,IAAgC,CAC3C,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,EAAiB,KACtC,KAAM,CAAC,GAAK,EACN,CAAC,aAAY,UAAS,OAAO,EACnC,MAAO,CACL,EAAG,IAAM,GAAgB,EAAgB,EAAG,EAAY,EAAS,MC7BvE,AAsBO,KAAM,IAAoC,CAC/C,WAAY,GACZ,aAAc,CAAC,IAAK,KACpB,SAAU,CAAC,EAAc,EAAiB,KACxC,KAAM,CAAC,EAAG,GAAK,EAET,CAAC,aAAY,cAAc,EAEjC,MAAI,CAAC,GAAc,CAAC,EACX,CACL,EAAG,IAAM,EAAO,EAAI,EAAG,GAAO,IAC9B,EAAG,IAAM,EAAO,EAAG,EAAI,GAAM,KAEtB,CAAC,GAAc,EACjB,CACL,EAAG,IAAM,EAAO,EAAI,EAAG,GAAO,IAC9B,EAAG,IAAM,EAAO,EAAI,EAAG,GAAM,KAEtB,GAAc,CAAC,EACjB,CACL,EAAG,IAAM,EAAO,EAAG,EAAI,GAAO,IAC9B,EAAG,IAAM,EAAO,EAAG,EAAI,GAAO,KAGzB,CACL,EAAG,IAAM,EAAO,EAAG,EAAI,GAAM,IAC7B,EAAG,IAAM,EAAO,EAAI,EAAG,GAAM,OChDrC,AAsBO,KAAM,IAAuC,CAClD,WAAY,GACZ,SAAU,CAAC,EAAY,EAAiB,KACtC,KAAM,CAAC,aAAY,SAAS,EAC5B,MAAO,CAAC,EAAG,IAAM,GAAe,EAAI,EAAY,MC1BpD,AAsBO,KAAM,IAAoC,CAC/C,WAAY,GACZ,SAAU,CAAC,EAAY,EAAiB,KACtC,KAAM,GACF,EAEE,EAAa,EAAiB,WAC9B,EAAc,EAAiB,MAE/B,EAAiB,MAAM,KAAK,GAClC,OAAS,GAAI,EAAW,OAAS,EAAG,GAAK,EAAG,IAC1C,GAAI,EAAW,KAAO,EAAY,GAChC,EAAK,GAAK,UACD,EAAW,KAAO,EAC3B,KAAM,IAAI,OAAM,mBACZ,8BAAuC,OAG/C,KAAM,GAAiB,GACvB,OAAS,GAAI,EAAG,EAAI,EAAK,OAAQ,IAC/B,AAAI,EAAK,GAAK,GACZ,EAAK,KAAK,GAId,MAAO,CAAC,EAAG,IAAM,EAAI,EAAI,EAAM,OC/CnC,AAqBO,KAAM,IAA6B,CACxC,WAAY,GACZ,SAAU,AAAC,GACF,EAAC,EAAG,IAAM,EAAG,WCxBxB,AAsBO,KAAM,IAA6B,CACxC,WAAY,GACZ,SAAU,AAAC,GAEF,EAAC,EAAG,IAAM,EAAU,MC1B/B,AA0BO,KAAM,IAAoC,CAC/C,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,EAAiB,KACtC,KAAM,CAAC,GAAK,EACN,CAAC,eAAc,gBAAgB,EACrC,MAAO,CACL,EAAG,IAAM,GACL,GAAW,GAAa,EAAG,GAAe,GAAU,EAAG,IACvD,EAAI,EAAU,OCnCxB,AAsBO,KAAM,IAA+B,CAC1C,WAAY,GACZ,cAAe,GACf,SAAU,CAAC,EAAY,EAAiB,KACtC,KAAM,GAAS,EAAM,IAAI,GAAK,EAAE,OAC1B,CAAC,QAAQ,EACT,EAAQ,EAAe,EAAM,EAAM,GAAG,OAAO,GAC7C,EAAa,EAAO,IAAI,GAAK,EAAE,IAC/B,EAAa,GAAM,EAAI,EAAY,GACzC,MAAO,GAAW,IAAI,GAAK,IAAM,KC/BrC,AAwBO,KAAM,IAA+B,CAC1C,WAAY,GACZ,aAAc,CAAC,IAAK,UACpB,SAAU,CAAC,EAAc,EAAiB,KACxC,KAAM,CAAC,EAAK,GAAW,EACjB,CAAC,YAAW,UAAS,MAAK,cAAc,EAE9C,MAAK,GACD,AAAU,GAAkB,GAC5B,IAAM,iHACoD,MAEvD,CACL,EAAG,IACC,GAAoB,EAAI,MAAO,EAAI,EAAS,EAAS,EAAK,GAC9D,OAAQ,IACJ,GAAqB,EAAK,EAAI,EAAQ,MAAO,EAAS,EAAK,MCxCrE,AAsBO,KAAM,IAA4C,CACvD,WAAY,GACZ,aAAc,CAAC,KAAM,UACrB,SAAU,CAAC,EAAe,EAAiB,KACzC,KAAM,CAAC,EAAI,GAAU,EAEf,CAAC,UAAS,MAAK,aAAY,mBAC7B,EAEJ,MAAO,CACL,GAAI,IAAM,GACN,EAAK,EAAQ,EAAS,EAAK,EAAY,EACvC,GACJ,OAAQ,IAAM,GACV,EAAK,EAAI,EAAO,MAAO,EAAS,EAAK,EAAY,MCpC3D,AA2CA,YACI,EAAM,EAAO,EACb,EAA0C,GAC5C,GAAI,GAAM,EACV,AAAI,EAAE,OAAS,GACb,GAAM,EAAQ,EAAG,CAAC,EAAG,EAAE,MAAM,GAAI,EAAE,MAAM,GAAI,EAAE,MAAM,GAAI,EAAE,MAAM,MAEnE,GAAI,GAAO,EACX,AAAI,EAAK,OAAS,GAChB,GAAO,EAAQ,EAAI,CAAC,EAAG,EAAG,MAAM,GAAI,EAAG,MAAM,GAAI,EAAG,MAAM,GAAI,EAAG,MAAM,MAEzE,AAAK,EACD,EAAI,OAAS,EACb,IAAM,iEACC,EAAI,UACf,AAAK,EACD,EAAK,OAAS,EACd,IAAM,8DACC,EAAK,UAChB,AAAK,EACD,EAAY,SAAW,EACvB,IAAM,mEACC,MACX,AAAK,EACD,EAAI,MAAM,KAAO,EAAY,GAC7B,IAAM,4CAA4C,EAAI,MAAM,yCACxB,EAAY,OACpD,AAAK,EACD,EAAK,MAAM,KAAO,EAAY,GAC9B,IAAM,0CAA0C,EAAK,MAAM,2CACrB,EAAY,QAEtD,KAAM,GAA+B,IACnC,KAAM,GAAY,EAEZ,EAAW,AAAU,GACvB,EAAI,MAAO,EAAa,EAAS,EAAW,GAEhD,MAAO,GAAQ,gBAAgB,EAAK,EAAM,IAGtC,EAAqC,CAAC,EAAG,EAAK,EAAG,GAEjD,EAAmC,CAAC,UAAS,OAEnD,MAAO,GAAO,cACH,EAAS,EAAgC,KACzC,GAAwB,GAG9B,KAAM,IAAuB,EAAG,CAAC,2BC7FxC,AAwBO,KAAM,IAA+B,CAC1C,WAAY,GACZ,aAAc,CAAC,IAAK,UACpB,SAAU,CAAC,EAAc,EAAiB,KACxC,KAAM,CAAC,YAAW,UAAS,OAAO,EAClC,AAAK,EACD,GAAkB,GAClB,IACI,iHACkD,MAE1D,KAAM,CAAC,EAAK,GAAW,EAEvB,MAAO,CACL,EAAG,IAAM,GACJ,EAAiB,MAAO,EAAI,EAAqB,EAAS,GAC/D,OAAQ,IAAM,GACV,EAAiB,EAAK,EAAqB,MAAO,EAAS,MCzCrE,AAyBO,KAAM,IAA4B,CACvC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,KACrB,KAAM,CAAC,GAAK,EAEZ,MAAO,CAAC,EAAG,IAAM,EAAI,GAAI,GAAI,EAAK,EAAG,aAAc,MC/BvD,AAwBO,KAAM,IAA6B,CACxC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,KACrB,KAAM,CAAC,GAAK,EAEZ,MAAO,CAAC,EAAG,IAAM,EAAI,GAAK,EAAK,EAAG,YAAa,MC9BnD,AAwBO,KAAM,IAA+B,CAC1C,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,EAAiB,KACtC,KAAM,CAAC,GAAK,EACN,CAAC,OAAM,YAAW,WAAwB,EAEhD,MAAO,CACL,EAAG,KACD,KAAM,GAAc,GAAmB,CAAC,GAAO,EAAE,MAEjD,GAAI,GAAM,GAAO,EAAI,EAAM,EAAW,CAAC,GAEvC,MAAI,IAAe,MACjB,GAAM,EAAU,EAAK,IAGhB,MCzCf,AAwBO,KAAM,IAA8C,CACzD,WAAY,GACZ,aAAc,CAAC,IAAK,UACpB,SAAU,CAAC,EAAc,EAAiB,KACxC,KAAM,CAAC,YAAW,UAAS,MAAK,mBAC5B,EAEE,EAAa,GAAa,KAAO,CAAC,EAAG,GAAK,EAEhD,AAAK,EACD,AAAU,GAAkB,GAC5B,IAAM,mHAEE,MAEZ,KAAM,CAAC,EAAG,GAAU,EAEpB,AAAK,EACD,EAAE,OAAS,EACX,IAAM,kFACsB,EAAE,SAClC,AAAK,EACD,EAAO,OAAS,EAChB,IAAM,mFACsB,EAAO,SACvC,AAAK,EACD,EAAE,MAAM,KAAO,EAAO,MAAM,GAC5B,IAAM,mEACW,EAAE,MAAM,qDACR,EAAO,MAAM,OAElC,AAAK,EACD,AAAU,GAA+B,EAAS,GAClD,IAAM,6FACmC,oBACjC,OAEZ,AAAI,GAAmB,MACrB,AAAK,EACD,AAAK,EAAM,GACX,IACI,gFACmB,iBAA+B,MAG5D,KAAM,GAAW,AAAU,GACvB,EAAE,MAAO,EAAO,MAAO,EAAS,EAChC,EAAK,EAAiB,IAE1B,MAAO,CACL,EAAG,IACC,GAAmC,EAAE,MAAO,EAAI,EAAQ,GAC5D,OAAQ,IACJ,GAAoC,EAAG,EAAI,EAAO,MAAO,MC7EnE,AAuBO,KAAM,IAAmC,CAC9C,WAAY,GACZ,aAAc,CAAC,IAAK,UACpB,SAAU,CAAC,EAAc,EAAiB,KACxC,KAAM,CAAC,EAAG,GAAU,EAEd,EAA6C,CAAC,IAAG,SAAQ,MACzD,EAA+C,CAAC,IAAG,SAAQ,MAEjE,MAAO,CACL,EAAG,IAAM,EAAO,UACH,GAAyB,EACzB,GACb,OAAQ,IAAM,EAAO,UACH,GACA,EAAsC,MCtC9D,AA6BO,KAAM,IAA4B,CACvC,WAAY,GACZ,aAAc,CAAC,IAAK,KACpB,SAAU,CAAC,EAAY,KACrB,KAAM,CAAC,EAAG,GAAK,EACT,EACF,AAAe,EAA2B,EAAE,MAAO,EAAE,OACnD,EAAO,KACX,KAAM,GAAM,EAAI,EAAI,EAAK,EAAG,YACtB,EAAa,AAAe,GAAiB,EAAE,MAAO,GAC5D,MAAI,GAAW,OAAS,EACf,EAAQ,EAAI,EAAK,GAAa,EAAE,OAElC,GAEH,EAAO,KACX,GAAI,GAAM,EAAI,EAAI,EAAK,EAAG,YAC1B,KAAM,GAAa,AAAe,GAAiB,EAAE,MAAO,GAC5D,AAAI,EAAW,OAAS,GACtB,GAAM,EAAQ,EAAI,EAAK,GAAa,EAAE,QAExC,KAAM,GAAM,EAAO,GACnB,MAAO,IAAI,EAAI,EAAK,EAAK,EAAK,cAEhC,MAAO,CAAC,EAAG,EAAM,EAAG,KCrDxB,AAsBO,KAAM,IAA4B,CACvC,WAAY,GACZ,cAAe,CAAC,IAChB,SAAU,CAAC,EAAY,KACrB,KAAM,CAAC,GAAK,EAEN,EAA0C,AAAC,GACxC,EAAQ,OAAO,EAAI,GAGtB,EAAwB,CAAC,KAAI,KAEnC,MAAO,CACL,EAAG,IAAM,EAAO,cACZ,EAAoB,EAAgC,KACpD,OCrCV,AAyBO,KAAM,IAA4B,CACvC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,KACrB,KAAM,CAAC,GAAK,EACN,EAAI,EAAI,GAAI,GAAI,EAAO,KAAM,EAAI,KAAK,KAAK,KAAK,KACtD,MAAO,CAAC,EAAG,IAAM,EAAI,EAAI,MC/B7B,AAsBO,KAAM,IAA4B,CACvC,WAAY,GACZ,cAAe,CAAC,IAChB,SAAU,CAAC,EAAY,KACrB,KAAM,CAAC,GAAK,EACZ,MAAO,CAAC,EAAG,IAAM,EAAI,EAAI,MC3B7B,AAuBO,KAAM,IAA8B,CACzC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,KACrB,KAAM,CAAC,GAAK,EACZ,MAAO,CAAC,EAAG,IAAM,EAAI,EAAI,GAAI,OC5BjC,AAsBO,KAAM,IAA8B,CACzC,WAAY,GACZ,SAAU,AAAC,GACF,EAAC,EAAG,IAAM,EAAU,MCzB/B,AA6BO,KAAM,IAAiC,CAC5C,WAAY,GACZ,aAAc,CAAC,IAAK,KACpB,SAAU,CAAC,EAAY,KACrB,KAAM,CAAC,EAAG,GAAK,EACT,EAAW,EAA2B,EAAE,MAAO,EAAE,OAEjD,EAAO,KACX,KAAM,GAAM,EAAI,EAAI,EAAK,EAAG,YACtB,EAAa,GAAiB,EAAE,MAAO,GAC7C,MAAI,GAAW,OAAS,EACf,EAAQ,EAAI,EAAK,GAAa,EAAE,OAElC,GAEH,EAAO,KACX,GAAI,GAAM,EAAI,EAAI,EAAK,EAAG,YAC1B,KAAM,GAAa,GAAiB,EAAE,MAAO,GAC7C,AAAI,EAAW,OAAS,GACtB,GAAM,EAAQ,EAAI,EAAK,GAAa,EAAE,QAExC,KAAM,GAAM,EAAO,GACnB,MAAO,IAAI,EAAI,EAAK,EAAK,EAAK,cAEhC,MAAO,CAAC,EAAG,EAAM,EAAG,KCrDxB,AA8BO,KAAM,IAAuC,CAClD,WAAY,GACZ,aAAc,CAAC,IAAK,OAAQ,WAAY,SACxC,SAAU,CACN,EAAY,EAAiB,KAC/B,KAAM,CAAC,mBAAmB,EACpB,CAAC,EAAG,EAAM,EAAU,GAAS,EAE7B,EAAa,GAAS,KAAO,EAAO,GAAK,EACzC,EAAgB,GAAiB,EAAK,MAAO,EAAE,OAC/C,EAAsB,GAC5B,GAAI,EAAK,OAAS,GAChB,OAAS,GAAI,EAAG,EAAI,EAAE,MAAM,OAAS,EAAG,EAAE,EACxC,EAAU,KAAK,EAAE,MAAM,IAEzB,EAAU,KAAK,GAGjB,KAAM,GAAa,EAAI,EAAG,GACpB,EAAoB,EAAI,EAAI,GAC5B,EAAsB,GAAM,EAAI,EAAU,EAAO,KACjD,EAAiB,EACnB,EAAI,EAAI,EAAqB,GAAsB,GACnD,EAAO,MAEL,EAAO,IACP,EAAK,OAAS,EACT,EACH,EAAI,EAAI,EACA,GACI,EAAQ,EAAqB,CAAC,EAAG,EAAG,EAAG,EAAK,MAAM,KAClD,IACR,GACJ,EAAE,OAEC,EAAQ,EAAI,EAAI,EAAI,GAAsB,GAAa,EAAE,OAG9D,EAAU,KACd,GAAI,GACA,EAAI,EAAI,EAAqB,EAAO,KAAM,GAC9C,MAAI,GAAK,OAAS,GAChB,GAAU,EAAI,EAAS,IAElB,EAAQ,EAAS,EAAK,QAEzB,EAAc,KAClB,GAAI,GAAc,EAAI,EAAI,EAAgB,GAAa,GAEvD,MAAI,GAAK,OAAS,GAChB,GAAc,EAAI,EAAa,IAE1B,EAAQ,EAAa,EAAK,QAE7B,EAAW,KACf,KAAM,GAAwB,EAAI,EAAY,GAE9C,GAAI,GAAW,EAAI,EAAI,GACvB,MAAI,GAAK,OAAS,GAChB,GAAW,EAAI,EAAU,IAEpB,EAAQ,EAAU,EAAK,QAE1B,EAAY,KAChB,GAAI,GAAY,EAChB,MAAI,GAAK,OAAS,GAChB,GAAY,EAAI,EAAW,IAEtB,EAAQ,EAAW,EAAK,QAGjC,MAAO,CACL,EAAG,EACH,KAAM,EACN,SAAU,EACV,MAAO,EACP,OAAQ,KC1Gd,AA0BO,KAAM,IAA+B,CAC1C,WAAY,GACZ,aAAc,CAAC,IAAK,WACpB,SAAU,CAAC,EAAY,EAAiB,KACtC,KAAM,CAAC,EAAG,GAAW,EACf,CAAC,QAAQ,EAET,EAAa,EAAe,EAAM,EAAE,OAAO,GAE3C,EAAO,KACX,KAAM,GAAc,EAAE,MAChB,EAAc,EAAQ,KAEtB,EAAa,EAAY,MAAM,EAAG,GAClC,EAAY,EAAW,OACvB,EAAa,EAAY,MAAM,EAAM,EAAY,QAAQ,MAAM,GAC/D,EAAY,EAAW,OAEvB,EAAmB,GAAW,EAAG,GACjC,EACF,GAAW,EAAY,EAAG,EAAY,EAAI,GAExC,EAAc,GAAY,CAAC,EAAY,CAAC,GAAc,IAEtD,EAAS,EAAQ,EAAI,GACrB,EAAkB,EAAQ,EAAS,CAAC,IAEpC,EACF,GAAY,CAAC,CAAC,GAAY,EAAkB,IAC1C,EAAkB,EAAU,EAAQ,GAC1C,GAAI,GAAa,GACb,EAAiB,EAA6B,EAAE,MAAM,IAE1D,KAAM,GAAsB,GAAuB,GACnD,SAAa,EAAU,EAAY,GAE5B,GAET,MAAO,CAAC,EAAG,EAAM,QAAS,IAAM,KAIpC,YAAoB,EAAe,GACjC,KAAM,GAAS,GACf,OAAS,GAAI,EAAO,EAAI,EAAM,EAAE,EAC9B,EAAO,KAAK,GAEd,MAAO,GAGT,YAAqB,GACnB,KAAM,GAAS,GACf,OAAS,GAAI,EAAG,EAAI,EAAO,OAAQ,EAAE,EACnC,OAAS,GAAI,EAAG,EAAI,EAAO,GAAG,OAAQ,EAAE,EACtC,EAAO,KAAK,EAAO,GAAG,IAG1B,MAAO,GCnFT,AAqBO,KAAM,IAAqC,CAChD,WAAY,GACZ,aAAc,CAAC,IAAK,KACpB,SAAU,CAAC,EAAY,KACrB,KAAM,CAAC,EAAG,GAAK,EACf,MAAO,CAAC,EAAG,IAAM,EAAU,GAAI,EAAG,IAAM,EAAU,MC1BtD,AAsBO,KAAM,IAAiC,CAC5C,WAAY,GACZ,SAAU,AAAC,GACF,EAAC,EAAG,IAAM,EAAK,EAAI,cCzB9B,AAsBO,KAAM,IAAiC,CAC5C,WAAY,GACZ,SAAU,AAAC,GAGF,EAAC,EAAG,IAAM,EAAU,MC1B/B,AAsBO,KAAM,IAA8B,CACzC,WAAY,GACZ,SAAU,AAAC,GAGF,EAAC,EAAG,IAAM,EAAU,MC5B/B,AAsBO,KAAM,IAA8B,CACzC,WAAY,GACZ,SAAU,AAAC,GAGF,EAAC,EAAG,IAAM,EAAU,MC3B/B,AAuBO,KAAM,IAA8B,CACzC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,KACrB,KAAM,CAAC,GAAK,EACZ,MAAO,CAAC,EAAG,IAAM,EAAI,EAAI,EAAI,EAAG,OC5BpC,AAuBO,KAAM,IAA4B,CACvC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,KACrB,KAAM,CAAC,GAAK,EACZ,MAAO,CAAC,EAAG,IAAM,EAAI,EAAI,EAAK,EAAG,eC5BrC,AAyBO,KAAM,IAAmC,CAC9C,WAAY,GACZ,aAAc,GACd,cAAe,CAAC,IAChB,SAAU,CAAC,EAAY,EAAiB,KACtC,KAAM,CAAC,GAAS,EACV,CAAC,QAAQ,EACf,MAAO,CACL,OAAQ,KACN,KAAM,GAAW,GACX,EAAU,GAAI,GACpB,MAAO,GAAI,EAAI,EAAI,EAAI,EAAI,EAAM,GAAW,QCpCpD,AAyBA,YACI,EAAM,EAAM,EAAO,EAAc,EAAG,EAAO,EAAG,EAAQ,EAAG,EAAO,IAClE,KAAM,GAA+B,GACjC,EAAQ,QAAQ,EAAI,EAAG,EAAG,EAAa,EAAM,EAAO,GAElD,EAA4B,CAAC,IAAG,IAAG,MAEnC,EAA0B,CAAC,cAAa,OAAM,QAAO,QAE3D,MAAO,GAAO,cACH,EAAS,EAAgC,KACzC,GAAa,GAGnB,KAAM,IACT,EAAG,CAAC,yCCxCR,AAqBO,KAAM,IAA4B,CACvC,WAAY,GACZ,aAAc,CAAC,KACf,cAAe,CAAC,IAChB,SAAU,CAAC,EAAc,EAAiB,KACxC,KAAM,CAAC,EAAG,GAAK,EACT,CAAC,cAAa,OAAM,QAAO,QAAQ,EAEzC,MAAO,CACL,EAAG,IAAM,GACL,EAAG,EAAG,EAAI,EAAa,EAAM,EAAO,MC/B9C,AA4BM,YACF,EAAO,EAAM,EAAe,EAAoB,GAClD,MAAI,GAAE,KAAO,EAAM,MACjB,GAAI,EAAQ,EAAG,AAAU,GAAqB,EAAE,MAAO,KAEzD,AAAI,EAAG,KAAO,EAAM,MAClB,GAAK,EAAQ,EAAI,AAAU,GAAqB,EAAG,MAAO,KAErD,CACL,EAAG,KACD,KAAM,GAAK,EAAI,EAAI,EAAK,GAAM,EAAO,GAAI,EAAG,QAC5C,MAAO,IAAgB,KAAO,EAAK,EAAU,EAAI,KCvCvD,AA0BO,KAAM,IAA4B,CACvC,WAAY,GACZ,aAAc,CAAC,KACf,cAAe,CAAC,IAChB,SAAU,CAAC,EAAY,EAAiB,KACtC,KAAM,GAAqB,EACrB,CAAC,oBAAoB,EACrB,CAAC,EAAG,GAAK,EACT,EAAW,AAAK,EAAe,EAAkB,EAAE,OACnD,EAAe,AAAU,GAAmB,EAAU,EAAE,MACxD,EAAU,GAAiB,EAAI,EAAG,EAAG,EAAU,GACrD,MAAO,CACL,EAAG,KACD,GAAI,GAAM,EAAQ,IAClB,MAAI,IAAgB,MAClB,GAAM,EAAU,IAEX,MC3Cf,AAyBO,KAAM,IAAgC,CAC3C,WAAY,GACZ,aAAc,CAAC,IAAK,KACpB,SAAU,CAAC,EAAY,KACrB,KAAM,CAAC,EAAG,GAAK,EACT,EAAO,IAAM,EAAI,EAAI,EAAK,GAAa,EAAG,GAAI,YAC9C,EAAO,IAAM,EAAI,EAAI,EAAK,GAAK,EAAG,GAAI,YAC5C,MAAO,CAAC,EAAG,EAAM,EAAG,KChCxB,AA6DA,YACI,EAAkB,EAAqB,EACvC,EACA,EACA,EAA6C,CAAC,EAAG,EAAG,GACpD,EAA4B,GAC9B,KAAM,GAAM,EAAgB,EAAI,KAAM,qBAChC,EAAS,EAAgB,EAAO,QAAS,qBACzC,EAAU,EAAgB,EAAQ,SAAU,qBAElD,GAAI,GAAO,EACP,EAAU,EACV,EAAW,EACX,EAAe,GAEnB,AAAI,EAAO,OAAS,GAClB,GAAe,GACf,EAAO,EACH,EAAK,CAAC,EAAG,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,KACjE,EAAU,EAAQ,EAAQ,CACxB,EAAG,EAAO,MAAM,GAAI,EAAO,MAAM,GAAI,EAAO,MAAM,GAAI,EAAO,MAAM,KAErE,EAAW,EAAQ,EAAS,CAC1B,EAAG,EAAQ,MAAM,GAAI,EAAQ,MAAM,GAAI,EAAQ,MAAM,GAAI,EAAQ,MAAM,MAI3E,AAAK,EACD,EAAK,OAAS,EACd,IAAM,8DACC,EAAK,SAChB,AAAK,EACD,EAAQ,OAAS,EACjB,IAAM,iEACC,EAAQ,SACnB,AAAK,EACD,EAAS,OAAS,EAClB,IAAM,kEACC,EAAS,SAEpB,AAAK,EACD,AAAU,GAA+B,EAAS,GAClD,IAAM,kFACwB,oBAA0B,MAC5D,AAAI,GAAmB,MACrB,AAAK,EACD,AAAK,EAAM,GACX,IAAM,kFACwB,iBAA+B,MAGnE,KAAM,GAA+B,IACnC,KAAM,GAAW,AAAU,GACvB,EAAQ,MAAO,EAAY,EAAS,EAAW,EAAK,GAExD,MAAO,GAAQ,kBAAkB,EAAM,EAAS,EAAU,IAGtD,EACwB,CAAC,GAAI,EAAM,MAAO,EAAS,OAAQ,GAE3D,EACF,CAAC,aAAY,UAAS,YAAW,MAAK,mBAEpC,EAAM,EAAO,cACf,EAAS,EAAgC,KACzC,GAAmB,GAEvB,MAAI,GACK,EACI,EAAK,CAAC,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,GAAI,EAAI,MAAM,KAIhE,EAGF,KAAM,IAAoB,EAAG,CAAC,wBC1IrC,AAsBO,KAAM,IAAkC,CAC7C,WAAY,GACZ,aAAc,CAAC,KACf,cAAe,CAAC,IAChB,SAAU,CAAC,EAAY,EAAiB,KACtC,KAAM,CAAC,EAAG,GAAK,EACT,CAAC,aAAY,UAAS,YAAW,MAAK,mBACxC,EAEE,EACF,GAAa,KAAO,CAAC,EAAG,EAAG,GAAiC,EAEhE,MAAO,CACL,EAAG,IAAM,GACL,EAAgB,EAAG,EAAG,EAAY,EAAS,EAAY,EACvD,MCrCV,AAkDA,YACI,EAAyB,EACzB,EAA6B,EAC7B,EAAkC,EAClC,GACF,KAAM,GAAM,EAAgB,EAAI,KAAM,mBAChC,EAAS,EAAgB,EAAO,QAAS,mBACzC,EAAU,EAAgB,EAAQ,SAAU,mBAElD,AAAK,EACD,EAAO,OAAS,EAAI,KACpB,IAAM,kBAAkB,EAAO,oCACvB,EAAI,SAEhB,AAAK,EACD,EAAI,OAAS,EACb,IAAM,4DACC,EAAI,SACf,AAAK,EACD,EAAO,OAAS,EAChB,IAAM,+DACC,EAAO,SAClB,AAAI,GAAmB,MACrB,AAAK,EACD,AAAK,EAAM,GACX,IAAM,gFACiB,iBAA+B,MAG5D,KAAM,GAA+B,IACnC,KAAM,GAAW,AAAU,GACvB,EAAO,MAAO,EAAY,EAAS,EAAmB,EACtD,GAEJ,MAAO,GAAQ,gBAAgB,EAAK,EAAQ,EAAS,IAGjD,EACsB,CAAC,GAAI,EAAK,MAAO,EAAQ,OAAQ,GAEvD,EACqB,CAAC,aAAY,UAAS,MAAK,mBAEtD,MAAO,GAAO,cACH,EAAS,EAAgC,KAAM,GAC/C,GAGN,KAAM,IAAkB,EAAG,CAAC,sBClGnC,AAsBO,KAAM,IAAgC,CAC3C,WAAY,GACZ,aAAc,CAAC,KACf,cAAe,CAAC,IAChB,SAAU,CAAC,EAAY,EAAiB,KACtC,KAAM,CAAC,EAAG,GAAK,EACT,CAAC,aAAY,UAAS,OAAO,EAEnC,MAAO,CACL,EAAG,IAAM,GAAgB,EAAgB,EAAG,EAAG,EAAY,EAAS,MC/B1E,AA0BO,KAAM,IAA4B,CACvC,WAAY,GACZ,aAAc,CAAC,KACf,cAAe,CAAC,IAChB,SAAU,CAAC,EAAY,EAAiB,KACtC,KAAM,GAAqB,EACrB,CAAC,QAAQ,EACT,CAAC,EAAG,GAAK,EACT,EAAW,AAAK,EAAe,EAAM,EAAE,OACvC,EAAe,AAAU,GAAmB,EAAU,EAAE,MACxD,EAAU,GAAiB,EAAI,EAAG,EAAG,EAAU,GACrD,MAAO,CACL,EAAG,KACD,GAAI,GAAM,EAAQ,IAClB,MAAI,IAAgB,MAClB,GAAM,EAAU,IAEX,MC3Cf,AAyBO,KAAM,IAAgC,CAC3C,WAAY,GACZ,aAAc,CAAC,IAAK,KACpB,SAAU,CAAC,EAAY,KACrB,KAAM,CAAC,EAAG,GAAK,EACT,EAAO,IAAM,EAAI,EAAI,EAAK,GAAU,EAAG,GAAI,YAC3C,EAAO,IAAM,EAAI,EAAI,EAAK,GAAQ,EAAG,GAAI,YAC/C,MAAO,CAAC,EAAG,EAAM,EAAG,KChCxB,AA4BO,KAAM,IAA4B,CACvC,WAAY,GACZ,aAAc,CAAC,IAAK,KACpB,SAAU,CAAC,EAAY,KACrB,KAAM,CAAC,EAAG,GAAK,EACT,EAAW,EAA2B,EAAE,MAAO,EAAE,OAEjD,EAAO,KACX,KAAM,GAAa,GAAiB,EAAE,MAAO,GAC7C,MAAI,GAAW,OAAS,EACf,EAAQ,EAAI,EAAI,GAAa,EAAE,OAEjC,GAEH,EAAO,KACX,KAAM,GAAM,EAAI,EAAI,GAAI,GAAM,EAAI,EAAG,MAC/B,EAAa,GAAiB,EAAE,MAAO,GAC7C,MAAI,GAAW,OAAS,EACf,EAAQ,EAAI,EAAK,GAAa,EAAE,OAElC,GAET,MAAO,CAAC,EAAG,EAAM,EAAG,KClDxB,AA0BO,KAAM,IAAiC,CAC5C,WAAY,GACZ,aAAc,CAAC,IAAK,KACpB,SAAU,CAAC,EAAY,KACrB,KAAM,CAAC,EAAG,GAAK,EACT,EAAW,EAA2B,EAAE,MAAO,EAAE,OAEjD,EAAO,KACX,KAAM,GAAM,EAAI,EAAI,EAAK,EAAG,YACtB,EAAa,GAAiB,EAAE,MAAO,GAC7C,MAAI,GAAW,OAAS,EACf,EAAQ,EAAI,EAAK,GAAa,EAAE,OAElC,GAEH,EAAO,KACX,KAAM,GAAM,EAAI,EAAI,EAAK,EAAG,YACtB,EAAa,GAAiB,EAAE,MAAO,GAC7C,MAAI,GAAW,OAAS,EACf,EAAQ,EAAI,EAAK,GAAa,EAAE,OAElC,GAET,MAAO,CAAC,EAAG,EAAM,EAAG,KCjDxB,AAsBO,KAAM,IAA+B,CAC1C,WAAY,GACZ,SAAU,AAAC,GACF,EAAC,EAAG,IAAM,GAAI,MCzBzB,AAsBO,KAAM,IAA+B,CAC1C,WAAY,GACZ,aAAc,CAAC,WACf,SAAU,CAAC,EAAY,KACrB,KAAM,GAAU,EAAM,GACtB,MAAO,CAAC,QAAS,IAAM,GAAM,EAAQ,MAAO,cC3BhD,AAsBO,KAAM,IAAiC,CAC5C,WAAY,GACZ,SAAU,AAAC,GACF,EAAC,EAAG,IAAM,EAAU,MCzB/B,AAsBO,KAAM,IAA8B,CACzC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,EAAiB,KAGtC,KAAM,GAAI,EAAM,GACV,CAAC,YAAY,EACb,EAAQ,EAAS,IAAI,GAAK,EAAE,IAClC,MAAO,CAAC,EAAG,IAAM,EAAM,EAAI,EAAO,EAAE,UC/BxC,AAgCO,KAAM,IAA4B,CACvC,WAAY,GACZ,aAAc,CAAC,IAAK,KACpB,cAAe,CAAC,IAChB,SAAU,CAAC,EAAY,KACrB,KAAM,CAAC,EAAG,EAAG,GAAK,EACZ,EAAO,EACP,EAAM,EACN,EACF,AAAe,EAA2B,EAAK,MAAO,EAAI,OAExD,EAAU,KACd,KAAM,GAAW,EAAK,EAAK,WAC3B,GAAI,GAAM,EAAI,EAAI,EAAI,EAAU,GAAI,EAAM,EAAI,EAAU,EAAO,OAC/D,KAAM,GAAa,AAAe,GAAiB,EAAK,MAAO,GAC/D,MAAI,GAAW,OAAS,GACtB,GAAM,EAAI,EAAK,IAEV,EAAQ,EAAK,EAAK,QAErB,EAAS,KACb,KAAM,GAAY,GAAQ,EAAM,GAC1B,EAAU,GAAM,EAAW,GAAI,GAAO,EAAU,IACtD,GAAI,GAAM,EAAI,EAAI,EAAI,EAAG,IACzB,KAAM,GAAa,AAAe,GAAiB,EAAI,MAAO,GAC9D,MAAI,GAAW,OAAS,GACtB,GAAM,EAAI,EAAK,IAEV,EAAQ,EAAK,EAAI,QAE1B,MAAO,CAAC,EAAG,EAAS,EAAG,KC9D3B,AA2BO,KAAM,IAA8B,CACzC,WAAY,GACZ,aAAc,CAAC,IAAK,SACpB,SAAU,CAAC,EAAY,KACrB,KAAM,CAAC,EAAG,GAAS,EACb,EAAO,GAAQ,EAAG,GAExB,MAAO,CACL,EAAG,IAAM,GAAM,EAAM,EAAI,EAAI,EAAI,IACjC,MAAO,KACL,GAAI,GAAM,GAAM,EAAM,EAAU,GAAK,EAAI,EAAI,IAC7C,KAAM,GAAa,GAAiB,EAAM,MAAO,EAAG,OACpD,MAAI,GAAW,OAAS,GACtB,GAAM,EAAI,EAAK,IAEV,EAAQ,EAAK,EAAM,WC1ClC,AAwBO,KAAM,IAAmC,CAC9C,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,KACrB,KAAM,CAAC,GAAK,EACZ,MAAO,CAAC,EAAG,IAAM,EAAI,EAAI,GAAI,EAAO,QC7BxC,AAwBO,KAAM,IAA8B,CACzC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,KACrB,KAAM,CAAC,GAAK,EACN,EAAO,EAAI,GAAU,EAAG,GAAI,GAAK,IAEvC,MAAO,CAAC,EAAG,IAAM,EAAI,EAAI,EAAK,EAAM,eC/BxC,AAuBO,KAAM,IAA6B,CACxC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,KACrB,KAAM,CAAC,GAAK,EACZ,MAAO,CAAC,EAAG,IAAM,EAAI,EAAI,EAAK,GAAK,GAAI,eC5B3C,AAqBO,KAAM,IAAgC,CAC3C,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,KACrB,KAAM,CAAC,GAAK,EACZ,MAAO,CAAC,EAAG,IAAM,EAAQ,EAAI,EAAE,UC1BnC,AAuBO,KAAM,IAAuC,CAClD,WAAY,GACZ,aAAc,CAAC,UACf,SAAU,CAAC,EAAc,EAAiB,KACxC,KAAM,CAAC,GAAU,EAEX,EAA0C,AAAC,IAC/C,KAAM,CAAC,gBAAgB,EACvB,MAAO,GAAQ,uBACX,EAAI,EAAoB,IAGxB,EAAmC,CAAC,UACpC,EAAY,IAAM,EAAO,cAC3B,EAAoB,EAAgC,KACpD,GAAoB,GAExB,MAAO,CAAC,OAAQ,KCxCpB,AAuBO,KAAM,IAA8C,CACzD,WAAY,GACZ,aAAc,CAAC,UACf,SAAU,CAAC,EAAc,EAAiB,KACxC,KAAM,CAAC,GAAU,EAEX,EAA0C,AAAC,IAC/C,KAAM,CAAC,gBAAgB,EACvB,MAAO,GAAQ,8BACX,EAAI,EAAoB,IAGxB,EAA0C,CAAC,UAC3C,EAAY,IAAM,EAAO,cAC3B,EAAoB,EAAgC,KACpD,GAA2B,GAE/B,MAAO,CAAC,OAAQ,KCxCpB,AAsBO,KAAM,IAAgC,CAC3C,WAAY,GACZ,SAAU,CAAC,EAAY,EAAiB,KACtC,KAAM,CAAC,QAAQ,EACT,EAAO,EAAe,EAAM,EAAG,OACrC,MAAO,CAAC,EAAG,IAAM,GAAQ,EAAI,MC3BjC,AAsBO,KAAM,IAA8B,CACzC,WAAY,GACZ,SAAU,AAAC,GAGF,EAAC,EAAG,IAAM,EAAU,MC3B/B,AAyBO,KAAM,IAA8B,CACzC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,KACrB,KAAM,CAAC,GAAK,EACZ,MAAO,CAAC,EAAG,IAAM,GAAI,EAAI,EAAI,EAAI,GAAI,EAAG,KAAM,QC9BlD,AAyBO,KAAM,IAAqC,CAChD,WAAY,GACZ,aAAc,CAAC,aACf,SAAU,CAAC,EAAY,KACrB,KAAM,CAAC,GAAa,EACpB,MAAO,CAGL,UAAW,IAAM,EAAK,EAAU,GAAY,WAC5C,EAAG,IAAM,EAAI,EAAI,EAAK,EAAW,EAAG,QACpC,EAAG,IAAM,EAAI,EAAI,EAAK,GAAW,GAAY,EAAG,WCnCtD,AA2BO,KAAM,IAA6B,CACxC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,KACrB,KAAM,CAAC,GAAK,EACZ,MAAO,CACL,EAAG,KACD,KAAM,GAAO,GAAQ,EAAG,EAAO,IAEzB,EAAa,EAAO,IACpB,EAAQ,EAAO,IAEf,EAAqB,EAAI,EAAI,GAC7B,EACF,EAAI,EAAI,EAAI,GAAa,GAAI,EAAK,EAAG,aAEzC,MAAO,IAAM,EAAM,EAAoB,OC3C/C,AAwBO,KAAM,IAAgC,CAC3C,WAAY,GACZ,cAAe,CAAC,IAChB,SAAU,CAAC,EAAY,KACrB,KAAM,CAAC,GAAK,EAEZ,MAAO,CAAC,EAAG,IAAM,EAAI,EAAI,EAAI,EAAG,EAAI,EAAO,GAAI,QC9BnD,AAsBO,KAAM,IAA6B,CACxC,WAAY,GACZ,SAAU,AAAC,GACF,EAAC,EAAG,IAAM,EAAU,MCzB/B,AAwBO,KAAM,IAA4B,CACvC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,KACrB,KAAM,CAAC,GAAK,EACZ,MAAO,CAAC,EAAG,IAAM,EAAI,GAAI,EAAK,EAAG,YAAa,MC7BlD,AAwBO,KAAM,IAA6B,CACxC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,KACrB,KAAM,CAAC,GAAK,EAEZ,MAAO,CAAC,EAAG,IAAM,EAAI,GAAK,EAAK,EAAG,YAAa,MC9BnD,AAuBO,KAAM,IAA8B,CACzC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,EAAiB,KACtC,KAAM,CAAC,GAAK,EACN,CAAC,QAAO,QAAQ,EAEhB,EAAa,EAAE,MACf,CAAC,EAAQ,GAAS,GAAiB,EAAG,EAAO,GAQ7C,EAAoC,GAC1C,OAAS,GAAI,EAAG,EAAI,EAAG,KAAM,IAC3B,EAAS,KAAK,CAAC,EAAO,GAAI,EAAW,GAAK,EAAO,GAAK,EAAM,KAE9D,MAAO,CAAC,EAAG,IAAM,GAAI,EAAI,MC3C7B,AAwBO,KAAM,IAAgC,CAC3C,WAAY,GACZ,cAAe,CAAC,IAChB,SAAU,CAAC,EAAY,EAAiB,KACtC,KAAM,CAAC,GAAK,EACN,CAAC,OAAO,EACR,EAAW,GAEX,EAAW,EAAI,EAAI,GACzB,MAAO,CACL,OAAQ,IAAM,EAAI,EAAU,EAAI,EAAI,EAAU,CAAC,GAAM,GAAW,OClCtE,AAuBO,KAAM,IAAiC,CAC5C,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,KACrB,KAAM,CAAC,GAAK,EAEZ,MAAO,CAAC,EAAG,IAAM,EAAI,EAAI,GAAQ,OC7BrC,AAsBO,KAAM,IAAuC,CAClD,WAAY,GACZ,SAAU,CAAC,EAAY,EAAiB,KACtC,KAAM,CAAC,aAAY,YAAY,EAC/B,MAAO,CAAC,EAAG,IAAM,GAAe,EAAI,EAAY,MC1BpD,AAqBO,KAAM,IAA+B,CAC1C,WAAY,GACZ,SAAU,CAAC,EAAc,EAAiB,KACxC,KAAM,CAAC,QAAQ,EAEf,MAAO,CAAC,EAAG,IAAM,EAAO,EAAI,MC1BhC,AAyBO,KAAM,IAA6B,CACxC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,KACrB,KAAM,CAAC,GAAK,EAEZ,MAAO,CAAC,EAAG,IAAM,EAAI,EAAI,EAAI,GAAK,EAAK,EAAG,YAAa,OC/B3D,AAuBO,KAAM,IAA+B,CAC1C,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,KACrB,KAAM,CAAC,GAAK,EACZ,MAAO,CAAC,EAAG,IAAM,EAAI,EAAI,EAAI,EAAK,EAAG,WAAY,OC5BrD,AAwBO,KAAM,IAA0C,CACrD,WAAY,GACZ,aAAc,CAAC,IAAK,KACpB,SAAU,CAAC,EAAY,KACrB,KAAM,CAAC,EAAG,GAAK,EACT,EAAM,EAAO,GACb,EAAO,IAAM,EAAI,EAAI,EAAI,EAAK,EAAI,EAAG,KACrC,EAAO,IAAM,EAAI,EAAI,EAAI,EAAK,EAAI,EAAG,KAC3C,MAAO,CAAC,EAAG,EAAM,EAAG,KChCxB,AAsBO,KAAM,IAA6B,CACxC,WAAY,GACZ,SAAU,AAAC,GAGF,EAAC,EAAG,IAAM,EAAU,MC3B/B,AAwBO,KAAM,IAA4B,CACvC,WAAY,GACZ,aAAc,CAAC,IAAK,KACpB,SAAU,CAAC,EAAY,KACrB,KAAM,CAAC,EAAG,GAAK,EACT,EACF,AAAe,EAA2B,EAAE,MAAO,EAAE,OAEnD,EAAO,KACX,GAAI,GAAM,EACV,KAAM,GAAa,AAAe,GAAiB,EAAE,MAAO,GAC5D,MAAI,GAAW,OAAS,GACtB,GAAM,EAAI,EAAK,IAEV,EAAQ,EAAK,EAAE,QAElB,EAAO,KACX,GAAI,GAAM,EACV,KAAM,GAAa,AAAe,GAAiB,EAAE,MAAO,GAC5D,MAAI,GAAW,OAAS,GACtB,GAAM,EAAI,EAAK,IAEV,EAAQ,GAAI,GAAM,EAAE,QAG7B,MAAO,CAAC,EAAG,EAAM,EAAG,KCjDxB,AAyBO,KAAM,IAA4B,CACvC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,EAAiB,KACtC,KAAM,CAAC,GAAK,EACN,EAAkB,EAAE,MAAM,QAC1B,CAAC,QAAQ,EAET,EAAO,EAAe,EAAM,EAAE,OACpC,EAAK,QAAQ,IACX,EAAgB,GAAQ,IAE1B,KAAM,GAAa,EAAQ,EAAI,GACzB,EAAO,EAAI,EAAY,GAAK,EAAE,MAAO,YAE3C,MAAO,CAAC,EAAG,IAAM,KCxCrB,AAwBO,KAAM,IAA4B,CACvC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,KACrB,KAAM,CAAC,GAAK,EAEZ,MAAO,CAAC,EAAG,IAAM,EAAI,EAAI,EAAO,GAAI,QC9BxC,AAyBO,KAAM,IAA6B,CACxC,WAAY,GACZ,cAAe,CAAC,IAChB,SAAU,CAAC,EAAY,KACrB,KAAM,CAAC,GAAK,EAEZ,MAAO,CAAC,EAAG,IAAM,EAAI,EAAI,EAAO,GAAI,EAAO,IAAK,MC/BpD,AAwBO,KAAM,IAA6B,CACxC,WAAY,GACZ,aAAc,CAAC,KACf,SAAU,CAAC,EAAY,EAAiB,KACtC,KAAM,CAAC,GAAK,EACN,CAAC,QAAQ,EAET,EAAO,KACX,GAAI,GAAQ,EAAU,GAGtB,GAAI,EAAE,OAAS,EACb,OAAS,GAAI,EAAG,EAAI,EAAK,GAAI,EAAE,EAC7B,EAAQ,EAAI,EAAO,EAAM,EAAI,CAAC,EAAI,EAAE,MAAM,IAAK,CAAC,EAAE,MAAM,cAEjD,EAAE,OAAS,EACpB,OAAS,GAAI,EAAG,EAAI,EAAK,GAAI,EAAE,EAC7B,OAAS,GAAI,EAAG,EAAI,EAAK,GAAI,EAAE,EAC7B,EAAQ,EAAI,EAAO,EAAM,EAAI,CAAC,EAAI,EAAE,MAAM,GAAI,EAAI,EAAE,MAAM,IAAK,CACjD,EAAE,MAAM,GAAI,EAAE,MAAM,cAI7B,EAAE,OAAS,EACpB,OAAS,GAAI,EAAG,EAAI,EAAK,GAAI,EAAE,EAC7B,OAAS,GAAI,EAAG,EAAI,EAAK,GAAI,EAAE,EAC7B,OAAS,GAAI,EAAG,EAAI,EAAK,GAAI,EAAE,EAC7B,EACI,EAAI,EACA,EACI,EAAI,CAAC,EAAI,EAAE,MAAM,GAAI,EAAI,EAAE,MAAM,GAAI,EAAI,EAAE,MAAM,IACjD,CAAC,EAAE,MAAM,GAAI,EAAE,MAAM,GAAI,EAAE,MAAM,cAI1C,EAAE,OAAS,EACpB,OAAS,GAAI,EAAG,EAAI,EAAK,GAAI,EAAE,EAC7B,OAAS,GAAI,EAAG,EAAI,EAAK,GAAI,EAAE,EAC7B,OAAS,GAAI,EAAG,EAAI,EAAK,GAAI,EAAE,EAC7B,OAAS,GAAI,EAAG,EAAI,EAAK,GAAI,EAAE,EAC7B,EACI,EAAI,EACA,EACI,EACA,CACE,EAAI,EAAE,MAAM,GAAI,EAAI,EAAE,MAAM,GAAI,EAAI,EAAE,MAAM,GAC5C,EAAI,EAAE,MAAM,IAEd,CAAC,EAAE,MAAM,GAAI,EAAE,MAAM,GAAI,EAAE,MAAM,GAAI,EAAE,MAAM,UAMjE,MAAM,IAAI,OACN,2DACG,EAAE,qBAEX,MAAO,IAET,MAAO,CAAC,EAAG,KCpFf,AAuBO,KAAM,IAAkC,CAC7C,WAAY,GACZ,SAAU,CAAC,EAAY,EAAiB,KACtC,KAAM,GAAiC,EACjC,CAAC,QAAQ,EACT,EAAW,AAAU,GAAuB,GAClD,MAAO,CAAC,EAAG,IAAM,EAAU,EAAI,MC7BnC,AAqBO,KAAM,IAA+B,CAC1C,WAAY,GACZ,SAAU,CAAC,EAAc,EAAiB,KACxC,KAAM,GAA2B,EAC3B,CAAC,QAAQ,EACf,MAAO,CAAC,MAAO,IAAM,GAAM,EAAI,MC1BnC,AA8BO,KAAM,IAA2C,CACtD,WAAY,GACZ,aAAc,CAAC,cACf,SAAU,CAAC,EAAY,KACrB,KAAM,CAAC,GAAc,EAEf,EAAO,IACJ,GAAoB,EAAI,GAEjC,MAAO,CAAC,EAAG,KAIf,YAA+C,EAAM,GAInD,KAAM,GAAqB,GAAQ,EAAS,EAAU,IAChD,EAAW,GAAO,EAAG,GAC3B,GAAI,GAAa,GAAa,EAAS,EAAO,EAAG,UACjD,KAAM,GAAW,EAAS,KAAO,EAAW,KAC5C,OAAS,GAAI,EAAG,EAAI,EAAU,EAAE,EAC9B,EAAa,GAAW,EAAY,EAAI,GAE1C,EAAa,GAAW,EAAY,GAAK,EAAS,MAAO,SACzD,KAAM,GAAY,EAAU,GAC5B,MAAO,IAAM,EAAY,EAAU,GCxDrC,AAsBO,KAAM,IAAkC,CAC7C,WAAY,GACZ,SAAU,AAAC,GACF,EAAC,EAAG,IAAM,EAAU,MCzB/B,AAkHA,KAAM,IAA4B,CAChC,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAGF,SAAW,KAAkB,IAC3B,GAAiB,GCxNnB,u3NCEM,YACJ,EACA,EACA,EAAoB,IAUpB,GARA,EAAI,YAEJ,EAAO,MAAM,GAAG,QAAQ,CAAC,CAAE,IAAG,KAAK,KACjC,KAAM,GAAO,EAAO,GACpB,EAAI,OAAO,EAAK,EAAG,EAAK,GACxB,EAAI,OAAO,EAAG,KAGZ,GACF,KAAM,GAAO,EAAO,EAAO,OAAS,GAC9B,EAAK,EAAO,GAClB,GAAI,CAAC,GAAQ,CAAC,EACZ,OAGF,EAAI,OAAO,EAAK,EAAG,EAAK,GACxB,EAAI,OAAO,EAAG,EAAG,EAAG,GAGtB,EAAI,SC1BN,SAYE,YAAY,EAAe,GACzB,GAAI,CAAC,GAAc,IAAU,CAAC,GAAc,GAC1C,KAAM,IAAI,OAAM,wFAAwF,KAAK,UAAU,CAAE,QAAO,cAGlI,KAAK,OAAS,EACd,KAAK,QAAU,KAGN,SAAkB,MAAO,MAAK,UAC9B,UAAmB,MAAO,MAAK,QAEnC,UACL,MAAO,IAAI,IAAW,EAAI,KAAK,MAAO,EAAI,KAAK,SCzBnD,8RAKM,YAAmB,EAAa,GACpC,MAAO,aAAqB,KAAU,EAAO,MAAM,SAAW,EAG1D,YAAqB,GACzB,MAAO,IAAS,EAAQ,GAGpB,YAAqB,GACzB,MAAO,IAAS,EAAQ,GAGpB,YAAqB,GACzB,MAAO,IAAS,EAAQ,GAGpB,YAAqB,GACzB,MAAO,IAAS,EAAQ,GAGpB,YAAkB,GACtB,MAAO,GAAM,IAAM,EAGf,YAAiB,GACrB,MAAO,GAAM,IAAM,EAGf,YAAgB,EAAa,EAAe,GAChD,KAAM,GAAI,KAAK,IAAI,GAAI,GACvB,MAAO,MAAK,MAAM,EAAM,GAAK,EAGzB,YAAuB,GAC3B,MAAO,IAAO,EAAI,OAAS,EAAI,OAG3B,YAAoC,CAAE,QAAO,UAAuB,GACxE,KAAM,GAAQ,EAAY,KAAK,IAAI,EAAQ,GAC3C,MAAO,IAAI,IAAW,KAAK,MAAM,EAAQ,GAAQ,KAAK,MAAM,EAAS,IAGjE,YAAyB,GAC7B,MAAO,GAAI,OAAO,CAAC,EAAK,IAAO,EAAI,IAAI,GAAK,GAAI,GAAM,EAAG,IACtD,IAAI,GAAI,GAAM,EAAI,OAAQ,EAAI,SAG7B,YAAgB,EAAa,EAAe,GAChD,MAAO,OAAM,GAAK,KAAK,GAAG,IAAI,CAAC,EAAG,IAAM,EAAS,EAAI,GAGjD,YAAwB,GAC5B,MAAO,CAAC,CAAC,GAAO,IAAQ,UAAY,IAAQ,WAAa,CAAC,MAAM,IAAQ,IAAQ,EAG5E,YAA6B,GACjC,MAAO,IAAc,IAAQ,GAAK,GAAO,GAAO,ECxDlD,QAIE,YAAY,EAAW,GACrB,KAAK,GAAK,EACV,KAAK,GAAK,KAGR,KAAc,MAAO,MAAK,MAC1B,KAAc,MAAO,MAAK,GAEvB,IAAI,GACT,MAAO,IAAI,GAAM,KAAK,EAAI,EAAG,EAAG,KAAK,EAAI,EAAG,GAGvC,IAAI,GACT,MAAO,IAAI,GAAM,KAAK,EAAI,EAAG,EAAG,KAAK,EAAI,EAAG,GAGvC,IAAI,GACT,MAAO,IAAI,GAAM,KAAK,EAAI,EAAG,EAAG,KAAK,EAAI,EAAG,GAGvC,IAAI,GACT,MAAO,IAAI,GAAM,KAAK,EAAI,EAAG,EAAG,KAAK,EAAI,EAAG,GAGvC,MACL,MAAO,IAAI,GAAM,KAAK,IAAI,KAAK,GAAI,KAAK,IAAI,KAAK,IAG5C,YACL,MAAO,MAAK,KAAK,KAAK,IAAI,KAAK,EAAG,GAAK,KAAK,IAAI,KAAK,EAAG,IAGnD,QACL,MAAO,IAAI,GAAM,KAAK,MAAM,KAAK,GAAI,KAAK,MAAM,KAAK,KC1CzD,SA2BE,YAAY,EAA4B,EAAmC,IACzE,KAAM,GAAO,GAAQ,GAEf,EAAS,CAAC,EAAI,KAAM,EAAI,IAAK,EAAI,MAAO,EAAI,QAAQ,MAAM,IAC1D,EAAS,CAAC,EAAI,EAAG,EAAI,EAAG,EAAI,MAAO,EAAI,QAAQ,MAAM,IAE3D,GAAI,CAAC,GAAU,CAAC,EACd,KAAM,IAAI,OAAM,2EAA2E,KAAK,UAAU,MAG5G,KAAM,CAAC,EAAG,EAAG,EAAO,GAAU,EAC1B,CAAC,EAAI,EAAG,EAAI,EAAG,EAAI,MAAO,EAAI,QAC9B,CAAC,EAAI,KAAM,EAAI,IAAK,EAAI,MAAQ,EAAI,KAAM,EAAI,OAAS,EAAI,KAE/D,GAAI,iBAAiB,CAAE,IAAG,IAAG,QAAO,UAAU,kBAAmB,GAEjE,KAAK,GAAK,EACV,KAAK,GAAK,EACV,KAAK,OAAS,EACd,KAAK,QAAU,QAtCH,QAAO,GACnB,MAAO,CAAC,CAAC,GAAQ,CAAC,EAAK,EAAG,EAAK,EAAG,EAAK,MAAO,EAAK,QAAQ,MAAM,UAGrD,kBAAiB,EAAU,EAAgB,EAAmC,IAC1F,GAAI,CAAC,GAAI,OAAO,GACd,KAAM,IAAI,OAAM,GAAG,oBAAyB,KAAK,UAAU,2DAG7D,GAAI,CAAC,GAA4B,GAAI,MAAQ,GAAK,EAAI,OAAS,GAC7D,KAAM,IAAI,OAAM,GAAG,cAAmB,EAAI,sBAAsB,EAAI,uCA+B7D,KAAc,MAAO,MAAK,MAC1B,KAAc,MAAO,MAAK,MAC1B,SAAkB,MAAO,MAAK,UAC9B,UAAmB,MAAO,MAAK,WAC/B,QAAiB,MAAO,MAAK,KAC7B,OAAgB,MAAO,MAAK,KAC5B,SAAkB,MAAO,MAAK,EAAI,KAAK,SACvC,UAAmB,MAAO,MAAK,EAAI,KAAK,UACxC,QAAiB,MAAO,MAAK,MAAQ,KAAK,UAC1C,WAAmB,MAAO,IAAI,GAAM,KAAK,KAAM,KAAK,QACpD,YAAoB,MAAO,IAAI,GAAM,KAAK,MAAO,KAAK,QACtD,cAAsB,MAAO,IAAI,GAAM,KAAK,KAAM,KAAK,WACvD,eAAuB,MAAO,IAAI,GAAM,KAAK,MAAO,KAAK,QAE7D,QACL,KAAM,CAAC,EAAG,EAAG,EAAO,GAAU,CAAC,KAAK,EAAG,KAAK,EAAG,KAAK,MAAO,KAAK,QAC7D,IAAI,GAAO,KAAK,MAAM,IACzB,MAAO,IAAI,IAAI,CAAE,IAAG,IAAG,QAAO,WAGzB,QACL,KAAM,CAAC,EAAG,EAAG,EAAO,GAAU,CAAC,KAAK,EAAG,KAAK,EAAG,KAAK,MAAO,KAAK,QAC7D,IAAI,GAAO,KAAK,MAAM,IACzB,MAAO,IAAI,IAAI,CAAE,IAAG,IAAG,QAAO,WAGzB,WACL,GAAI,CAAE,IAAG,IAAG,QAAO,UAAW,KAC9B,KAAM,GAAO,KAAK,IAAI,EAAQ,GAC9B,MAAI,GAAQ,GACV,IAAM,EAAO,EACb,GAAS,GAEX,AAAI,EAAS,GACX,IAAM,EAAO,EACb,GAAU,GAGL,GAAI,IAAI,CAAE,IAAG,IAAG,QAAO,WAGzB,QAAQ,GACb,KAAM,GAAS,GAAa,GAAM,EAAkB,MAAQ,EACtD,EAAS,GAAa,GAAM,EAAkB,OAAS,EAC7D,MAAO,IAAI,IAAI,CACb,EAAG,KAAK,EAAI,EACZ,EAAG,KAAK,EAAI,EACZ,MAAO,KAAK,MAAQ,EACpB,OAAQ,KAAK,OAAS,IAInB,IAAI,EAAc,GACvB,GAAI,CAAC,EAAG,EAAG,EAAO,GAAU,CAC1B,KAAK,EAAK,EAAO,EACjB,KAAK,EAAK,EAAO,EACjB,KAAK,MAAQ,EACb,KAAK,OAAS,GAEhB,MAAO,IAAI,IAAI,CAAE,IAAG,IAAG,QAAO,WAGzB,mBAAmB,EAAkB,GAC1C,KAAM,CAAE,IAAG,IAAG,QAAO,UAAW,KAC1B,EAAW,KAAK,IAAI,EAAG,GACvB,EAAW,KAAK,IAAI,EAAG,GAEvB,EAAW,EAAQ,EACnB,EAAY,EAAS,EACrB,EAAe,KAAK,IAAI,EAAU,EAAW,GAC7C,EAAgB,KAAK,IAAI,EAAW,EAAY,GAEtD,MAAQ,IAAI,IAAI,CAAE,EAAG,EAAU,EAAG,EAAU,MAAO,EAAc,OAAQ,IAAiB,QAGrF,MAAM,EAAY,GACvB,KAAM,CAAE,QAAO,UAAW,KACpB,EAAI,KAAK,EAAI,EACb,EAAI,KAAK,EAAI,EAEnB,MAAO,IAAI,IAAI,CAAE,IAAG,IAAG,QAAO,WAGzB,aAAa,EAAqB,GACvC,KAAM,GAAI,KAAK,MAAQ,EACjB,EAAI,KAAK,OAAS,EAExB,GAAI,GAAK,EACL,EAAK,EACL,EAAM,EACN,EAAM,EAEN,EAAI,KAAK,KACT,EAAI,KAAK,IACT,EAAK,KAAK,MACV,EAAK,KAAK,OAEd,MAAI,GAAK,GACP,GAAM,CAAC,EAAK,EAAa,EACzB,EAAK,GAEP,AAAI,EAAK,GACP,GAAM,CAAC,EAAK,EAAc,EAC1B,EAAK,GAEP,AAAI,EAAI,GACN,GAAM,EAAI,EACV,EAAI,GAEN,AAAI,EAAI,GACN,GAAM,EAAI,EACV,EAAI,GAGC,CAAE,KAAI,MAAK,KAAI,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,KAGvC,UAAU,GACf,MAAO,IAAI,IAAI,CACb,KAAM,KAAK,KAAQ,EAAO,KAAO,KAAK,MACtC,IAAK,KAAK,IAAO,EAAO,IAAM,KAAK,OACnC,MAAO,KAAK,MAAS,EAAO,MAAQ,KAAK,MACzC,OAAQ,KAAK,OAAU,EAAO,OAAS,KAAK,SAC3C,WAAW,SC5KlB,gBASiC,IAC/B,YAAY,EAAc,EAAa,EAAe,EAAgB,EAAmC,IACvG,MAAM,CAAE,OAAM,MAAK,QAAO,UAAU,ICXxC,SAWE,YACE,EACA,EACA,EACA,EACA,GAEA,KAAK,WAAa,GAAI,IAAW,EAAU,MAAO,EAAU,QAC5D,KAAK,OAAS,EACd,KAAK,YAAc,EACnB,KAAK,WAAa,EAClB,KAAK,KAAO,GAAI,IAAI,GAAa,QAAQ,KAAK,eAGrC,SAAkB,MAAO,MAAK,UAC9B,cAAuB,MAAO,MAAK,eACnC,aAAsB,MAAO,MAAK,cAClC,OAAa,MAAO,MAAK,QACzB,aAA0B,MAAO,MAAK,cACtC,cAAuB,MAAO,MAAK,UAAU,SAC7C,eAAwB,MAAO,MAAK,UAAU,UAC9C,eAAqB,MAAO,IAAI,IAAI,KAAK,MAAM,QAAQ,KAAK,UAAU,WAE1E,QAAQ,EAAe,GAC5B,MAAO,IAAI,IACT,KAAK,MACL,KAAK,WACL,KAAK,UACL,KAAK,YACL,CAAE,QAAO,YCtCf,gBAQmC,IACjC,YACE,EACA,EACA,GAEA,MAAM,EAAO,EAAO,GAAI,EAAa,GAGhC,QAAQ,EAAe,GAC5B,KAAM,CAAE,QAAO,cAAa,aAAc,MAAM,QAAQ,EAAO,GAC/D,MAAO,IAAI,IAAc,EAAO,EAAa,ICnB3C,YAAc,EAAW,EAAW,EAAiB,IACzD,KAAM,GAAQ,KAAK,IAAI,EAAK,KAAK,IAAI,EAAK,MAAO,EAAK,OAAS,KAAK,IAAI,EAAK,KAAM,EAAK,OAClF,EAAS,KAAK,IAAI,EAAK,KAAK,IAAI,EAAK,OAAQ,EAAK,QAAU,KAAK,IAAI,EAAK,IAAK,EAAK,MACpF,EAAe,EAAQ,EAE7B,MAAO,GACH,EAAgB,GAAK,KAAO,EAAK,KAAO,GACxC,EAAe,KAAK,IAAI,EAAK,KAAM,EAAK,MCPxC,YAAkB,GACtB,KAAM,GAAK,EAAI,IAAI,GAAM,EAAG,GACtB,EAAK,EAAI,IAAI,GAAM,EAAG,GACtB,EAAO,EAAG,OAAO,CAAC,EAAK,IAAM,EAAI,EAAM,EAAI,EAAK,UAChD,EAAO,EAAG,OAAO,CAAC,EAAK,IAAM,EAAI,EAAM,EAAI,EAAK,UAChD,EAAO,EAAG,OAAO,CAAC,EAAK,IAAM,EAAM,EAAI,EAAI,EAAK,GAChD,EAAO,EAAG,OAAO,CAAC,EAAK,IAAM,EAAM,EAAI,EAAI,EAAK,GAEtD,MAAO,IAAI,IAAY,EAAM,EAAM,EAAM,GCPrC,YACJ,EACA,EACA,EACA,EAAiB,IAGjB,GAAI,GAAuB,EACxB,IAAI,CAAC,EAAO,IAAc,EAAE,QAAO,cACnC,KAAK,CAAC,EAAI,IAAO,EAAG,MAAQ,EAAG,OAC/B,IAAI,GAAK,EAAE,UAEd,KAAM,GAAiB,GAEvB,KAAM,EAAqB,OAAS,IAClC,KAAM,GAAO,EAAqB,MAClC,EAAK,KAAK,GAEV,KAAM,GAAU,EAEV,EAAoB,GAC1B,OAAS,GAAI,EAAG,EAAI,EAAQ,OAAQ,KAClC,KAAM,GAAM,EAAQ,GAEd,EAAU,EAAM,GAChB,EAAS,EAAM,GAErB,EAAQ,KAAK,GAAI,EAAS,EAAQ,IAGpC,EAAuB,EAAqB,OAC1C,CAAC,EAAG,IAAM,EAAQ,IAAM,GAI5B,MAAO,GCpCH,YAAoB,EAAgB,GACxC,MAAO,AAAG,GAAK,KACb,KAAM,CAAC,EAAG,EAAG,GAAK,EACZ,EAAQ,AAAG,GAAK,CAAC,GAAG,EAAE,MAAM,MAAM,EAAG,GAAI,GAAI,GAC7C,EAAQ,AAAG,GAAK,CAAC,GAAG,EAAE,MAAM,MAAM,EAAG,GAAI,GAAI,GAC7C,EAAQ,AAAG,GAAK,CAAC,GAAG,EAAE,MAAM,MAAM,EAAG,GAAI,GAAI,GAC7C,EAAU,AAAG,EAAO,CAAC,EAAO,EAAO,GAAQ,GAEjD,MAAO,AAAG,GAAI,EAAG,KCAf,YACJ,EACA,EAAyB,IAEzB,MAAO,AAAG,GAAK,KAEb,KAAM,CAAC,EAAQ,GAAS,EAAU,MAAM,MAAM,GAC9C,GAAI,IAAW,EACb,MAAO,GAGT,KAAM,GAAU,KAAK,IAAI,EAAS,GAC5B,EAAgB,KAAK,MAAM,EAAW,GAAgB,GAAM,IAC5D,EAAc,EAAS,EAAQ,EAAI,EAEnC,EAAsB,AAAC,IAC3B,KAAM,GAAqB,EAAU,MAAM,QAC3C,SAAmB,GAAe,EAC3B,AAAG,GAAK,EAAoB,IAG/B,EAAsB,EAAoB,GAC1C,EAAyB,EAAW,EAAoB,MAAM,GAE9D,EAAuB,GAAiB,EAC1C,EAAoB,GACpB,KAEE,EAAiB,CACrB,EACA,EACA,GAEC,OAAO,GAAK,CAAC,CAAC,GACd,IAAI,AAAC,GAAiB,EAAE,WAC3B,MAAO,AAAG,GAAO,EAAgB,KC7C/B,YAAuB,GAC3B,KAAM,GAAQ,EAAW,QACzB,OAAS,GAAI,EAAM,OAAS,EAAG,EAAI,EAAG,KAClC,KAAM,GAAI,KAAK,MAAM,KAAK,SAAY,GAAI,IACpC,EAAI,EAAM,GAChB,EAAM,GAAK,EAAM,GACjB,EAAM,GAAK,EAEf,MAAO,GCDH,YAAkB,GACtB,MAAO,GAAK,GAAI,KAAK,IAAI,CAAC,IAGtB,YAAyB,GAC7B,MAAO,MAAK,IAAI,EAAK,GAAI,ICZ3B,gBAS0B,IACxB,YAAY,EAAW,EAAW,EAAe,EAAgB,EAAmC,IAClG,MAAM,CAAE,IAAG,IAAG,QAAO,UAAU,ICDnC,KAAM,IAAO,GACP,GAAO,IACP,GAAW,IAZjB,SAwBE,YACE,EACA,EACA,EAAe,GAAI,GAAM,EAAG,IAE5B,KAAM,CAAE,QAAO,UAAW,EAC1B,KAAK,SAAW,GAAI,IAAW,EAAO,GACtC,KAAK,OAAS,EACd,KAAK,WAAa,EAA8B,IAC9C,GAAM,EAAG,IAAI,GAAI,GAAM,EAAO,IAAS,IAAI,OAIpC,SAAiB,MAAO,IAAI,GAAM,KAAK,OAAO,EAAG,KAAK,OAAO,MAC7D,cAAuB,MAAO,MAAK,SAAS,SAC5C,eAAwB,MAAO,MAAK,SAAS,UAC7C,aAAuB,MAAO,MAAK,cACnC,qBACT,MAAO,MAAK,WAAW,IACrB,GAAM,EAAG,IAAI,KAAK,QAAQ,IAAI,GAAI,GAAM,KAAK,WAAY,KAAK,eAI3D,QAAiC,EAAe,GACrD,MAAO,IAAK,MAAK,YACf,KAAK,kBACL,CAAE,QAAO,WAIN,QAAiC,EAAW,GACjD,MAAO,IAAK,MAAK,YACf,KAAK,kBACL,KAAK,SACL,GAAI,GAAM,EAAG,IAIV,aAAsC,GAC3C,MAAO,MAAK,QAAQ,EAAG,EAAG,EAAG,GAcxB,MACL,EACA,EAAkE,IAElE,GAAI,GACF,KAAM,GAAM,YAAqB,IAC7B,EAAU,IAAI,QACd,GAAI,IAAI,GAEZ,MAAO,MAAK,QAAQ,EAAI,EAAG,EAAI,GAAG,MAAM,KAAM,GAGhD,KAAM,CAAE,mBAAkB,iBAAkB,OAAO,OAAO,GAAI,CAAE,iBAAkB,GAAO,cAAe,IAAO,GAE/G,MAAI,GACK,KAAK,YAGP,KAAK,aAAa,GAGnB,YAEN,KAAM,GAAU,KAAK,2BAEf,CAAC,EAAe,EAAgB,GAAe,EAC/C,EAAc,AAAC,GAAc,EAAY,IAAI,GAAI,YACjD,EAAkB,GAAY,GAAiB,EAAY,IAAmB,EAE9E,EAAO,KAAK,MAAM,EAAiB,IAEnC,EAAW,GAAe,GAE1B,EAAI,KAAK,MAAM,KAAK,IAAI,EAAG,EAAS,EAAK,GAAO,IAChD,EAAI,KAAK,MAAM,KAAK,IAAI,EAAG,EAAS,EAAK,GAAO,IAEtD,MAAO,IAAI,IAAK,EAAG,EAAG,KAAK,IAAI,EAAM,KAAK,WAAa,GAAI,KAAK,IAAI,EAAM,KAAK,YAAc,IAGvF,aAAa,GACnB,KAAM,GAAM,GAAQ,KAAK,WACzB,MAAO,GAAI,IAAI,EAAI,MAAQ,EAAS,EAAI,OAAS,GAGzC,2BACR,KAAM,IAAI,OAAM,2DC1HpB,gBAKoC,IAExB,2BACR,KAAM,GAAM,KAAK,UACjB,MAAO,CACL,EAAI,GACJ,EAAI,GACJ,GAAe,CAAC,EAAI,GAAI,EAAI,OCZlC,gBAIqC,IAC5B,gBACL,MAAO,MAAK,UAAU,MAAM,EAAG,IAG1B,iBACL,MAAO,MAAK,UAAU,MAAM,GAAI,IAG3B,kBACL,MAAO,MAAK,UAAU,MAAM,GAAI,IAG3B,UACL,MAAO,MAAK,UAAU,MAAM,GAAI,IAG3B,aACL,MAAO,MAAK,UAAU,MAAM,GAAI,IAG3B,cACL,MAAO,MAAK,UAAU,MAAM,GAAI,IAG3B,WACL,MAAO,MAAK,UAAU,MAAM,GAAI,IAGxB,2BACR,MAAO,CACL,KAAK,aACL,KAAK,cACL,KAAK,YACL,IAAI,KCtCV,SAWE,YAAY,EAAe,GACzB,KAAK,OAAS,EACd,KAAK,UAAY,KAGR,SAAkB,MAAO,MAAK,UAC9B,YAAqB,MAAO,MAAK,UAErC,SAAS,EAAwB,IACtC,MAAO,GAAG,KAAK,QAAQ,EAAe,KAAK,GAAM,KAAK,aAAe,MCpBzE,gBAKgC,IAY9B,YAAY,EAAiC,GAC3C,MAAM,GACN,KAAK,OAAS,QAZF,yBAAwB,EAAU,GAG9C,GAFA,GAAI,iBAAiB,EAAK,GAEtB,CAAC,GAAc,EAAI,OACrB,KAAM,IAAI,OAAM,GAAG,gCAAqC,EAAI,4BAWrD,SAAkB,MAAO,MAAK,QCtB3C,SAIE,YAAY,EAAe,GACzB,GAAI,CAAE,OAAO,IAAU,UACrB,KAAM,IAAI,OAAM,sEAGlB,GAAI,CAAC,MAAM,QAAQ,IAAgB,EAAY,KAAK,GAAQ,CAAE,aAAgB,gBAC5E,KAAM,IAAI,OAAM,4FAGlB,KAAK,OAAS,EACd,KAAK,aAAe,KAGX,SAAkB,MAAO,MAAK,UAC9B,eAAgC,MAAO,MAAK,aAEhD,SACL,MAAO,CACL,MAAO,KAAK,MACZ,YAAa,KAAK,YAAY,IAAI,AAAC,GAAM,MAAM,KAAK,WAI1C,UAAS,GACrB,KAAM,GAAc,EAAK,YAAY,IAAI,AAAC,GACjC,GAAI,cAAa,IAE1B,MAAO,IAAI,IAAuB,EAAK,MAAO,IC/BlD,gBAKkC,IAgBhC,YAAY,EAAiC,EAAe,EAAe,GACzE,MAAM,EAAK,GACX,KAAK,OAAS,EACd,KAAK,YAAc,QAjBP,2BAA0B,EAAU,GAGhD,GAFA,GAAW,wBAAwB,EAAK,GAGtC,CAAC,GAAmB,EAAI,QACrB,CAAC,GAAmB,EAAI,YAE3B,KAAM,IAAI,OAAM,GAAG,kCAAuC,EAAI,eAAe,EAAI,gDAa1E,SAAkB,MAAO,MAAK,UAC9B,cAAuB,MAAO,MAAK,aCtB1C,YAA8B,GAClC,MAAO,GAAI,oBAAwB,IAG/B,YAGJ,EACA,GAGA,KAAM,GAAY,CAAE,aACpB,MAAO,QAAO,OAAO,GAAI,EAAW,GChBhC,cAEJ,KAAM,GAAQ,OAAO,OAAY,WAC/B,KAAM,IAAI,OAAM,iEAGZ,EAAW,WACf,KAAM,IAAI,OAAM,gEAGlB,MAAO,CACL,OAAQ,kBACR,yBACA,MAAO,iBACP,UACA,MAAO,iBACP,oBAAqB,IAAM,SAAS,cAAc,UAClD,mBAAoB,IAAM,SAAS,cAAc,OACjD,QACA,YCnBE,YAA2B,GAE/B,GAAI,GAAiB,GAErB,GAAI,CAAC,EACH,IACE,EAAK,oBACE,GACP,EAAiB,EAAI,WAIzB,KAAM,GAAW,EACb,SAAS,GACT,MAAO,IAAI,SAAgB,CAAC,EAAK,KAC/B,EAAG,SAAS,EAAU,SAAS,EAAU,GACvC,MAAO,GAAM,EAAI,GAAO,EAAI,QAIhC,WACA,KAAM,IAAI,OAAM,qEAAqE,MAGzF,MAAO,CACL,YCxBE,cAEJ,KAAM,GAAS,OAAO,QAAa,OAAO,kBACpC,EAAQ,OAAO,OAAY,OAAO,iBAElC,EAAsB,WAC1B,GAAI,EACF,MAAO,IAAI,KAEb,KAAM,IAAI,OAAM,+EAGZ,EAAqB,WACzB,GAAI,EACF,MAAO,IAAI,KAEb,KAAM,IAAI,OAAM,6EAGZ,EAAQ,OAAO,OAAY,WAC/B,KAAM,IAAI,OAAM,gEAGZ,EAAa,KAEnB,MAAO,CACL,OAAQ,GAAU,QAClB,yBAA0B,OAAO,0BAA+B,QAChE,MAAO,GAAS,QAChB,UAAW,OAAO,WAAgB,QAClC,MAAO,OAAO,kBAAuB,QACrC,sBACA,qBACA,WACG,GCrCD,cACJ,MAAO,OAAO,SAAW,UACpB,MAAO,WAAa,aACpB,MAAO,mBAAqB,aAC5B,MAAO,oBAAsB,aAC7B,MAAO,mBAAqB,aAC5B,MAAO,YAAc,aACrB,MAAO,2BAA6B,YCP3C,SAAoB,SAEd,YAAuB,GAC3B,MAAI,CAAC,OAAI,YAAc,MAAO,IAAQ,SAC7B,SAAS,eAAe,GAE1B,ECNT,SAAoB,SAGd,YAA8B,GAElC,KAAM,CAAE,SAAQ,4BAA6B,OAAI,SAEjD,GAAI,YAAqB,GACvB,MAAO,GAGT,KAAM,GAAS,GAAa,GAE5B,GAAI,CAAE,aAAkB,IACtB,KAAM,IAAI,OAAM,kEAGlB,KAAM,GAAM,EAAO,WAAW,MAC9B,GAAI,CAAC,EACH,KAAM,IAAI,OAAM,gDAGlB,MAAO,GClBT,GAAY,IAAZ,AAAA,UAAY,GACV,EAAA,SAAA,WACA,EAAA,UAAA,YACA,EAAA,YAAA,cACA,EAAA,aAAA,iBAJU,IAAA,IAAc,KAH1B,SA2BE,YAAY,EAAiC,IAC3C,KAAM,CAAE,iBAAgB,kBAAiB,YAAW,WAAU,YAAW,WAAY,EACrF,KAAK,eAAiB,GAAkB,GAAe,SACvD,KAAK,gBAAkB,GAAmB,qBAC1C,KAAK,UAAY,GAAa,yBAC9B,KAAK,SAAW,GAAY,GAC5B,KAAK,UAAY,GAAa,UAC9B,KAAK,QAAU,GAAW,GAlC9B,SA2CE,YACE,EACA,EACA,EAAiC,IAEjC,KAAK,KAAO,MAAO,IAAS,SACxB,CAAC,GACA,YAAgB,IAAgB,EAAK,KAAO,EACjD,KAAK,OAAS,EACd,KAAK,QAAU,GAAI,IAAqB,GAG1C,aAAa,GACX,KAAM,CAAE,WAAY,KAAK,QACzB,MAAO,MAAK,KAAK,IAAI,GAAK,EAAI,YAAY,GAAG,OAAO,OAAO,CAAC,EAAI,IAAO,EAAK,EAAK,EAAK,EAAI,GAAM,EAAI,EAGtG,gBACE,KAAM,CAAE,WAAU,WAAY,KAAK,QACnC,MAAO,MAAK,KAAK,OAAS,EAAY,EAAI,EAG5C,aAAa,EAA+B,GAC1C,KAAM,CAAE,kBAAmB,KAAK,QAC1B,EAAc,IAAmB,GAAe,cAAgB,IAAmB,GAAe,UAClG,EAAa,IAAmB,GAAe,aAAe,IAAmB,GAAe,aAEhG,EAAiB,KAAK,aAAa,GACnC,EAAkB,KAAK,gBACvB,EAAK,EAAc,KAAK,OAAO,EAAI,EAAiB,KAAK,OAAO,EAChE,EAAI,EAAa,KAAK,OAAO,EAAI,EAAkB,KAAK,OAAO,EAGrE,GAAI,GACF,KAAM,CAAE,QAAO,UAAW,EACpB,EAAO,KAAK,IAAI,KAAK,IAAI,EAAG,EAAQ,GAAiB,GACrD,EAAO,KAAK,IAAI,KAAK,IAAI,EAAG,EAAS,GAAkB,GAC7D,MAAO,CAAE,EAAG,EAAM,EAAG,GAEvB,MAAO,CAAE,IAAG,KAGd,KAAK,GACH,KAAM,GAAS,GAAa,GACtB,EAAM,GAAoB,GAE1B,CAAE,kBAAiB,YAAW,WAAU,YAAW,WAAY,KAAK,QAE1E,EAAI,KAAO,GAAG,OAAc,IAC5B,KAAM,GAAe,KAAK,aAAa,GACjC,EAAa,KAAK,gBAExB,EAAI,UAAY,EAChB,KAAM,GAAY,KAAK,aAAa,EAAK,GACzC,EAAI,SAAS,EAAU,EAAG,EAAU,EAAG,EAAc,GAErD,EAAI,UAAY,EAChB,KAAK,KAAK,QAAQ,CAAC,EAAU,KAC3B,KAAM,GAAI,EAAU,EAAU,EACxB,EAAI,EAAU,EAAU,EAAM,GAAI,GAAK,EAC7C,EAAI,SAAS,EAAU,EAAG,MCxGhC,SAiBE,YAAY,EAA2B,IACrC,KAAM,CAAE,WAAU,YAAW,QAAO,oBAAqB,EACzD,KAAK,SAAW,GAAY,qBAC5B,KAAK,UAAY,GAAa,EAC9B,KAAK,MAAQ,EAEb,KAAM,GAA0B,CAC9B,eAAgB,GAAe,YAC/B,gBAAiB,KAAK,UAExB,KAAK,iBAAmB,GAAI,IAAqB,OAAO,OAAO,GAAI,EAAyB,KA3BhG,SAmCE,YACE,EACA,EAA2B,IAE3B,KAAK,IAAM,GAAI,IAAI,GACnB,KAAK,QAAU,GAAI,IAAe,GAGpC,KAAK,GACH,KAAM,GAAM,GAAoB,GAE1B,CAAE,WAAU,aAAc,KAAK,QAE/B,CAAE,IAAG,IAAG,QAAO,UAAW,KAAK,IACrC,EAAI,YAAc,EAClB,EAAI,UAAY,EAChB,EAAI,WAAW,EAAG,EAAG,EAAO,GAE5B,KAAM,CAAE,SAAU,KAAK,QACvB,AAAI,GACF,GAAI,IAAc,CAAC,GAAQ,CAAE,EAAG,EAAK,EAAY,EAAI,KAAK,KAAK,QAAQ,kBAAkB,KAAK,IC/C9F,YACJ,EACA,GAEA,KAAM,GAAkB,MAAM,QAAQ,GAAc,EAAa,CAAC,GAElE,EAAgB,QAAQ,IACtB,KAAM,GAAQ,YAAe,IACzB,EAAI,MACH,GAAoB,GAAO,EAAI,UAAU,MAAQ,OAEhD,EAAM,YAAe,IACvB,EAAI,IACH,GAAoB,GAAO,EAAI,UAAU,IAAM,GAAI,IAAI,GAEtD,EAAQ,EAAQ,GAAG,GAAM,KAAW,OAC1C,GAAI,IAAQ,EAAK,CAAE,UAAS,KAAK,KCxBrC,SAAoB,SAEd,YAAwB,GAE5B,KAAM,CAAE,QAAO,SAAU,OAAI,SAE7B,MAAQ,aAAiB,IAAS,EAAM,UAClC,YAAiB,IAAS,EAAM,YAAc,ECPtD,SAAoB,SAGd,YAA2B,GAE/B,MAAO,IAAI,SAAQ,CAAC,EAAS,KAC3B,GAAI,YAAiB,QAAI,SAAS,QAAU,GAAc,GACxD,MAAO,KAGT,WAAgB,GACd,GAAI,CAAC,EAAE,cAAe,OACtB,EAAE,cAAc,oBAAoB,OAAQ,GAC5C,EAAE,cAAc,oBAAoB,QAAS,GAC7C,EAAQ,GAGV,WAAiB,GACf,GAAI,CAAC,EAAE,cAAe,OACtB,EAAE,cAAc,oBAAoB,OAAQ,GAC5C,EAAE,cAAc,oBAAoB,QAAS,GAC7C,EAAO,GAGT,EAAM,iBAAiB,OAAQ,GAC/B,EAAM,iBAAiB,QAAS,KCzBpC,SAAoB,SAEd,YAAwB,GAC5B,MAAO,IAAI,SAAQ,CAAC,EAAS,KAC3B,GAAI,CAAE,aAAe,OACnB,MAAO,GAAO,oDAGhB,KAAM,GAAS,GAAI,cACnB,EAAO,OAAS,KACd,GAAI,MAAO,GAAO,QAAW,SAC3B,MAAO,GAAO,oEAGhB,KAAM,GAAM,OAAI,SAAS,qBACzB,EAAI,OAAS,IAAM,EAAQ,GAC3B,EAAI,QAAU,EACd,EAAI,IAAM,EAAO,QAEnB,EAAO,QAAU,EACjB,EAAO,cAAc,KCnBzB,SAAoB,SAEd,YAA6B,GAEjC,KAAM,CAAE,QAAO,SAAU,OAAI,SAE7B,MAAI,aAAiB,GACZ,GAAI,IAAW,EAAM,aAAc,EAAM,eAE9C,YAAiB,GACZ,GAAI,IAAW,EAAM,WAAY,EAAM,aAEzC,GAAI,IAAW,EAAM,MAAO,EAAM,QCZ3C,SAAoB,SAKd,YAAuB,CAAE,QAAO,WAEpC,KAAM,CAAE,uBAAwB,OAAI,SAC9B,EAAS,IACf,SAAO,MAAQ,EACf,EAAO,OAAS,EACT,EAGH,YAAgC,EAAwD,GAE5F,KAAM,CAAE,aAAc,OAAI,SAE1B,GAAI,CAAE,aAAiB,KAAc,CAAC,GAAc,GAClD,KAAM,IAAI,OAAM,8DAGlB,KAAM,CAAE,QAAO,UAAW,GAAQ,GAAmB,GAC/C,EAAS,GAAa,CAAE,QAAO,WAErC,MAAI,aAAiB,GACnB,GAAoB,GAAQ,aAAa,EAAO,EAAG,GAEnD,GAAoB,GAAQ,UAAU,EAAO,EAAG,EAAG,EAAO,GAErD,EC7BT,SAAoB,SAGpB,kBACE,EACA,GAGA,KAAM,GAAe,GAAU,OAAI,SAAS,sBAEtC,CAAC,EAAQ,EAAO,GAAe,EAAU,MAAM,MAAM,GAAW,GAAa,EAAI,GACjF,EAAc,AAAG,EAAK,IAAM,EAAU,KAAK,EAAQ,EAAO,GAAa,SAC7E,YAAM,AAAG,IAAQ,SAAS,EAAa,GAEvC,EAAY,UAEL,EClBT,SAAoB,SAEd,YAAyB,GAE7B,KAAM,CAAE,QAAO,SAAQ,SAAU,OAAI,SAErC,MAAO,aAAiB,IACnB,YAAiB,IACjB,YAAiB,GCRxB,SAAoB,SAKd,YAAwB,EAA6C,EAAmB,EAAuB,IAEnH,KAAM,CAAE,QAAO,UAAW,OAAI,SAE9B,GAAI,CAAE,aAAiB,IAAS,YAAiB,IAC/C,KAAM,IAAI,OAAM,4EAGlB,KAAM,GAAO,GAAmB,GAC1B,EAAQ,EAAY,KAAK,IAAI,EAAK,OAAQ,EAAK,OAC/C,EAAQ,EAAQ,EAAK,MACrB,EAAS,EAAQ,EAAK,OAEtB,EAAe,GAAa,CAAE,MAAO,EAAW,OAAQ,IACxD,EAAc,YAAiB,GAAS,EAAQ,GAAsB,GAEtE,EAAS,KAAK,IAAI,EAAQ,GAAU,EACpC,EAAK,GAAe,EAAQ,EAAS,EAAS,EAC9C,EAAK,GAAe,EAAS,EAAQ,EAAS,EACpD,UAAoB,GAAc,UAAU,EAAa,EAAI,EAAI,EAAO,GAEjE,ECvBT,SAAoB,SAHpB,SAmBE,YACE,EACA,EAA6B,IAE7B,GAZM,KAAA,cAAkD,GAClD,KAAA,UAAiC,GAEjC,KAAA,mBAA8B,GAE9B,KAAA,iBAA+B,GAOjC,CAAC,MAAM,QAAQ,GACjB,KAAM,IAAI,OAAM,4HAA4H,KAG9I,KAAK,mBAAqB,EAC1B,KAAK,WAAa,EAAO,OAEzB,EAAO,QAAQ,CAAC,EAAO,KAErB,GAAI,GAAW,IACb,KAAK,cAAc,GAAO,EAC1B,KAAK,iBAAiB,GAAO,EAAM,MACnC,OAGF,GAAI,GAAW,IACb,KAAM,GAAY,EAAM,MAAM,GAC9B,GAAI,IAAc,EAChB,KAAM,IAAI,OAAM,yCAAyC,8CAG3D,KAAK,cAAc,GAAO,EAC1B,KAAK,iBAAiB,GAAO,EAAM,MAAM,MAAM,GAC/C,OAGF,KAAM,GAAS,YAAiB,QAAI,SAAS,OAAS,EAAQ,GAAsB,GACpF,KAAK,UAAU,GAAO,EACtB,KAAK,iBAAiB,GAAO,CAAC,EAAO,OAAQ,EAAO,MAAO,QAIpD,gBACT,MAAO,MAAK,iBAGH,YACT,MAAO,MAAK,aAGH,gBACT,MAAO,MAAK,UAAY,GAAK,KAAK,sBAGzB,aACT,MAAO,MAAK,cAGH,mBACT,MAAO,MAAK,oBAGH,aACT,MAAO,MAAK,cAGH,2BACT,MAAO,IAAM,KAAK,UAAW,EAAG,GAAG,IACjC,CAAC,EAAG,IAAa,KAAK,2BAA2B,IAI9C,SAAS,GACd,MAAO,MAAK,SAAS,IAAa,KAAK,aAAa,GAG/C,mBAAmB,GACxB,MAAO,MAAK,iBAAiB,GAGxB,eAAe,GACpB,MAAO,MAAK,iBAAiB,GAAU,GAGlC,cAAc,GACnB,MAAO,MAAK,iBAAiB,GAAU,GAGlC,2BAA2B,GAChC,GAAI,MAAO,MAAK,WAAc,SAC5B,KAAM,IAAI,OAAM,yFAGlB,KAAM,GAAQ,KAAK,cAAc,GAC3B,EAAS,KAAK,eAAe,GACnC,MAAO,IAA0B,CAAE,QAAO,UAAU,KAAK,WAYpD,cAAc,EAAmB,EAA0B,IAEhE,YAAK,WAAa,EAEX,AAAG,EAAK,KAEb,KAAM,GAAe,GAAM,KAAK,UAAW,EAAG,GAAG,IAAI,IACnD,KAAM,GAAQ,KAAK,SAAS,GAE5B,GAAI,YAAoB,KAEtB,GAAI,GAAY,GAAW,GAAS,EAAQ,EAAM,aAElD,SAAY,GAAY,EAAW,GAEnC,AAAI,GAAU,MAAM,KAAO,GAAa,EAAU,MAAM,KAAO,IAC7D,GAAY,AAAG,GAAM,eAAe,EAAW,CAAC,EAAW,KAGtD,EAAU,KAAK,EAAW,EAAW,GAG9C,GAAI,YAAiB,QAAI,SAAS,OAChC,MAAO,AAAG,IAAQ,WAAW,GAAc,EAAO,EAAW,IAG/D,KAAM,IAAI,OAAM,+BAA+B,8FAAqG,OAGhJ,EAAc,AAAG,GAAM,EAAa,IAAI,GAAK,EAAE,YAAY,KAAK,KAAK,UAAW,EAAW,EAAW,GAE5G,MAAO,MCzIb,kBAAiC,GAC/B,GAAI,YAAkB,IACpB,MAAO,GAGT,GAAI,GAAgB,MAAM,QAAQ,GAC5B,EACA,CAAC,GAEP,GAAI,CAAC,EAAc,OACjB,KAAM,IAAI,OAAM,4CAGlB,KAAM,GAAa,AAAC,GAAgB,MAAM,QAAQ,GAAU,mBAAmB,KAAS,GAElF,EAAa,EAAc,IAAI,IAErC,SAAW,QAAQ,CAAC,EAAO,KACzB,GAAI,CAAC,GAAe,IAAU,CAAC,GAAW,IAAU,CAAC,GAAW,GAE9D,KAAI,OAAO,GAAc,IAAO,SACxB,GAAI,OAAM,eAAe,EAAW,sEAAsE,EAAc,MAG1H,GAAI,OAAM,eAAe,EAAW,iIAG5C,GAAI,GAAW,IAEb,KAAM,GAAY,EAAM,MAAM,GAC9B,GAAI,IAAc,EAChB,KAAM,IAAI,OAAM,eAAe,EAAW,iCAAiC,iDAMjF,KAAM,SAAQ,IACZ,EAAW,IAAI,GAAS,GAAe,IAAU,GAAiB,KAG7D,GAAI,IAAS,EAAY,MAAM,QAAQ,ICrDhD,SAAoB,SAcpB,kBACE,EACA,GAGA,KAAM,CAAE,UAAW,OAAI,SAEvB,GAAI,GAAS,EAEb,GAAI,CAAE,aAAiB,KACrB,KAAM,GAAW,KAAM,IAAW,GAElC,GAAI,EAAS,UAAY,EACvB,KAAM,IAAI,OAAM,8CAGlB,KAAM,GAAiB,EAAS,SAAS,GACzC,EAAS,YAA0B,GAC/B,EACA,KAAM,IAAoB,GAGhC,KAAM,GAAM,GAAoB,GAC1B,EAAQ,EAAW,IACvB,GAAO,YAAe,IAClB,EAAI,QAAQ,EAAO,MAAO,EAAO,QAAQ,IAAI,QAC7C,GAEH,IAAI,GAAO,EAAI,mBAAmB,EAAO,MAAO,EAAO,SAE1D,MAAO,GAAM,IAAI,CAAC,CAAE,IAAG,IAAG,QAAO,aAC/B,KAAM,GAAU,GAAa,CAAE,QAAO,WACtC,UAAoB,GACjB,aAAa,EAAI,aAAa,EAAG,EAAG,EAAO,GAAS,EAAG,GACnD,IClCX,kBACE,EACA,GAGA,GAAI,CAAC,GAAW,IAAgB,CAAC,GAAW,GAC1C,KAAM,IAAI,OAAM,6DAGlB,GAAI,GAAW,IAAgB,EAAY,MAAM,GAAK,EACpD,KAAM,IAAI,OAAM,oDAGlB,MAAO,AAAG,GAAK,KACb,KAAM,CAAC,EAAW,EAAU,GAAe,EAAY,MAAM,MAAM,GAAW,GAAe,EAAI,GAE3F,EAAQ,EAAW,IACvB,GAAO,YAAe,IAClB,EAAI,QAAQ,EAAU,GAAW,IACjC,GAEH,IAAI,GAAO,EAAI,mBAAmB,EAAU,IAEzC,EAAc,EAAM,IAAI,CAAC,CAAE,IAAG,IAAG,QAAO,YAC5C,AAAG,GAAQ,EAAY,KAAK,EAAW,EAAU,GAAc,CAAC,EAAG,EAAG,GAAI,CAAC,EAAQ,EAAO,KAG5F,MAAO,KC3CX,SAAoB,SAEpB,kBACE,EACA,GAGA,KAAM,GAAQ,OAAI,SAAS,MACrB,EAAM,KAAM,GAAM,EAAK,GAC7B,GAAI,CAAE,GAAI,OAAS,KACjB,KAAM,IAAI,OAAM,qBAAqB,EAAI,WAAW,EAAI,yBAAyB,EAAI,OAEvF,MAAO,GCTT,kBAAiC,GAC/B,KAAM,GAAM,KAAM,IAAa,GACzB,EAAO,KAAO,GAAK,OAEzB,GAAI,CAAC,EAAK,KAAK,WAAW,UACxB,KAAM,IAAI,OAAM,wEAAwE,EAAK,kBAAkB,EAAI,OAErH,MAAO,IAAc,GCRvB,kBAAmC,GACjC,MAAQ,MAAM,IAAa,IAAM,OCDnC,kBAAsC,GACpC,MAAO,IAAI,cAAa,KAAO,MAAM,IAAa,IAAM,eCHpD,YAAuB,EAAyB,GACpD,KAAM,GAA0B,GAAG,0BAEnC,GAAI,CAAC,EACH,MAAO,CACL,aAAc,GACd,YAAa,GAIjB,GAAI,IAAQ,IACV,MAAO,CACL,aAAc,IACd,YAAa,IAAI,KAGrB,KAAM,GAAW,EAAI,WAAW,WAAa,UAAY,EAAI,WAAW,YAAc,WAAa,GACnG,EAAM,EAAI,QAAQ,EAAU,IAE5B,KAAM,GAAQ,EAAI,MAAM,KAAK,OAAO,GAAK,GAEnC,EAAe,EAAI,SAAS,SAC9B,EAAM,EAAM,OAAS,GACrB,EAEJ,GAAI,GAAe,EAAY,GAAI,SAAS,SAAW,EAAM,MAAM,EAAG,EAAM,OAAS,GAAK,GAAO,KAAK,KACtG,SAAe,EAAI,WAAW,KAAO,IAAI,IAAiB,EAEnD,CACL,eACA,YAAa,IAAiB,IAAM,IAAI,IAAiB,GAAG,KAAgB,KCzBhF,kBACE,EACA,GAEA,KAAM,CAAE,cAAa,gBAAiB,GAAa,EAAK,GAElD,EAAW,KAAM,IAAuC,GAE9D,MAAO,AAAG,IAAG,YAAY,EAAU,GCV/B,YAA0B,EAAoB,EAAwB,EAA8B,IACxG,KAAM,CAAE,QAAO,UAAW,EACtB,GAAmB,GACnB,EACJ,SAAM,MAAQ,EACd,EAAM,OAAS,EACR,CAAE,QAAO,UCLlB,SAA8B,SAC9B,GAAoB,SALpB,SAYE,YAAsB,GAAA,KAAA,MAAA,EAHZ,KAAA,QAAkC,OAClC,KAAA,eAAiC,MAIhC,UAAmC,MAAO,MAAK,WAC/C,iBAAkC,MAAO,MAAK,kBAC9C,YAAsB,MAAO,CAAC,CAAC,KAAK,OAExC,iBAAiB,GACtB,KAAM,CAAE,MAAK,WAAY,KAAK,qBAAqB,GACnD,MAAO,GAAI,GAGN,sBAAsB,EAAmB,GAC9C,KAAM,CAAE,MAAK,WAAY,KAAK,qBAAqB,GACnD,EAAI,GAAS,UACb,EAAI,GAAW,EAGV,eACL,MAAO,MAAK,eAAe,IAAI,CAAC,CAAE,eAAiB,EACjD,KAAM,EACN,OAAQ,KAAK,iBAAiB,MAI3B,qBACL,MAAO,MAAK,eAAe,OAAO,GAAS,EAAM,iBAAqB,KAGjE,kBACL,MAAO,MAAK,eAAe,OAAO,GAAS,CAAE,GAAM,iBAAqB,MAGnE,WACL,KAAK,kBAAkB,QAAQ,CAAC,CAAE,OAAM,aACtC,KAAK,sBAAsB,EAAM,EAAO,cAIrC,SACL,KAAK,qBAAqB,QAAQ,CAAC,CAAE,OAAM,OAAQ,MACjD,KAAM,GAAS,AAAG,GAAO,EAAS,YAClC,EAAS,UACT,KAAK,sBAAsB,EAAM,KAI9B,QAAQ,EAA4B,IACzC,KAAK,eAAe,QAAQ,IAC1B,GAAI,GAAoB,EAAM,OAAO,WACnC,KAAM,IAAI,OAAM,mDAAmD,EAAM,QAE3E,EAAM,OAAO,YAEf,KAAK,QAAU,OAGV,kBACL,MAAO,IAAI,cACT,KAAK,eACF,IAAI,CAAC,CAAE,YAAa,MAAM,KAAK,EAAO,aACtC,OAAO,CAAC,EAAM,IAAQ,EAAK,OAAO,UAI5B,MAAK,GAChB,GAAI,YAAwB,eAC1B,KAAK,eAAe,GACpB,OAGF,KAAM,MAAK,YAAY,QAGZ,aAAY,GACvB,GAAI,GAAO,MAAO,IAAQ,SACxB,KAAM,IAAI,OAAM,GAAG,KAAK,0CAG1B,KAAM,GAAY,KAAM,kBAAc,EAAK,KAAK,uBAChD,KAAK,kBAAkB,QAGZ,cAAa,GACxB,GAAI,GAAY,MAAO,IAAa,SAClC,KAAM,IAAI,OAAM,GAAG,KAAK,iDAG1B,KAAM,CAAE,YAAa,OAAI,SAEnB,CAAE,cAAa,gBAAiB,GAAa,EAAU,KAAK,uBAE5D,EAAuB,AAAC,GAAwB,QAAQ,IAC5D,EAAU,IAAI,GAAY,EAAS,GAAU,KAAK,GAAO,EAAI,UAEzD,EAAc,AAAG,GAAG,qBAAqB,GAEzC,EAAW,KAAK,MAAO,MAAM,GAAS,IAAc,YACpD,EAAY,KAAM,GAAY,EAAU,GAE9C,KAAK,kBAAkB,GAGlB,kBAAkB,GACvB,KAAM,CACJ,gBACA,UACE,KAAK,2BAA2B,GAEpC,KAAK,eAAiB,EACtB,KAAK,QAAU,EAGV,eAAe,GACpB,KAAM,CACJ,gBACA,UACE,KAAK,cAAc,GAEvB,KAAK,eAAiB,EACtB,KAAK,QAAU,EAGT,qBAAqB,GAC3B,GAAI,CAAC,KAAK,OACR,KAAM,IAAI,OAAM,qDAGlB,KAAM,GAAS,EAAU,MAAM,KAAK,OAAO,CAAC,EAAoD,KAC9F,GAAI,CAAC,EAAI,QAAQ,eAAe,GAC9B,KAAM,IAAI,OAAM,wDAAwD,eAAqB,KAG/F,MAAO,CAAE,IAAK,EAAI,QAAS,UAAS,QAAS,EAAI,QAAQ,KACxD,CAAE,QAAS,KAAK,SAEb,CAAE,MAAK,WAAY,EACzB,GAAI,CAAC,GAAO,CAAC,GAAW,CAAE,GAAI,YAAuB,KACnD,KAAM,IAAI,OAAM,8DAA8D,KAGhF,MAAO,CAAE,MAAK,YCpJZ,YACJ,EACA,EACA,GAEA,MAAO,AAAG,GAAK,KACb,GAAI,GAAM,AAAG,GAAgB,EAAG,EAAO,iBAAkB,EAAO,iBAAkB,EAAQ,QAC1F,SAAM,AAAG,EAAI,EAAK,EAAO,MAClB,ICNL,YACJ,EACA,EACA,EAAwB,IAExB,MAAO,AAAG,GAAK,KACb,KAAM,GAAO,AAAG,GACd,EACI,AAAG,EACH,AAAG,GAAO,EAAI,EAAiB,MAAqB,QAAS,CAAC,EAAG,GAAI,QACrE,EAAiB,MAAM,MAEvB,GAAuB,EAAG,EAAiB,MAA8B,CAAC,EAAG,KAE7E,EAAO,GAAuB,EAAM,EAAiB,MAAO,CAAC,EAAG,IAEhE,EAAM,AAAG,GAAK,AAAG,EAAI,EAAM,IAC3B,EAAO,GAAuB,EAAK,EAAiB,MAAO,CAAC,EAAG,IAErE,MAAO,AAAG,IAAK,AAAG,EAAI,EAAM,AAAG,EAAI,EAAM,OAIvC,YACJ,EACA,EACA,EAAwB,GACxB,EAAuB,IAEvB,MAAO,AAAG,GAAK,KACb,KAAM,GAAO,AAAG,GACd,EACI,AAAG,EACH,AAAG,GAAO,EAAI,EAAiB,MAAqB,QAAS,EAAc,CAAC,EAAG,GAAK,CAAC,EAAG,GAAI,QAC5F,EAAiB,MAAM,MAEvB,GAAuB,EAAG,EAAiB,MAA8B,EAAc,CAAC,EAAG,GAAK,CAAC,EAAG,KAEpG,EAAO,GAAuB,EAAM,EAAiB,MAAO,CAAC,EAAG,IAEhE,EAAM,AAAG,GAAK,AAAG,EAAI,EAAM,IAC3B,EAAO,GAAuB,EAAK,EAAiB,MAAO,CAAC,EAAG,IAE/D,EAAM,AAAG,GAAK,AAAG,EAAI,EAAM,AAAG,EAAI,EAAM,KACxC,EAAO,GAAuB,EAAK,EAAiB,MAAO,CAAC,EAAG,IAErE,MAAO,AAAG,IAAK,AAAG,EAAI,EAAM,AAAG,EAAI,EAAM,AAAG,EAAI,EAAM,QChDpD,YACJ,EACA,EACA,EAA4B,OAC5B,EAAoB,IAEpB,MAAO,AAAG,GAAK,KACb,KAAM,GAAM,AAAG,EACb,AAAG,GAAO,EAAG,EAAO,QAAS,CAAC,EAAG,GAAI,GACrC,EAAO,MAGT,MAAO,GAAW,AAAG,GAAK,GAAO,ICd/B,YAAqC,EAAgB,GACzD,OAAO,KAAK,GAAW,QAAQ,IAC7B,AAAK,EAAc,KAAK,GAAM,EAAG,eAAiB,IAChD,EAAU,GAAM,YCDhB,YACJ,EACA,GAGA,MAAO,UACL,EACA,EACA,EACA,GAGA,KAAM,GAAU,AAAG,GACjB,EAAe,EAAa,EAAc,EAAa,GACvD,CAAC,EAAY,EAAY,EAAY,IAEjC,EAAO,AAAG,GAAS,EAAe,IAExC,SAAc,KACZ,CAAE,UAAW,GAAG,aAChB,CAAE,UAAW,GAAG,WAGX,CAAE,UAAS,SCtBhB,YACJ,EACA,GAGA,MAAO,UACL,EACA,EACA,GAGA,KAAM,GAAa,AAAG,GAAS,EAAe,EAAa,GAAc,CAAC,EAAY,IAChF,EAAU,AAAG,GAAS,EAAe,IAE3C,SAAc,KACZ,CAAE,UAAW,GAAG,aAChB,CAAE,UAAW,GAAG,WAGX,CACL,QAAS,EACT,KAAM,ICPZ,SACE,YACS,EACA,EACA,GAFA,KAAA,iBAAA,EACA,KAAA,iBAAA,EACA,KAAA,KAAA,GCnBL,YACJ,EACA,GAGA,MAAO,UAAS,EAAoB,EAAqB,GACvD,KAAM,GAAmB,AAAG,GAAS,EAAe,EAAI,EAAI,GAAa,CAAC,EAAG,EAAG,EAAY,IACtF,EAAmB,AAAG,GAAS,EAAe,EAAa,GAAc,CAAC,EAAG,EAAG,EAAY,IAC5F,EAAO,AAAG,GAAS,EAAe,IAExC,SAAc,KACZ,CAAE,UAAW,GAAG,sBAChB,CAAE,UAAW,GAAG,sBAChB,CAAE,UAAW,GAAG,WAGX,GAAI,IACT,EACA,EACA,IAMA,YACJ,GAGA,MAAO,UAAU,GACf,KAAM,GAAmB,EAAgC,GAAG,qBAA2B,GACjF,EAAmB,EAAgC,GAAG,qBAA2B,GACjF,EAAO,EAAgC,GAAG,SAAe,GAE/D,MAAO,IAAI,IACT,EACA,EACA,ICtCA,YAAoC,EAAgB,GAExD,MAAO,UAAa,EAAsB,EAAmB,GAC3D,KAAM,GAAS,EAAU,GAEzB,GAAI,CAAC,GAAS,EAAQ,GACpB,KAAM,IAAI,OAAM,sBAAsB,oBAA+B,oBAA4B,KAGnG,SAAc,KACZ,CAAE,eAAc,UAAW,GAAc,IAGpC,GChBL,YAAgC,GACpC,GAAI,GAAmB,EAEvB,WAAwB,GACtB,KAAM,GAAM,EAAiB,MAAM,EAAG,GACtC,SAAmB,EAAiB,MAAM,GACnC,EAGT,aACE,MAAO,GAGT,MAAO,CACL,iBACA,uBCPE,YAA4B,EAAwC,GAExE,KAAM,GAAoB,GAAyB,EAAgB,GAC7D,EAA6B,GAAkC,EAAgB,GAErF,WAAkC,EAAoB,EAAqB,EAAsB,EAAwB,IAEvH,KAAM,GAAQ,EACV,EAAkB,EAAY,EAAa,EAAG,GAAG,WACjD,EAA2B,EAAY,EAAa,GAAG,WACrD,EAAQ,EAA2B,EAAa,EAAa,GAAG,WAChE,EAAQ,EAA2B,EAAa,EAAa,GAAG,WAEtE,MAAO,CAAE,QAAO,QAAO,SAGzB,WAAkC,EAAoB,EAAqB,EAAsB,EAAwB,IAEvH,KAAM,CAAE,QAAO,QAAO,SAAU,EAAyB,EAAY,EAAa,EAAc,GAC1F,EAAQ,EAA2B,EAAa,EAAa,GAAG,WAEtE,MAAO,CAAE,QAAO,QAAO,QAAO,SAGhC,MAAO,CACL,2BACA,4BC7BE,YAAwB,GAE5B,KAAM,GAAgC,GAEhC,CACJ,iBACA,uBACE,GAAsB,GAEpB,CACJ,4BACE,GAAkB,EAAgB,GAEhC,EAAS,EAAyB,EAAG,GAAI,SAAU,IACnD,EAAS,EAAyB,GAAI,GAAI,UAC1C,EAAS,EAAyB,GAAI,IAAK,UAC3C,EAAS,EAAyB,IAAK,IAAK,UAElD,GAAI,IAAsB,SAAW,EACnC,KAAM,IAAI,OAAM,kCAAkC,IAAsB,UAG1E,MAAO,CACL,gBACA,OAAQ,CAAE,SAAQ,SAAQ,SAAQ,WCzBhC,YAAgC,GACpC,MAAO,UAAS,GACd,KAAM,GAAU,EAAgC,GAAG,YAAkB,GAC/D,EAAO,EAAgC,GAAG,SAAe,GAE/D,MAAO,CAAE,UAAS,SCLhB,YAA4B,EAAgB,GAEhD,KAAM,GAAqB,GAA0B,EAAW,GAE1D,EAAoB,GAAsB,GAC1C,EAA6B,GAA+B,GAElE,WAAkC,EAAgB,EAAwB,IACxE,KAAM,GAAQ,EACV,EAAkB,GAAG,WACrB,EAA2B,GAAG,WAC5B,EAAQ,EAA2B,GAAG,WACtC,EAAQ,EAA2B,GAAG,WAE5C,MAAO,CAAE,QAAO,QAAO,SAGzB,WAAkC,EAAgB,EAAwB,IACxE,KAAM,GAAQ,EACV,EAAkB,GAAG,WACrB,EAA2B,GAAG,WAC5B,EAAQ,EAA2B,GAAG,WACtC,EAAQ,EAA2B,GAAG,WACtC,EAAQ,EAA2B,GAAG,WAE5C,MAAO,CAAE,QAAO,QAAO,QAAO,SAGhC,MAAO,CACL,2BACA,4BC5BE,YACJ,GAGA,KAAM,GAAgC,GAEhC,CACJ,4BACE,GAAkB,EAAW,GAE3B,EAAS,CACb,OAAQ,EAAyB,SAAU,IAC3C,OAAQ,EAAyB,UACjC,OAAQ,EAAyB,UACjC,OAAQ,EAAyB,WAGnC,UAA2B,EAAW,GAE/B,CAAE,SAAQ,iBCvBnB,SAAgD,SAFhD,gBAU0C,IAExC,cACE,MAAM,wBAGD,aAAa,GAElB,KAAM,CAAE,UAAW,KAEnB,GAAI,CAAC,EACH,KAAM,IAAI,OAAM,sDAGlB,MAAO,AAAG,GAAK,KACb,KAAM,GAAc,EAAM,cAAc,IAAK,IACvC,EAAU,CAAC,QAAS,QAAS,SAC7B,EAAa,GAAU,EAAa,GAAS,IAAI,AAAG,EAAO,MAEjE,GAAI,GAAM,GAAY,EAAY,EAAO,OAAQ,IACjD,SAAM,GAAY,EAAK,EAAO,QAC9B,EAAM,GAAY,EAAK,EAAO,QAC9B,EAAM,GAAY,EAAK,EAAO,QAC9B,EAAM,AAAG,GAAQ,EAAK,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,SAE/B,SAIE,SAAQ,GACnB,MAAO,MAAK,aAAa,KAAM,eAAW,IAGlC,sBACR,MAAO,+BAGC,2BAA2B,GACnC,MAAO,IAA2B,GAG1B,cAAc,GACtB,MAAO,IAAc,IChDnB,YACJ,EACA,GAEA,MAAO,AAAG,GAAK,IACb,AAAG,EACD,AAAG,EAAO,EAAG,EAAO,SACpB,EAAO,OCRP,YAAwB,EAAuB,EAAoB,GAEvE,KAAM,GAAgC,GAEhC,CACJ,iBACA,uBACE,GAAsB,GAEpB,EAAkB,GAAuB,EAAgB,GAEzD,EAAK,EAAgB,EAAY,EAAa,MAEpD,GAAI,IAAsB,SAAW,EACnC,KAAM,IAAI,OAAM,kCAAkC,IAAsB,UAG1E,MAAO,CACL,gBACA,OAAQ,CAAE,OCjBR,YACJ,GAGA,KAAM,GAAgC,GAEhC,EAAqB,GAA0B,EAAW,GAEhE,WAAyB,GACvB,KAAM,GAAU,EAAgC,GAAG,YAAkB,GAC/D,EAAO,EAAgC,GAAG,SAAe,GAC/D,MAAO,CAAE,UAAS,QAGpB,KAAM,GAAS,CACb,GAAI,EAAgB,OAGtB,UAA2B,EAAW,GAE/B,CAAE,SAAQ,iBCvBb,YAA6B,GAEjC,KAAM,GAAyC,GACzC,EAAmC,GAEzC,cAAO,KAAK,GAAW,QAAQ,IAC7B,KAAM,GAAM,EAAI,WAAW,MAAQ,EAAgB,EACnD,EAAI,GAAO,EAAU,KAGhB,CAAE,sBAAqB,iBCThC,SAAyB,SAHzB,gBAkBU,IAIR,YAAY,EAAe,GACzB,MAAM,GACN,KAAK,sBAAwB,KAGpB,wBACT,MAAO,MAAK,sBAOP,OAAO,GAEZ,KAAM,CAAE,UAAW,KAEnB,GAAI,CAAC,EACH,KAAM,IAAI,OAAM,GAAG,KAAK,uCAG1B,MAAO,AAAG,GAAK,KACb,KAAM,GAAqB,YAAiB,aACxC,KAAK,qBAAqB,aAAa,GACvC,EACJ,MAAO,IAAoB,EAAmB,KAAK,EAAmB,MAAM,GAAI,IAAK,EAAO,MAIzF,QAAQ,EAA4B,IACzC,KAAK,qBAAqB,QAAQ,GAClC,MAAM,QAAQ,GAGT,qBAAqB,GAC1B,KAAM,CAAE,SAAQ,iBAAkB,KAAK,wBAAwB,GAC/D,KAAK,QAAU,EACf,KAAK,eAAiB,EAGjB,wBAAwB,GAC7B,MAAO,IAAc,EAAS,KAAK,0BAA2B,KAAK,4BAG3D,2BAA2B,GAEnC,KAAM,CAAE,sBAAqB,iBAAkB,GAAmB,GAElE,YAAK,qBAAqB,kBAAkB,GAErC,GAA2B,GAG1B,cAAc,GAEtB,KAAM,GAAM,KAAK,0BACX,EAAO,KAAK,2BACZ,EAAwB,EAAO,EAAQ,EAEvC,EAA0B,EAAQ,MAAM,EAAG,EAAQ,OAAS,GAC5D,EAAoB,EAAQ,MAAM,EAAQ,OAAS,GAEzD,YAAK,qBAAqB,eAAe,GAClC,KAAK,wBAAwB,ICrFjC,KAAM,IAAyB,CAAC,UAAW,QAAS,MAAO,QAAS,UAAW,YAAa,aAAnG,SAWE,YAAY,GACV,GAAI,EAAc,SAAW,EAC3B,KAAM,IAAI,OAAM,8EAA8E,EAAc,UAG9G,GAAuB,QAAQ,CAAC,EAAY,KAC1C,KAAK,GAAc,EAAc,KAIrC,gBACE,MAAO,IACJ,IAAI,GAAe,EAAE,aAAY,YAAa,KAAK,MACnD,KAAK,CAAC,EAAI,IAAO,EAAG,YAAc,EAAG,cCtB5C,SAAgD,SAFhD,gBAQuC,IAErC,YAAY,EAA6C,GAAI,OAC3D,MAAM,oBAAqB,GAGtB,aAAa,GAClB,MAAO,AAAG,GAAK,IAAM,AAAG,GAAQ,KAAK,OAAO,UAGjC,SAAQ,GACnB,MAAO,MAAK,aAAa,KAAM,eAAW,SAG/B,oBAAmB,GAC9B,KAAM,GAAW,KAAM,eAAW,GAC5B,EAAM,KAAM,MAAK,aAAa,GAC9B,EAAsB,KAAM,SAAQ,IAAI,AAAG,GAAQ,GAAK,IAAI,KAAM,KACtE,KAAM,GAAO,KAAM,GAAE,OACrB,SAAE,UACK,KAET,EAAI,UAEJ,KAAM,GAAqB,EACxB,IAAI,GAAgB,GAAI,IAAgB,IAE3C,MAAO,GAAS,aACZ,EACA,EAAmB,GAGf,sBACR,MAAO,wBAGC,0BACR,MAAO,KAGC,2BACR,MAAO,IC3CL,YAAgC,GACpC,MAAO,GAAI,sBAA0B,IAGjC,YAGJ,EACA,GAGA,KAAM,GAAY,CAAE,eACpB,MAAO,QAAO,OAAO,GAAI,EAAW,GCThC,YACJ,EACA,EACA,EAAgB,GAChB,GAEA,KAAM,GAAuB,MAAM,QAAQ,GAAmB,EAAkB,CAAC,GAEjF,EAAqB,QAAQ,IAC3B,KAAM,GAAO,YAAa,IACtB,EACC,GAAsB,GAAK,EAAE,YAAc,OAChD,GAAI,CAAC,EACH,KAAM,IAAI,OAAM,mHAGlB,KAAM,GAAS,EAAK,gBACd,EAAmB,EAAO,OAAO,GAAQ,EAAK,YAAc,GAE5D,EAAS,GAAoB,GAC/B,EAAE,UAAU,IAAI,WACf,GAAmB,GAAI,GAAM,EAAG,GAE/B,EAAgB,GAAI,IACxB,EAAiB,IAAI,GAAQ,GAAG,EAAK,eAAe,GAAM,EAAK,iBAC/D,GAEF,EAAc,KAAK,KCtBjB,YAA8B,GAClC,MAAO,IAAoB,IACtB,EAAI,oBAAwB,KAC5B,EAAI,6BAAiC,KACrC,EAAI,sBAA0B,IAG/B,YAIJ,EACA,GAGA,KAAM,CAAE,IAAK,GAAU,EAAU,UAC3B,EAAY,EAAmB,QAAwB,EAAM,EAAG,EAAM,GAEtE,EAAO,EAAU,QACjB,CAAE,aAAc,EAAU,UAC1B,EAAc,GAAI,IAAc,EAAU,UAAU,MAAO,EAAK,QAAQ,EAAU,WAAY,GAE9F,EAAY,CAChB,YACA,qBACA,eAGF,MAAO,QAAO,OAAO,GAAI,EAAW,GCzCtC,SAwBE,YAAY,EAAqC,IAC/C,KAAM,CAAE,YAAY,GAAM,aAAa,GAAM,YAAW,YAAW,YAAW,cAAe,EAC7F,KAAK,UAAY,EACjB,KAAK,WAAa,EAClB,KAAK,UAAY,GAAa,EAC9B,KAAK,UAAY,GAAa,EAC9B,KAAK,UAAY,GAAa,uBAC9B,KAAK,WAAa,GAAc,wBA/BpC,SAuCE,YACE,EACA,EAAqC,IAErC,KAAK,cAAgB,EACrB,KAAK,QAAU,GAAI,IAAyB,GAG9C,KAAK,GACH,KAAM,GAAM,GAAoB,GAE1B,CAAE,YAAW,aAAY,YAAW,YAAW,YAAW,cAAe,KAAK,QAcpF,GAZA,AAAI,GAAa,KAAK,wBAAyB,KAC7C,GAAI,YAAc,EAClB,EAAI,UAAY,EAChB,GAAY,EAAK,KAAK,cAAc,iBACpC,GAAY,EAAK,KAAK,cAAc,kBACpC,GAAY,EAAK,KAAK,cAAc,mBACpC,GAAY,EAAK,KAAK,cAAc,WACpC,GAAY,EAAK,KAAK,cAAc,aAAc,IAClD,GAAY,EAAK,KAAK,cAAc,cAAe,IACnD,GAAY,EAAK,KAAK,cAAc,WAAY,KAG9C,GACF,EAAI,YAAc,EAClB,EAAI,UAAY,EAEhB,KAAM,GAAY,AAAC,IACjB,EAAI,YACJ,EAAI,IAAI,EAAG,EAAG,EAAG,EAAG,EAAW,EAAG,EAAI,KAAK,IAC3C,EAAI,QAEN,KAAK,cAAc,UAAU,QAAQ,KAOrC,YACJ,EACA,GAEA,KAAM,GAAqB,MAAM,QAAQ,GAAiB,EAAgB,CAAC,GAC3E,EAAmB,QAAQ,IACzB,KAAM,GAAY,YAAa,IAC3B,EACC,GAAoB,GAAK,EAAE,UAAY,OAC5C,GAAI,CAAC,EACH,KAAM,IAAI,OAAM,gIAGlB,GAAI,IAAkB,GAAW,KAAK,KC9F1C,uRCKA,YAA2B,EAAwC,GAEjE,KAAM,GAAoB,GAAyB,EAAgB,GAC7D,EAA6B,GAAkC,EAAgB,GAErF,WAAqC,EAAoB,EAAqB,GAE5E,KAAM,GAAkB,EAA2B,EAAY,EAAa,GAAG,qBACzE,EAAkB,EAA2B,EAAa,EAAa,GAAG,qBAC1E,EAAiB,EAAkB,EAAY,EAAa,EAAG,GAAG,oBAExE,MAAO,CAAE,kBAAiB,kBAAiB,kBAG7C,WAAgC,EAAkB,GAEhD,KAAM,GAAkB,EAA2B,EAAU,EAAU,GAAG,qBACpE,EAAkB,EAA2B,EAAU,EAAU,GAAG,qBACpE,EAAkB,EAA2B,EAAU,EAAU,GAAG,qBAE1E,MAAO,CAAE,kBAAiB,kBAAiB,mBAG7C,MAAO,CACL,oBACA,6BACA,8BACA,0BAKE,YAAwB,EAAuB,GAEnD,KAAM,GAAgC,GAEhC,CACJ,iBACA,uBACE,GAAsB,GAEpB,CACJ,oBACA,6BACA,8BACA,0BACE,GAAkB,EAAgB,GAEhC,EAAqB,EAAkB,EAAG,GAAI,EAAG,sBACjD,EAA+B,EAA4B,GAAI,GAAI,gCACnE,EAA+B,EAA4B,GAAI,IAAK,gCAEpE,EAAa,CACjB,QAAS,EACT,kBAAmB,EACnB,kBAAmB,GAGf,EAAc,GACpB,GAAM,EAAe,EAAG,GAAG,QAAQ,AAAC,IAClC,EAAY,cAAc,KAAS,EAAuB,IAAK,0BAA0B,OAG3F,KAAM,GAA4B,EAA4B,IAAK,IAAK,6BAClE,EAA2B,EAA2B,IAAK,IAAK,4BAEhE,EAAY,CAChB,gBAAiB,EACjB,eAAgB,GAGlB,GAAI,IAAsB,SAAW,EACnC,KAAM,IAAI,OAAM,kCAAkC,IAAsB,UAG1E,MAAO,CACL,gBACA,OAAQ,CAAE,aAAY,cAAa,cCtEvC,YAA2B,EAAgB,GAEzC,KAAM,GAAqB,GAA0B,EAAW,GAE1D,EAAoB,GAAsB,GAC1C,EAA6B,GAA+B,GAElE,WAAqC,GAEnC,KAAM,GAAkB,EAA2B,GAAG,qBAChD,EAAkB,EAA2B,GAAG,qBAChD,EAAiB,EAAkB,GAAG,oBAE5C,MAAO,CAAE,kBAAiB,kBAAiB,kBAG7C,WAAgC,GAE9B,KAAM,GAAkB,EAA2B,GAAG,qBAChD,EAAkB,EAA2B,GAAG,qBAChD,EAAkB,EAA2B,GAAG,qBAEtD,MAAO,CAAE,kBAAiB,kBAAiB,mBAG7C,MAAO,CACL,oBACA,6BACA,8BACA,0BAIE,YACJ,EACA,GAGA,KAAM,GAAgC,GAEhC,CACJ,oBACA,6BACA,8BACA,0BACE,GAAkB,EAAW,GAE3B,EAAqB,EAAkB,sBACvC,EAA+B,EAA4B,gCAC3D,EAA+B,EAA4B,gCAE3D,EAAa,CACjB,QAAS,EACT,kBAAmB,EACnB,kBAAmB,GAGf,EAAc,GACpB,GAAM,EAAe,EAAG,GAAG,QAAQ,AAAC,IAClC,EAAY,cAAc,KAAS,EAAuB,0BAA0B,OAGtF,KAAM,GAA4B,EAA4B,6BACxD,EAA2B,EAA2B,4BAEtD,EAAY,CAChB,gBAAiB,EACjB,eAAgB,GAGlB,UAA2B,EAAW,GAE/B,CAAE,OAAQ,CAAE,aAAY,cAAa,aAAa,iBCjF3D,SAAgD,SAQhD,YAAc,EAAgB,EAAoB,GAChD,MAAO,AAAG,GAAI,AAAG,GAAO,EAAG,EAAO,QAAS,EAAQ,QAAS,EAAO,MAGrE,YAAwB,EAAgB,EAA8B,EAA2B,IAC/F,GAAI,GAAM,EAAkB,AAAG,GAAK,GAAK,EACzC,SAAM,GAAuB,EAAK,EAAO,gBAAiB,CAAC,EAAG,IAC9D,EAAM,GAAuB,AAAG,GAAK,GAAO,EAAO,gBAAiB,CAAC,EAAG,IACxE,EAAM,AAAG,GAAQ,EAAK,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,QACtC,EAAM,AAAG,EAAI,EAAK,GAAK,EAAI,EAAO,eAAgB,CAAC,EAAG,KAC/C,EAGT,YAAmB,EAAgB,GACjC,GAAI,GAAM,GAAuB,AAAG,GAAK,GAAI,EAAO,gBAAiB,CAAC,EAAG,IACzE,SAAM,GAAuB,AAAG,GAAK,GAAM,EAAO,gBAAiB,CAAC,EAAG,IACvE,EAAM,GAAuB,AAAG,GAAK,GAAM,EAAO,gBAAiB,CAAC,EAAG,IACvE,EAAM,AAAG,EAAI,EAAK,GACX,EA7BT,gBAgCkC,IAIhC,YAAY,GACV,MAAM,gBACN,KAAK,eAAiB,EAGjB,aAAa,GAElB,KAAM,CAAE,UAAW,KAEnB,GAAI,CAAC,EACH,KAAM,IAAI,OAAM,8CAGlB,MAAO,AAAG,GAAK,KACb,KAAM,GAAc,EAAM,cAAc,IAAK,IACvC,EAAU,CAAC,QAAS,QAAS,SAC7B,EAAa,GAAU,EAAa,GAAS,IAAI,AAAG,EAAO,MAEjE,GAAI,GAAM,AAAG,GAAK,GAAK,EAAY,EAAO,WAAW,QAAS,CAAC,EAAG,KAClE,SAAM,GAAe,EAAK,EAAO,WAAW,kBAAmB,IAC/D,EAAM,GAAe,EAAK,EAAO,WAAW,mBAE5C,GAAM,KAAK,eAAgB,EAAG,GAAG,QAAQ,AAAC,IACxC,EAAM,GAAU,EAAK,EAAO,YAAY,cAAc,QAGxD,EAAM,GAAe,EAAK,EAAO,UAAU,iBAC3C,EAAM,AAAG,GAAK,GAAuB,EAAK,EAAO,UAAU,eAAgB,CAAC,EAAG,KACxE,SAIE,SAAQ,GACnB,MAAO,MAAK,aAAa,KAAM,eAAW,IAGlC,sBACR,MAAO,sBAGC,2BAA2B,GACnC,MAAO,IAA2B,EAAW,KAAK,gBAG1C,cAAc,GACtB,MAAO,IAAc,EAAS,KAAK,iBC9EjC,YAAwB,GAE5B,KAAM,GAAgC,GAEhC,CACJ,iBACA,uBACE,GAAsB,GAEpB,EAAkB,GAAuB,EAAgB,GAEzD,EAAM,EAAgB,IAAK,EAAG,UAC9B,EAAS,EAAgB,IAAK,EAAG,aAEvC,GAAI,IAAsB,SAAW,EACnC,KAAM,IAAI,OAAM,kCAAkC,IAAsB,UAG1E,MAAO,CACL,gBACA,OAAQ,CAAE,GAAI,CAAE,MAAK,YClBnB,YACJ,GAGA,KAAM,GAAgC,GAEhC,EAAqB,GAA0B,EAAW,GAEhE,WAAyB,GACvB,KAAM,GAAU,EAAgC,GAAG,YAAkB,GAC/D,EAAO,EAAgC,GAAG,SAAe,GAC/D,MAAO,CAAE,UAAS,QAGpB,KAAM,GAAS,CACb,GAAI,CACF,IAAK,EAAgB,UACrB,OAAQ,EAAgB,eAI5B,UAA2B,EAAW,GAE/B,CAAE,SAAQ,iBClBnB,GAAY,IAAZ,AAAA,UAAY,GACV,EAAA,OAAA,SACA,EAAA,KAAA,SAFU,IAAA,IAAM,KCDlB,SAAgD,SAThD,gBAWkC,IAIhC,YAAY,EAAqC,GAAI,IAAa,IAChE,MAAM,gBACN,KAAK,sBAAwB,KAGpB,wBACT,MAAO,MAAK,sBAGP,OAAO,GAEZ,KAAM,CAAE,UAAW,KAEnB,GAAI,CAAC,EACH,KAAM,IAAI,OAAM,GAAG,KAAK,uCAG1B,MAAO,AAAG,GAAK,KACb,KAAM,GAAqB,YAAiB,aACxC,KAAK,qBAAqB,aAAa,GACvC,EAEE,EAAS,AAAG,GAAQ,EAAoB,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,SAAS,KAAK,EAAmB,MAAM,GAAI,IACnG,EAAM,GAAoB,EAAQ,EAAO,GAAG,KAAK,OACjD,EAAS,GAAoB,EAAQ,EAAO,GAAG,QACrD,MAAO,CAAE,MAAK,YAIX,aAAa,GAClB,MAAO,AAAG,GAAK,KACb,KAAM,CAAE,MAAK,UAAW,KAAK,OAAO,GACpC,MAAO,CAAE,MAAK,OAAQ,AAAG,GAAQ,WAIxB,SAAQ,GACnB,MAAO,MAAK,aAAa,KAAM,eAAW,SAG/B,qBAAoB,GAC/B,KAAM,GAAW,KAAM,eAAW,GAC5B,EAAM,KAAM,MAAK,aAAa,GAE9B,EAAO,AAAG,GAAQ,EAAI,KACtB,EAAU,AAAG,GAAQ,EAAI,QACzB,EAAsB,EAAK,IAAI,CAAC,EAAW,IAAO,EACtD,YACA,aAAc,EAAQ,MAGlB,EAAqB,KAAM,SAAQ,IACvC,EAAoB,IAAI,MAAO,CAAE,YAAW,mBAC1C,KAAM,GAAO,MAAM,GAAU,QAAQ,GAC/B,EAAY,MAAM,GAAa,QAAQ,GACvC,EAAS,EAAW,GACpB,EAAS,EAAS,GAAO,KAAO,GAAO,OACvC,EAAoB,EAAS,EAAY,EAAI,EAEnD,SAAU,UACV,EAAa,UACN,CAAE,MAAK,SAAQ,wBAG1B,SAAI,IAAI,UACR,EAAI,OAAO,UAEJ,EAAS,aACZ,EACA,EAAmB,GAGf,sBACR,MAAO,mBAGF,QAAQ,EAA4B,IACzC,KAAK,qBAAqB,QAAQ,GAClC,MAAM,QAAQ,GAGT,qBAAqB,GAC1B,KAAM,CAAE,SAAQ,iBAAkB,KAAK,wBAAwB,GAC/D,KAAK,QAAU,EACf,KAAK,eAAiB,EAGjB,wBAAwB,GAC7B,MAAO,IAAc,GAGb,2BAA2B,GAEnC,KAAM,CAAE,sBAAqB,iBAAkB,GAAmB,GAElE,YAAK,qBAAqB,kBAAkB,GAErC,GAA2B,GAG1B,cAAc,GAEtB,KAAM,GAAwB,IAAM,EAAI,EAAM,KAAM,EAAI,GAElD,EAA0B,EAAQ,MAAM,EAAG,EAAQ,OAAS,GAC5D,EAAoB,EAAQ,MAAM,EAAQ,OAAS,GAEzD,YAAK,qBAAqB,eAAe,GAClC,KAAK,wBAAwB,ICvHxC,SAAgD,SAJhD,gBAYU,IAED,YAAY,EAAqB,EAAmB,GAEzD,KAAM,GAAkB,EAAmB,IAAI,CAAC,CAAE,QAAO,aACvD,KAAM,GAAQ,EAAY,KAAK,IAAI,EAAQ,GAC3C,MAAO,CACL,MAAO,EAAQ,EACf,OAAQ,EAAS,KAIf,EAAY,EAAgB,OAElC,MAAO,AAAG,GAAK,KACb,KAAM,GAA0B,CAAC,EAAe,IAC9C,AAAG,GAAM,CACP,AAAG,GAAK,CAAC,IAAK,GACd,AAAG,GAAK,CAAC,IAAK,IACb,GAAG,KAAK,EAAG,KAAK,OAEf,EAAa,CAAC,EAAkB,KACpC,KAAM,CAAE,QAAO,UAAW,EAAgB,GAC1C,MAAO,GAAK,EAAO,GAAU,KAAK,IAAI,EAAQ,GAAU,EAAI,GAExD,EAAc,AAAC,GAAqB,EAAW,EAAU,CAAC,EAAG,IAAM,EAAI,GACvE,EAAc,AAAC,GAAqB,EAAW,EAAU,CAAC,EAAG,IAAM,EAAI,GAEvE,EAAkB,EACrB,IAAI,AAAG,GAAK,CAAC,EAAW,KAAM,IAC9B,IAAI,AAAG,GAAM,MAAM,KAAK,MAAM,GAAY,CAAC,EAAG,IAC7C,EACE,EAAY,GACZ,EAAY,OAGf,IAAI,AAAG,GAAM,MAAM,KAAK,MAAM,GAAY,CAAC,EAAG,IAC7C,EACE,EAAgB,GAAU,MAC1B,EAAgB,GAAU,WAIhC,MAAO,KAIJ,aAAa,GAClB,MAAO,AAAG,GAAK,KACb,KAAM,GAAM,KAAK,OAAO,GACxB,MAAO,MAAK,YACV,EACA,EAAM,UACN,EAAM,gBAAgB,IAAI,CAAC,CAAC,EAAQ,KAAY,EAAE,SAAQ,mBAKnD,SAAQ,GACnB,MAAO,MAAK,aAAa,KAAM,eAAW,SAG/B,iBAAgB,GAC3B,KAAM,GAAW,KAAM,eAAW,GAC5B,EAAkB,AAAG,EACzB,IAAM,AAAG,GAAQ,KAAK,aAAa,KAG/B,EAAoB,KAAM,SAAQ,IAAI,EAAgB,IAC1D,MAAO,EAAgB,KACrB,KAAM,GAAiB,MAAM,KAAK,KAAM,GAAe,QACjD,EAAU,EAAe,OAAO,CAAC,EAAG,IAAM,GAAO,IACjD,EAAU,EAAe,OAAO,CAAC,EAAG,IAAM,CAAC,GAAO,IAExD,MAAO,IAAI,IACT,MAAM,IAAI,KAAK,GAAG,IAAI,CAAC,EAAG,IAAM,GAAI,GAAM,EAAQ,GAAI,EAAQ,KAC9D,CACE,OAAQ,EAAS,eAAe,GAChC,MAAQ,EAAS,cAAc,QAMvC,SAAgB,QAAQ,GAAK,EAAE,WAExB,EAAS,aACZ,EACA,EAAkB,GAGd,2BACR,MAAO,MCxGX,gBAIuC,IAErC,YAAY,EAA6C,GAAI,OAC3D,MAAM,oBAAqB,GAGnB,sBACR,MAAO,yBAGC,0BACR,MAAO,MCTL,YACJ,GAGA,KAAM,GAAgC,GAEhC,CACJ,4BACE,GAAkB,EAAW,GAE3B,EAAS,CACb,OAAQ,EAAyB,SAAU,IAC3C,OAAQ,EAAyB,UACjC,OAAQ,EAAyB,WAGnC,UAA2B,EAAW,GAE/B,CAAE,SAAQ,iBClBb,YAA4B,GAEhC,KAAM,GAAgC,GAEhC,CACJ,iBACA,uBACE,GAAsB,GAEpB,CACJ,4BACE,GAAkB,EAAgB,GAEhC,EAAS,EAAyB,EAAG,GAAI,SAAU,IACnD,EAAS,EAAyB,GAAI,GAAI,UAC1C,EAAS,EAAyB,GAAI,IAAK,UAEjD,GAAI,IAAsB,SAAW,EACnC,KAAM,IAAI,OAAM,kCAAkC,IAAsB,UAG1E,MAAO,CACL,gBACA,OAAQ,CAAE,SAAQ,SAAQ,WC3B9B,SAAgD,SAFhD,gBAU8C,IAE5C,cACE,MAAM,4BAGD,aAAa,GAElB,KAAM,CAAE,UAAW,KAEnB,GAAI,CAAC,EACH,KAAM,IAAI,OAAM,0DAGlB,MAAO,AAAG,GAAK,KACb,KAAM,GAAc,EAAM,cAAc,IAAK,IACvC,EAAU,CAAC,QAAS,QAAS,SAC7B,EAAa,GAAU,EAAa,GAAS,IAAI,AAAG,EAAO,MAEjE,GAAI,GAAM,GAAY,EAAY,EAAO,OAAQ,IACjD,SAAM,GAAY,EAAK,EAAO,QAC9B,EAAM,GAAY,EAAK,EAAO,QAC9B,EAAM,AAAG,GAAQ,EAAK,CAAC,GAAI,IAAK,CAAC,EAAG,GAAI,SAEjC,SAIE,SAAQ,GACnB,MAAO,MAAK,aAAa,KAAM,eAAW,IAGlC,sBACR,MAAO,oCAGC,2BAA2B,GACnC,MAAO,IAA+B,GAG9B,cAAc,GACtB,MAAO,IAAkB,ICnD7B,gBAI2C,IAEzC,YAAY,EAAiD,GAAI,OAC/D,MAAM,wBAAyB,GAGvB,sBACR,MAAO,8BAGC,0BACR,MAAO,MCfX,gBAKqC,KCD/B,YAAgB,EAAgB,GACpC,MAAO,AAAG,GAAI,AAAG,EAAI,EAAG,EAAO,SAAU,EAAO,QCClD,YACE,EACA,EACA,EACA,EACA,EAA4B,QAE5B,KAAM,CAAE,UAAS,QAAS,EAAO,KAEjC,GAAI,GAAM,AAAG,GAAO,EAAG,EAAS,EAAS,GACzC,SAAM,AAAG,EAAI,EAAK,GAClB,EAAM,GAAM,EAAK,EAAO,OACjB,EAAW,AAAG,GAAK,GAAO,EAG7B,YAAe,EAAgB,GACnC,MAAO,IAAU,EAAG,EAAQ,CAAC,EAAG,GAAI,IAGhC,YAAqB,EAAgB,GACzC,MAAO,IAAU,EAAG,EAAQ,CAAC,EAAG,GAAI,IAGhC,YAAmB,EAAgB,GACvC,MAAO,IAAU,EAAG,EAAQ,CAAC,EAAG,GAAI,GAAM,SCxB5C,YAA2B,EAAwC,GAEjE,WAA6B,EAAyB,EAAoB,GACxE,KAAM,GAAU,EAAe,GACzB,EAAQ,EAAQ,OAAU,GAAa,EAAa,GAE1D,GAAI,GAAQ,GACV,KAAM,IAAI,OAAM,+BAA+B,sBAA0B,EAAQ,uBAAuB,kBAA2B,KAGrI,MAAO,AAAG,GACR,IAAM,AAAG,EACP,AAAG,GAAS,EAAS,CAAC,EAAY,EAAO,EAAY,IACrD,CAAC,EAAG,EAAG,EAAG,KAKhB,WACE,EACA,EACA,EACA,GAGA,KAAM,GAAU,EAAoB,EAAiB,EAAY,GAC3D,EAAO,AAAG,GAAS,EAAe,IAExC,SAAc,KACZ,CAAE,UAAW,GAAG,aAChB,CAAE,UAAW,GAAG,WAGX,CAAE,UAAS,QAGpB,WAAiC,EAAoB,GAEnD,KAAM,GAAU,AAAG,GAAS,EAAe,IACrC,EAAS,AAAG,GAAS,EAAe,IAE1C,SAAc,KACZ,CAAE,UAAW,GAAG,aAChB,CAAE,UAAW,GAAG,aAGX,CACL,UACA,UAIJ,WACE,EACA,EACA,EACA,GAGA,KAAM,GAAO,EAAkB,EAAiB,EAAY,EAAY,GAAG,UACrE,EAAQ,EAAwB,EAAY,GAAG,WAErD,MAAO,CAAE,OAAM,SAGjB,WACE,EACA,EACA,EACA,EACA,EAAkB,IAGlB,KAAM,GAAQ,EAAwB,GAAS,GAAM,GAAK,EAAiB,EAAY,EAAY,GAAG,WAChG,EAAQ,EAAuB,EAAiB,EAAY,EAAY,GAAG,WAEjF,MAAO,CAAE,QAAO,SAGlB,MAAO,CACL,yBACA,8BAKE,YAAwB,GAE5B,KAAM,CACJ,iBACA,uBACE,GAAsB,GAEpB,EAAgC,GAEhC,CACJ,yBACA,8BACE,GAAkB,EAAgB,GAEhC,EAAc,EAAuB,KAAM,GAAI,EAAG,eAClD,EAAW,EAA2B,KAAM,GAAI,EAAG,YACnD,EAAW,EAA2B,KAAM,GAAI,EAAG,YACnD,EAAW,EAA2B,KAAM,GAAI,EAAG,YAEnD,EAAc,EAA2B,MAAO,GAAI,EAAG,cAAe,IACtE,EAAW,EAA2B,MAAO,GAAI,EAAG,YACpD,EAAW,EAA2B,MAAO,GAAI,EAAG,YACpD,EAAW,EAA2B,MAAO,GAAI,EAAG,YAEpD,EAAe,EAA2B,OAAQ,IAAK,EAAG,eAAgB,IAC1E,EAAY,EAA2B,OAAQ,IAAK,EAAG,aACvD,EAAY,EAA2B,OAAQ,IAAK,EAAG,aAEvD,EAAe,EAA2B,OAAQ,IAAK,EAAG,eAAgB,IAC1E,EAAY,EAA2B,OAAQ,IAAK,EAAG,aACvD,EAAY,EAA2B,OAAQ,IAAK,EAAG,aACvD,EAAmB,EAA2B,OAAQ,IAAK,EAAG,oBAE9D,EAAK,AAAG,EACZ,IAAM,AAAG,EAAU,AAAG,GAAS,EAAe,IAAM,KAAM,CAAC,IAAK,MAAO,CAAC,EAAG,KAI7E,GAFA,EAAc,KAAK,CAAE,UAAW,OAE5B,IAAsB,SAAW,EACnC,KAAM,IAAI,OAAM,kCAAkC,IAAsB,UAG1E,KAAM,GAAS,CACb,cACA,WACA,WACA,WACA,cACA,WACA,WACA,WACA,eACA,YACA,YACA,eACA,YACA,YACA,mBACA,MAGF,MAAO,CAAE,SAAQ,iBCnJnB,YAA2B,EAAgB,GAEzC,KAAM,GAAqB,GAA0B,EAAW,GAEhE,WAAiC,GAE/B,KAAM,GAAU,EAAgC,GAAG,kBAAwB,GACrE,EAAS,EAAgC,GAAG,iBAAuB,GAEzE,MAAO,CAAE,UAAS,UAGpB,WAAgC,GAE9B,KAAM,GAAU,EAAgC,GAAG,iBAAuB,GACpE,EAAO,EAAgC,GAAG,cAAoB,GAC9D,EAAQ,EAAwB,GAEtC,MAAO,CAAE,KAAM,CAAE,UAAS,QAAQ,SAGpC,WAAoC,GAClC,MAAO,CACL,MAAO,EAAuB,GAAG,WACjC,MAAO,EAAuB,GAAG,YAIrC,MAAO,CACL,yBACA,8BAKE,YACJ,GAGA,KAAM,GAAgC,GAEhC,CACJ,yBACA,8BACE,GAAkB,EAAW,GAE3B,EAAc,EAAuB,eACrC,EAAW,EAA2B,YACtC,EAAW,EAA2B,YACtC,EAAW,EAA2B,YAEtC,EAAc,EAA2B,eACzC,EAAW,EAA2B,YACtC,EAAW,EAA2B,YACtC,EAAW,EAA2B,YAEtC,EAAe,EAA2B,gBAC1C,EAAY,EAA2B,aACvC,EAAY,EAA2B,aAEvC,EAAe,EAA2B,gBAC1C,EAAY,EAA2B,aACvC,EAAY,EAA2B,aACvC,EAAmB,EAA2B,oBAE9C,EAAK,EAAU,GAGrB,GAFA,EAAc,KAAK,CAAE,aAAc,KAAM,UAAW,OAEhD,CAAC,GAAW,GACd,KAAM,IAAI,OAAM,yDAAyD,KAG3E,KAAM,GAAS,CACb,cACA,WACA,WACA,WACA,cACA,WACA,WACA,WACA,eACA,YACA,YACA,eACA,YACA,YACA,mBACA,MAGF,UAA2B,EAAW,GAE/B,CAAE,SAAQ,iBC9Fb,YAAmB,EAAgB,GACvC,GAAI,GAAM,GAAK,EAAG,EAAO,OACzB,SAAM,GAAW,EAAK,EAAO,OAC7B,EAAM,AAAG,EAAI,EAAK,GAClB,EAAM,AAAG,GAAK,GACP,EAGH,YAAuB,EAAgB,GAC3C,GAAI,GAAM,GAAS,EAAG,EAAO,OAC7B,EAAM,GAAW,EAAK,EAAO,OAE7B,GAAI,GAAS,AAAG,GAAQ,EAAG,EAAG,EAAG,SACjC,KAAM,GAAQ,AAAG,GAAkB,EAAO,OACpC,EAAQ,EAAO,MAAM,KAAO,EAAI,MAAM,GACtC,EAAgB,EAAO,MAAM,KAAO,EAAI,MAAM,IAAM,EAAO,MAAM,KAAO,EAAI,MAAM,GAExF,GAAI,GACF,KAAM,GAAY,CAAC,GAAG,EAAI,OAC1B,EAAU,GAAK,EACf,KAAM,GAAS,AAAG,GAAkB,GACpC,EAAM,AAAG,EAAO,CAAC,EAAK,GAAS,GAE/B,KAAM,GAAY,CAAC,GAAG,EAAI,OAC1B,EAAU,GAAK,EACf,KAAM,GAAS,AAAG,GAAkB,GACpC,EAAM,AAAG,EAAO,CAAC,EAAK,GAAS,GAGjC,SAAS,EAAQ,AAAG,EAAO,CAAC,EAAQ,GAAQ,GAAK,EACjD,EAAM,AAAG,EAAI,EAAQ,GAErB,EAAM,AAAG,GAAK,GACP,ECpCT,SAAgD,SAFhD,gBAYwC,IAEtC,cACE,MAAM,sBAGD,aAAa,GAElB,KAAM,CAAE,UAAW,KAEnB,GAAI,CAAC,EACH,KAAM,IAAI,OAAM,oDAGlB,MAAO,AAAG,GAAK,KACb,KAAM,GAAc,EAAM,cAAc,IAAK,IAAM,UAE7C,EAAU,CAAC,QAAS,QAAS,SAC7B,EAAa,GAAU,EAAa,GAAS,IAAI,AAAG,EAAO,MAEjE,GAAI,GAAM,GAAS,EAAY,EAAO,aACtC,EAAM,AAAG,GAAQ,EAAK,EAAG,EAAG,SAE5B,EAAM,GAAS,EAAK,EAAO,UAC3B,EAAM,GAAS,EAAK,EAAO,UAC3B,EAAM,GAAS,EAAK,EAAO,UAE3B,EAAM,GAAa,EAAK,EAAO,aAC/B,EAAM,GAAS,EAAK,EAAO,UAC3B,EAAM,GAAS,EAAK,EAAO,UAC3B,EAAM,GAAS,EAAK,EAAO,UAE3B,EAAM,GAAa,EAAK,EAAO,cAC/B,EAAM,GAAS,EAAK,EAAO,WAC3B,EAAM,GAAS,EAAK,EAAO,WAE3B,EAAM,GAAa,EAAK,EAAO,cAC/B,EAAM,GAAS,EAAK,EAAO,WAC3B,EAAM,GAAS,EAAK,EAAO,WAC3B,EAAM,GAAa,EAAK,EAAO,kBAE/B,KAAM,GAAY,EAAI,KAAK,CAAC,EAAG,IACzB,EAAiB,AAAG,EAAO,EAAW,EAAO,IAEnD,MAAO,UAIE,SAAQ,GACnB,MAAO,MAAK,aAAa,KAAM,eAAW,SAG/B,uBAAsB,GACjC,KAAM,GAAW,KAAM,eAAW,GAE5B,EAAwB,AAAG,EAC/B,IAAM,AAAG,GAAQ,KAAK,aAAa,KAG/B,EAA0B,KAAM,SAAQ,IAAI,EAAsB,IACtE,GAAK,EAAE,SAGT,SAAsB,QAAQ,GAAK,EAAE,WAE9B,EAAS,aACZ,EACA,EAAwB,GAGpB,sBACR,MAAO,yBAGC,2BAA2B,GACnC,MAAO,IAA2B,GAG1B,cAAc,GACtB,MAAO,IAAc,ICvFnB,YAAmC,GACvC,KAAM,GAAM,GAAI,MAChB,SAAI,eAAe,GACZ,ECHH,YAGJ,EACA,GAGA,KAAM,GAAY,CAAE,cACpB,MAAO,QAAO,OAAO,GAAI,EAAW,GCRhC,YAAoB,GACxB,MAAO,OAAO,GAAI,KAAW,SAGzB,YAGJ,EACA,GAGA,KAAM,GAAY,CAAE,OACpB,MAAO,QAAO,OAAO,GAAI,EAAW,GCRhC,YAAuB,GAC3B,MAAQ,GAAI,SAAc,GAAO,MAAQ,EAAI,SAAc,GAAO,SAC7D,GAAmB,EAAI,mBAGxB,YAGJ,EACA,EACA,GAGA,KAAM,GAAY,CAAE,SAAQ,qBAC5B,MAAO,QAAO,OAAO,GAAI,EAAW,GCtBtC,cAEe,MACX,GAEA,MAAO,GAAY,KAAM,MAAK,YAGnB,OACX,KAAM,IAAI,OAAM,4CCNpB,SAA4D,SAI5D,kBACE,EACA,EACA,EACA,EACA,EAAwF,CAAC,CAAE,iBAAkB,GAE7G,KAAM,GAAY,EAAc,IAAI,GAClC,GAAoB,GAChB,EAAoB,GACpB,EAAa,WAEb,EAAgD,GACpD,aAAoB,IAChB,KAAM,uBAAmB,EAAO,GAChC,KAAM,iBAAa,EAAO,IAG1B,EAAU,KAAM,GAAe,GAErC,SAAM,QAAQ,GAAK,YAAgB,KAAU,EAAE,WAExC,EAGT,kBACE,EACA,EACA,EACA,EACA,GAEA,MAAO,IACL,CAAC,GACD,EACA,KAAM,IAAS,EAAc,EAAM,IACnC,EACA,GC/BJ,KAAM,IAAW,AAAC,GAAa,MAAO,IAAQ,SAExC,YAAyB,GAC7B,GAAI,CAAC,EACH,KAAM,IAAI,OAAM,mBAAmB,KAGrC,GAAI,MAAO,GAAO,oBAAuB,UACvC,KAAM,IAAI,OAAM,wDAAwD,EAAO,sBAGjF,GAAI,CAAC,GAAS,EAAO,eAAiB,EAAO,aAAe,GAAK,EAAO,aAAe,EACrF,KAAM,IAAI,OAAM,gEAAgE,EAAO,gBAGzF,GACE,CAAC,MAAM,QAAQ,EAAO,UACnB,CAAC,EAAO,QAAQ,QAChB,CAAC,EAAO,QAAQ,MAAM,AAAC,GAAW,MAAO,IAAM,UAGlD,KAAM,IAAI,OAAM,kEAAkE,KAAK,UAAU,EAAO,YAG1G,GACE,CAAC,MAAM,QAAQ,EAAO,UACnB,CAAC,EAAO,QAAQ,QAChB,CAAC,EAAO,QAAQ,IAAI,AAAC,GAAW,GAAK,IAAI,MAAM,AAAC,GAAW,GAAS,EAAE,IAAM,GAAS,EAAE,IAG1F,KAAM,IAAI,OAAM,wEAAwE,KAAK,UAAU,EAAO,YAGhH,GAAI,EAAO,SACT,EAAC,MAAM,QAAQ,EAAO,UACnB,EAAO,QAAQ,SAAW,GAC1B,CAAC,EAAO,QAAQ,MAAM,KAGzB,KAAM,IAAI,OAAM,8EAA8E,KAAK,UAAU,EAAO,YClDlH,YAAgB,GACpB,MAAO,AAAG,GAAK,KACb,KAAM,GAAM,AAAG,EAAI,EAAG,AAAG,EAAO,qBAChC,MAAO,AAAG,GAAI,AAAG,GAAK,AAAG,EAAI,EAAG,IAAO,KCArC,YAA4B,EAAgB,GAChD,MAAO,AAAG,GAAK,KACb,GAAI,GAAM,AAAG,GAAI,EAAG,CAAC,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,KAEjD,SAAM,AAAG,GAAO,EAAK,EAAO,KAAK,QAAS,CAAC,EAAG,GAAI,SAClD,EAAM,AAAG,EAAI,EAAK,EAAO,GAAG,KAC5B,EAAM,AAAG,EAAI,EAAK,EAAO,GAAG,SAC5B,EAAM,AAAG,EAAI,EAAK,EAAO,KAAK,MAEvB,GAAM,KCTX,YAAiC,EAAgB,GACrD,MAAO,AAAG,GAAK,KACb,GAAI,GAAM,AAAG,GAAI,EAAG,CAAC,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,KAEjD,SAAM,AAAG,GAAgB,EAAK,EAAO,iBAAkB,EAAO,iBAAkB,CAAC,EAAG,GAAI,SACxF,EAAM,AAAG,EAAI,EAAK,EAAO,MAElB,GAAM,KCHjB,YAA2B,EAAwC,GAEjE,KAAM,GAAoB,GAAyB,EAAgB,GAEnE,WAAgC,EAAc,GAE5C,KAAM,GAAM,AAAG,GAAS,EAAe,IACjC,EAAU,AAAG,GAAS,EAAe,IAE3C,SAAc,KACZ,CAAE,UAAW,GAAG,SAChB,CAAE,UAAW,GAAG,cAGX,CAAE,MAAK,WAGhB,WAAwC,EAAoB,EAAqB,GAE/E,KAAM,GAAO,EAAkB,EAAY,EAAa,EAAG,GAAG,UACxD,EAAK,EAAuB,EAAa,GAAG,QAElD,MAAO,CAAE,OAAM,MAEjB,KAAM,GAA6B,GAAkC,EAAgB,GAErF,MAAO,CACL,oBACA,iCACA,8BAKE,YACJ,EACA,EACA,EACA,GAGA,KAAM,CACJ,iBACA,uBACE,GAAsB,GAEpB,EAAgC,GAEhC,CACJ,oBACA,iCACA,8BACE,GAAkB,EAAgB,GAEtC,GAAI,GAEJ,GAAI,EAAO,oBACT,KAAM,CAAC,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,GAAM,EAEvC,EAAQ,EAAO,mBACjB,EAAkB,EAAI,EAAI,EAAG,SAC7B,EAA2B,EAAI,EAAI,SACjC,EAAQ,EAA2B,EAAI,EAAI,SAC3C,EAAQ,EAA2B,EAAI,EAAI,SAC3C,EAAQ,EAA2B,EAAI,EAAI,SAC3C,EAAQ,EAA2B,EAAI,EAAI,SAC3C,EAAQ,EAA2B,EAAI,EAAI,SAC3C,EAAQ,EAAK,EAA2B,EAAI,EAAI,SAAW,OAC3D,GAAQ,EAAK,EAA2B,EAAI,EAAI,SAAW,OAC3D,GAAQ,EAAkB,GAAM,GAAM,EAAI,EAAI,EAAiB,EAAG,SACxE,EAAS,CAAE,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,SAAO,eAEnE,KAAM,CAAC,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,GAAM,EACvC,EAAQ,EAA+B,EAAI,EAAI,SAC/C,EAAQ,EAA+B,EAAI,EAAI,SAC/C,EAAQ,EAA+B,EAAI,EAAI,SAC/C,EAAQ,EAA+B,EAAI,EAAI,SAC/C,EAAQ,EAA+B,EAAI,EAAI,SAC/C,EAAQ,EAA+B,EAAI,EAAI,SAC/C,EAAQ,EAA+B,EAAI,EAAI,SAC/C,GAAQ,EAA+B,EAAI,EAAI,SAC/C,GAAQ,EAAkB,EAAI,EAAI,EAAiB,EAAG,SAC5D,EAAS,CAAE,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,SAAO,UAGrE,GAAI,IAAsB,SAAW,EACnC,KAAM,IAAI,OAAM,kCAAkC,IAAsB,UAI1E,MAAO,CAAE,SAAQ,iBCzFnB,YAA2B,EAAgB,GAEzC,KAAM,GAAqB,GAA0B,EAAW,GAEhE,WAAgC,GAC9B,KAAM,GAAM,EAAgC,GAAG,QAAc,GACvD,EAAU,EAAgC,GAAG,YAAkB,GACrE,MAAO,CAAE,MAAK,WAGhB,WAA2B,GACzB,KAAM,GAAU,EAAgC,GAAG,YAAkB,GAC/D,EAAO,EAAgC,GAAG,SAAe,GAC/D,MAAO,CAAE,UAAS,QAGpB,WAAwC,GACtC,KAAM,GAAO,EAAkB,GAAG,UAC5B,EAAK,EAAuB,GAAG,QACrC,MAAO,CAAE,OAAM,MAGjB,KAAM,GAA6B,GAA+B,GAElE,MAAO,CACL,oBACA,iCACA,8BAKE,YACJ,EACA,GAGA,KAAM,GAAgC,GAEhC,CACJ,oBACA,iCACA,8BACE,GAAkB,EAAW,GAEjC,GAAI,GAEJ,GAAI,EAAO,oBACT,KAAM,GAAc,EAAO,aAAe,EAAO,YAAY,QAAU,EACvE,EAAS,CACP,MAAO,EAAO,mBAAqB,EAAkB,SAAW,EAA2B,SAC3F,MAAO,EAA2B,SAClC,MAAO,EAA2B,SAClC,MAAO,EAA2B,SAClC,MAAO,EAA2B,SAClC,MAAO,EAA2B,SAClC,MAAO,EAAa,EAAI,EAA2B,SAAW,OAC9D,MAAO,EAAa,EAAI,EAA2B,SAAW,OAC9D,MAAO,EAAkB,cAG3B,GAAS,CACP,MAAO,EAA+B,SACtC,MAAO,EAA+B,SACtC,MAAO,EAA+B,SACtC,MAAO,EAA+B,SACtC,MAAO,EAA+B,SACtC,MAAO,EAA+B,SACtC,MAAO,EAA+B,SACtC,MAAO,EAA+B,SACtC,MAAO,EAAkB,UAI7B,UAA2B,EAAW,GAE/B,CAAE,SAAQ,iBCtFnB,GAAY,IAAZ,AAAA,UAAY,GACV,EAAA,EAAA,GAAA,KAAA,KACA,EAAA,EAAA,GAAA,KAAA,KACA,EAAA,EAAA,GAAA,KAAA,KACA,EAAA,EAAA,GAAA,KAAA,OAJU,IAAA,IAAkB,KAA9B,SAkBE,YAAY,CAAE,YAAW,kBAAuC,IAI9D,GATQ,KAAA,MAAgB,oBAMxB,KAAK,WAAa,GAAa,IAC/B,KAAK,gBAAkB,GAAkB,GAErC,MAAO,MAAK,YAAe,UAAY,KAAK,WAAa,KAAO,EAClE,KAAM,IAAI,OAAM,GAAG,KAAK,6DAG1B,GAAI,MAAO,MAAK,iBAAoB,UAAY,KAAK,iBAAmB,GAAK,KAAK,iBAAmB,EACnG,KAAM,IAAI,OAAM,GAAG,KAAK,qEAIxB,aAAsB,MAAO,MAAK,cAClC,kBAA2B,MAAO,MAAK,iBCzB7C,SAA2B,SAP3B,gBAuBoC,IAQlC,YAAY,GACV,MAAM,cACN,GAAe,GACf,KAAK,QAAU,KAGN,UACT,MAAO,MAAK,WAGH,mBACT,MAAO,MAAK,OAAO,iBAAmB,KAAK,OAAO,QAAQ,OAAS,KAG1D,mBACT,MAAO,GAAK,MAAK,gBAAkB,KAAK,OAAO,QAAQ,OAAS,GAG3D,cAAc,EAAgB,GAEnC,GAAI,GAAM,GAAkB,EAAG,EAAO,OACtC,SAAM,AAAG,GAAQ,EAAK,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,QACtC,EAAM,GAAkB,EAAK,EAAO,OACpC,EAAM,AAAG,GAAQ,EAAK,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,QACtC,EAAM,GAAkB,EAAK,EAAO,OACpC,EAAM,AAAG,GAAQ,EAAK,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,QACtC,EAAM,GAAkB,EAAK,EAAO,OACpC,EAAM,AAAG,GAAQ,EAAK,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,QACtC,EAAM,GAAkB,EAAK,EAAO,OACpC,EAAM,AAAG,GAAQ,EAAK,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,QACtC,EAAM,GAAkB,EAAK,EAAO,OACpC,EAAM,AAAG,GAAQ,EAAK,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,QACtC,EAAM,GAAkB,EAAK,EAAO,OACpC,EAAM,GAAkB,EAAK,EAAO,OAE7B,GAAU,EAAK,EAAO,MAAO,QAAS,IAGxC,aAAa,EAAgB,GAElC,GAAI,GAAM,KAAK,OAAO,mBAClB,GAAM,GAAU,EAAG,EAAO,MAAqB,QAAS,KACxD,GAAuB,EAAG,EAAO,OACrC,SAAM,AAAG,GAAQ,EAAK,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,QACtC,EAAM,GAAuB,EAAK,EAAO,OACzC,EAAM,AAAG,GAAQ,EAAK,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,QACtC,EAAM,GAAuB,EAAK,EAAO,OACzC,EAAM,AAAG,GAAQ,EAAK,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,QACtC,EAAM,GAAuB,EAAK,EAAO,OACzC,EAAM,AAAG,GAAQ,EAAK,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,QACtC,EAAM,GAAuB,EAAK,EAAO,OACzC,EAAM,AAAG,GAAQ,EAAK,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,QACtC,EAAM,GAAuB,EAAK,EAAO,OACzC,EAAM,AAAG,GAAQ,EAAK,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,QACtC,EAAM,EAAO,MAAQ,GAAuB,EAAK,EAAO,OAAS,EACjE,EAAM,EAAO,MAAQ,GAAuB,EAAK,EAAO,OAAS,EAE1D,GAAU,EAAK,EAAO,MAAO,QAAS,IAGxC,aAAa,EAAiB,GAEnC,KAAM,CAAE,UAAW,KAEnB,GAAI,CAAC,EACH,KAAM,IAAI,OAAM,4CAGlB,MAAO,AAAG,GAAK,KAEb,GAAI,GAAc,EAAM,cAAc,EAAW,IAAO,UACxD,SAAc,KAAK,OAAO,QACtB,GAAU,EAAa,KAAK,OAAO,SACnC,EACJ,EAAc,EAAY,IAAI,AAAG,EAAO,MAEjC,KAAK,OAAO,mBACf,KAAK,aAAa,EAAa,GAC/B,KAAK,cAAc,EAAa,UAI3B,SAAQ,EAAkB,GACrC,MAAO,MAAM,MAAK,aAAa,KAAM,eAAW,GAAQ,QAG7C,QAAO,EAAkB,EAAoC,IAExE,KAAM,CAAE,YAAW,kBAAmB,GAAI,IAAkB,GAEtD,EAAW,KAAM,eAAW,GAC5B,EAAM,KAAM,MAAK,aAAa,EAAU,GACxC,EAAO,AAAG,EAAK,IAAM,AAAG,GAAQ,GAAK,GAAG,cAExC,EAAkB,CACtB,MAAO,EAAS,cAAc,GAC9B,OAAQ,EAAS,eAAe,IAG5B,EAAU,KAAM,MAAK,aAAa,EAAM,EAAS,2BAA2B,GAAI,GACtF,EAAI,UACJ,EAAK,UAEL,KAAM,GAAQ,EAAQ,IAAI,GAAO,EAAI,KAC/B,EAAS,EAAQ,IAAI,GAAO,EAAI,OAChC,EAAc,EAAQ,IAAI,GAAO,EAAI,YACrC,EAAa,EAAQ,IAAI,GAAO,KAAK,OAAO,QAAQ,EAAI,QAExD,EAAU,GACd,EAAM,IAAI,GAAO,EAAI,QAAQ,IAC7B,EACA,KAAK,OAAO,aACZ,IAGI,EAAa,EAAQ,IAAI,GAC7B,GAAI,IACF,EAAO,GACP,EAAY,GACZ,EAAW,GACX,EAAM,GACN,IAIJ,MAAO,GAGC,sBACR,MAAO,GAGC,2BAA2B,GACnC,MAAO,IAA2B,EAAW,KAAK,QAG1C,cAAc,GACtB,KAAM,GAAc,KAAK,OAAO,aAAe,GAAe,qBAExD,EAAa,EAAc,EAAY,OAAS,OACtD,GAAI,IAAe,GAAK,IAAe,GAAK,IAAe,EACzD,KAAM,IAAI,OAAM,oEAAoE,2BAEtF,MAAO,IAAc,EAAS,KAAK,OAAQ,KAAK,gBAAiB,QAGnD,cACd,EACA,EACA,GAGA,KAAM,CAAE,QAAO,UAAW,EACpB,EAAY,KAAK,IAAI,EAAO,GAC5B,EAAoB,EAAY,EAChC,EAAoB,EAAY,EAEhC,EAAW,EAAa,MAAM,GAC9B,EAAW,KAAK,OAAO,QAAQ,OAE/B,CAAC,EAAa,EAAc,GAAqB,AAAG,EAAK,KAC7D,KAAM,GAAW,EAAa,QAAQ,CAAC,EAAU,EAAU,EAAU,KAAK,kBAEpE,EAAQ,EAAS,MAAM,CAAC,EAAG,EAAG,EAAG,GAAI,CAAC,EAAU,EAAU,EAAU,IACpE,EAAS,EAAS,MAAM,CAAC,EAAG,EAAG,EAAG,GAAI,CAAC,EAAU,EAAU,EAAU,IACrE,EAAc,KAAK,gBACrB,AAAG,GAAQ,EAAS,MAAM,CAAC,EAAG,EAAG,EAAG,GAAI,CAAC,EAAU,EAAU,EAAU,KAAK,OAAO,QAAQ,SAAU,GACrG,AAAG,EAAO,GACd,MAAO,CAAC,EAAO,EAAQ,KAGnB,EAAU,GAEV,EAAa,KAAM,GAAa,QAChC,EAAY,KAAM,GAAY,QACpC,OAAS,GAAM,EAAG,EAAM,EAAU,IAChC,OAAS,GAAM,EAAG,EAAM,EAAU,IAChC,OAAS,GAAS,EAAG,EAAS,EAAU,KAEtC,KAAM,GAAQ,GAAQ,EAAW,GAAK,GAAK,GAAQ,IACnD,GAAI,CAAC,GAAkB,EAAQ,GAC7B,KAAM,GAAQ,GAAM,GAAQ,EAAU,GAAK,GAAK,GAAQ,KAAO,EAAY,EACrE,EAAQ,GAAM,GAAQ,EAAU,GAAK,GAAK,GAAQ,KAAO,EAAY,EACrE,EAAU,KAAK,IAAI,EAAU,GAAK,GAAK,GAAQ,IAAM,KAAK,OAAO,QAAQ,GAAQ,EAAK,EAAY,EAClG,EAAW,KAAK,IAAI,EAAU,GAAK,GAAK,GAAQ,IAAM,KAAK,OAAO,QAAQ,GAAQ,EAAK,EAAY,EAEnG,EAAK,EAAO,EAAQ,EACpB,EAAK,EAAO,EAAS,EAErB,EAAM,CAAE,MAAK,MAAK,UAClB,CAAE,cAAY,UAAU,KAAK,gBAC/B,KAAM,MAAK,sBAAsB,EAAkC,GACnE,CAAE,WAAY,EAAG,MAAO,GAE5B,EAAQ,KAAK,CACX,IAAK,GAAI,IAAY,EAAG,EAAG,EAAI,EAAO,EAAI,GAC1C,MAAO,EACP,WAAY,EAAQ,GACpB,YACG,KAOb,SAAY,UACZ,EAAa,UACb,EAAkB,UAEX,OAGK,uBAAsB,EAA4B,GAC9D,KAAM,CAAE,MAAK,MAAK,UAAW,EACvB,EAAc,KAAM,GAAc,QACxC,MAAO,OAAM,KAAK,OAAO,QAAQ,QAAQ,KAAK,GAC3C,IAAI,CAAC,EAAG,IAAM,EAAY,GAAK,GAAK,GAAQ,IAC5C,IAAI,CAAC,EAAY,IAAW,EAC3B,aACA,WAED,OAAO,CAAC,EAAK,IAAS,EAAI,WAAa,EAAK,WAAa,EAAM,IApOtD,GAAA,qBAAuB,CACnC,EAAG,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,KAAM,MCxBjC,KAAM,IAAgB,GAEhB,GAAc,CACzB,GAAI,GAAM,SAAU,UACpB,GAAI,GAAM,SAAU,UACpB,GAAI,GAAM,SAAU,UACpB,GAAI,GAAM,SAAU,UACpB,GAAI,GAAM,SAAU,WAGT,GAAqC,CAAC,QAAS,QAAS,QCVrE,gBAQsC,IAEpC,cACE,KAAM,GAAS,CACb,mBAAoB,GACpB,aAAc,GACd,QAAS,CAAC,QACV,QAAS,GACT,QAAS,GACT,mBAAoB,GACpB,YAAa,CAAC,EAAG,GAAI,GAAI,GAAI,IAAK,IAAK,MAGzC,MAAM,MAGG,WACT,MAAO,MAAK,OAAO,aAGR,aAAY,EAAkB,GACzC,KAAM,GAAmB,KAAM,MAAK,OAAO,EAAO,GAClD,MAAO,GAAiB,IAAI,GAAO,GAAI,IAAc,EAAI,MAAO,EAAI,YAAa,CAAE,MAAO,EAAI,WAAY,OAAQ,EAAI,eAG9G,sBACR,MAAO,2BAGC,2BAA2B,GACnC,MAAO,OAAM,2BAA2B,ICtCrC,KAAM,IAAgB,GAEhB,GAAc,CACzB,GAAI,GAAM,QAAU,SACpB,GAAI,GAAM,QAAS,SACnB,GAAI,GAAM,QAAS,SACnB,GAAI,GAAM,OAAQ,SAClB,GAAI,GAAM,QAAS,UAGR,GAAwB,CACnC,GAAI,GAAM,SAAU,UACpB,GAAI,GAAM,SAAU,UACpB,GAAI,GAAM,SAAU,UACpB,GAAI,GAAM,SAAU,UACpB,GAAI,GAAM,SAAU,WAGT,GAA+C,CAAC,QAAS,QAAS,QAElE,GAAqB,oBACrB,GAAoC,mCCrBjD,gBAegC,IAE9B,YAAY,EAA8B,IACxC,KAAM,GAAS,OAAO,OAAO,GAAI,CAC/B,qBACA,aAAc,GACd,QAAS,CAAC,SAEZ,EACI,CACA,QAAS,GACT,QAAS,IAET,CACA,QAAS,GACT,gBAAiB,KAIrB,MAAM,MAGG,sBACT,MAAO,MAAK,OAAO,sBAGV,WACT,MAAO,MAAK,OAAO,aAGR,aAAY,EAAkB,GACzC,KAAM,GAAmB,KAAM,MAAK,OAAO,EAAO,GAClD,MAAO,GAAiB,IAAI,GAAO,GAAI,IAAc,EAAI,MAAO,EAAI,YAAa,CAAE,MAAO,EAAI,WAAY,OAAQ,EAAI,eAG9G,sBACR,MAAO,MAAK,mBAAqB,GAAoC,GAG7D,2BAA2B,GACnC,MAAO,OAAM,2BAA2B,IC1C5C,SAA+C,SAElC,GAAO,CAClB,iBAAkB,GAAI,MACtB,WAAY,GAAI,iBAChB,kBAAmB,GAAI,MACvB,sBAAuB,GAAI,MAC3B,mBAAoB,GAAI,MACxB,kBAAmB,GAAI,MACvB,aAAc,GAAI,OAUP,GAAmB,CAAC,EAAkB,IACjD,GAAK,iBAAiB,YAAY,EAAO,GAS9B,GAAsB,AAAC,GAClC,GAAK,kBAAkB,gBAAgB,GAW5B,GAA0B,AAAC,GACtC,GAAK,sBAAsB,gBAAgB,GAYhC,GAAwB,AAAC,GACpC,GAAK,mBAAmB,sBAAsB,GAUnC,GAA2B,AAAC,GACvC,GAAK,kBAAkB,mBAAmB,GAS/B,GAAsB,AAAC,GAClC,GAAK,aAAa,oBAAoB,GAE3B,GAA4B,AAAC,GAAgB,GAAK,iBAAiB,KAAK,GACxE,GAAsB,AAAC,GAAgB,GAAK,WAAW,KAAK,GAC5D,GAAwB,AAAC,GAAgB,GAAK,kBAAkB,KAAK,GACrE,GAA4B,AAAC,GAAgB,GAAK,sBAAsB,KAAK,GAC7E,GAA2B,AAAC,GAAgB,GAAK,mBAAmB,KAAK,GACzE,GAA0B,AAAC,GAAgB,GAAK,kBAAkB,KAAK,GACvE,GAAqB,AAAC,GAAgB,GAAK,aAAa,KAAK,GAG7D,GAAyB,GACzB,GAAc,GACd,GAAkB,GCnG/B,gBAa4E,IAC1E,YACY,EACA,EACA,GAEV,QAJU,KAAA,WAAA,EACA,KAAA,MAAA,EACA,KAAA,eAAA,GAjBd,gBAyBU,SAEK,OAEX,KAAM,GAAgB,KAAM,MAAK,WAE3B,EAAwB,KAAM,IAClC,EACA,KAAK,MACL,KAAM,IAAS,KAAM,SAAQ,IAAI,EAAM,IACrC,GAAQ,GAAK,kBAAkB,mBAAmB,KAEpD,KAAK,gBAGP,MAAO,GAAc,IACnB,CAAC,EAAc,IAAM,GAAmC,EAAc,EAAsB,KAIhG,mBACE,MAAO,IAAI,IAA2B,KAAM,KAAK,QA9CrD,gBAoDW,SAEI,OAEX,KAAM,GAAe,KAAM,MAAK,WAChC,GAAI,CAAC,EACH,OAGF,KAAM,GAAkB,KAAM,IAC5B,EACA,KAAK,MACL,GAAQ,GAAK,kBAAkB,mBAAmB,GAClD,KAAK,gBAGP,MAAO,IAA0B,EAAc,GAGjD,mBACE,MAAO,IAAI,IAA8B,KAAM,KAAK,QAxExD,gBA8EU,IAER,mBACE,MAAO,IAAI,IAA4C,KAAM,KAAK,OAGpE,sBACE,MAAO,IAAI,IAA8B,KAAM,KAAK,QArFxD,gBA2FU,IAER,mBACE,MAAO,IAAI,IAA+C,KAAM,KAAK,OAGvE,qBACE,MAAO,IAAI,IAAgC,KAAM,KAAK,QCnG1D,gBAeyE,IACvE,YACY,EACA,EACA,GAEV,QAJU,KAAA,WAAA,EACA,KAAA,MAAA,EACA,KAAA,eAAA,GAnBd,gBA2BU,SAEK,OAEX,KAAM,GAAgB,KAAM,MAAK,WAE3B,EAAqB,KAAM,IAC/B,EACA,KAAK,MACL,KAAM,IAAS,KAAM,SAAQ,IAAI,EAAM,IACrC,GAAQ,GAAK,aAAa,oBAAoB,KAEhD,KAAK,gBAGP,MAAO,GAAc,IAAI,CAAC,EAAc,KACtC,KAAM,CAAE,MAAK,SAAQ,qBAAsB,EAAmB,GAC9D,MAAO,IAAc,GAAiB,EAAc,EAAQ,GAAoB,KAIpF,sBACE,MAAO,IAAI,IAA8B,KAAM,KAAK,QAjDxD,gBAuDW,SAEI,OAEX,KAAM,GAAe,KAAM,MAAK,WAChC,GAAI,CAAC,EACH,OAGF,KAAM,CAAE,MAAK,SAAQ,qBAAsB,KAAM,IAC/C,EACA,KAAK,MACL,GAAQ,GAAK,aAAa,oBAAoB,GAC9C,KAAK,gBAGP,MAAO,IAAc,GAAiB,EAAc,EAAQ,GAAoB,GAGlF,sBACE,MAAO,IAAI,IAAiC,KAAM,KAAK,QA3E3D,gBAiFU,IAER,sBACE,MAAO,IAAI,IAA+C,KAAM,KAAK,OAGvE,sBACE,MAAO,IAAI,IAA8B,KAAM,KAAK,QAxFxD,gBA8FU,IAER,sBACE,MAAO,IAAI,IAAkD,KAAM,KAAK,OAG1E,qBACE,MAAO,IAAI,IAAgC,KAAM,KAAK,QCxG1D,gBAe4E,IAC1E,YACY,EACA,GAEV,QAHU,KAAA,WAAA,EACA,KAAA,MAAA,GAlBd,gBA0BU,SAEK,OAEX,KAAM,GAAgB,KAAM,MAAK,WAE3B,EAAc,KAAM,IACxB,EACA,KAAK,MACL,GAAS,QAAQ,IAAI,EAAM,IAAI,GAC7B,GAAK,mBAAmB,sBAAsB,KAEhD,KACA,GAAgB,EAAa,UAAU,MAAM,KAAM,CAAE,iBAAkB,MAGzE,MAAO,GAAY,IAAI,CAAC,EAAY,IAAM,GAAkC,EAAc,GAAI,IAGhG,sBACE,MAAO,IAAI,IAA+C,KAAM,KAAK,OAGvE,mBACE,MAAO,IAAI,IAA4C,KAAM,KAAK,QAlDtE,gBAwDU,SAEK,OAEX,KAAM,GAAe,KAAM,MAAK,WAChC,GAAI,CAAC,EACH,OAEF,KAAM,GAAa,KAAM,IACvB,EACA,KAAK,MACL,GAAQ,GAAK,mBAAmB,sBAAsB,GACtD,KACA,GAAgB,EAAa,UAAU,MAAM,KAAM,CAAE,iBAAkB,MAGzE,MAAO,IAAyB,EAAc,GAGhD,sBACE,MAAO,IAAI,IAAkD,KAAM,KAAK,OAG1E,mBACE,MAAO,IAAI,IAA+C,KAAM,KAAK,QCjFzE,SAAsD,SAAtD,gBAI6C,sBAA7C,kCACY,KAAA,MAAgB,2BCF5B,SAA4D,SAH5D,gBAoByE,IACvE,YACY,EACA,EACA,GAEV,QAJU,KAAA,WAAA,EACA,KAAA,MAAA,EACA,KAAA,mBAAA,KAKE,eACZ,MAAO,MAAK,mBACR,GAAK,sBACL,GAAK,mBAhCb,gBAsCU,SAEK,OAEX,KAAM,GAAgB,KAAM,MAAK,WAC3B,EAAa,EAAc,IAAI,GAAO,EAAI,WAE1C,EAAgD,KAAK,gBAAoB,IAC3E,KAAM,uBAAmB,KAAK,MAAO,GACrC,KAAM,iBAAa,KAAK,MAAO,GAE7B,EAAsB,KAAM,SAAQ,IAAI,EAAM,IAClD,GAAQ,KAAK,YAAY,gBAAgB,KAG3C,SAAM,QAAQ,GAAK,YAAgB,KAAU,EAAE,WAExC,EAAc,IAAI,CAAC,EAAc,IACtC,GAAiC,EAAc,EAAoB,KAIvE,sBACE,MAAO,IAAI,IAA+C,KAAM,KAAK,OAGvE,mBACE,MAAO,IAAI,IAA4C,KAAM,KAAK,OAGpE,sBACE,MAAO,IAAI,IAA8B,KAAM,KAAK,QArExD,gBA2EW,SAEI,OAEX,KAAM,GAAe,KAAM,MAAK,WAChC,GAAI,CAAC,EACH,OAGF,KAAM,CAAE,aAAc,EAChB,EAAgD,KAAK,gBAAoB,IAC3E,KAAM,uBAAmB,KAAK,MAAO,CAAC,IACtC,KAAM,iBAAa,KAAK,MAAO,CAAC,IAE9B,EAAY,KAAM,MAAK,YAAY,gBAAgB,EAAM,IAE/D,SAAM,QAAQ,GAAK,YAAgB,KAAU,EAAE,WAExC,GAAiC,EAAc,GAGxD,sBACE,MAAO,IAAI,IAAkD,KAAM,KAAK,OAG1E,mBACE,MAAO,IAAI,IAA+C,KAAM,KAAK,OAGvE,qBACE,MAAO,IAAI,IAAgC,KAAM,KAAK,QCvG1D,gBASkD,IAChD,YACY,EACA,EAAgC,GAAI,OAE9C,QAHU,KAAA,MAAA,EACA,KAAA,QAAA,GAZd,gBAkBwC,SAEzB,OAEX,KAAM,CAAE,QAAO,WAAY,KAGrB,EAAwB,YAAmB,IAC7C,AAAC,GAAqB,GAAK,iBAAiB,YAAY,EAAO,GAC/D,KAEJ,GAAI,CAAC,EACH,KAAM,IAAI,OAAM,uIAGlB,MAAO,GAAsB,GAGvB,iCACN,MAAO,IAAI,SAAiC,KAAM,KAChD,KAAM,GAAa,KAAM,MAAK,MAC9B,MAAO,GAAI,EAAW,IAAI,GAAa,GAAwB,GAAI,OAIvE,kBAAkB,EAA8B,IAC9C,MAAO,IAAI,IACT,KAAK,iCACL,KAAK,MACL,GAIJ,sBACE,MAAO,IAAI,IACT,KAAK,iCACL,KAAK,OAIT,mBACE,MAAO,IAAI,IACT,KAAK,iCACL,KAAK,QA7DX,gBAkE0C,SAE3B,OACX,KAAM,GAAiB,KAAM,IAAI,IAAmB,KAAK,MAAO,KAAK,SACrE,GAAI,GAAgC,EAAe,GACnD,SAAe,QAAQ,IACrB,AAAI,EAAc,MAAQ,EAA8B,OACtD,GAAgC,KAG7B,EAGD,gCACN,MAAO,IAAI,SAA+B,KAAM,KAC9C,KAAM,GAAY,KAAM,MAAK,MAC7B,MAAO,GAAI,EAAY,GAA4B,GAAI,GAAa,UAIxE,kBAAkB,EAA8B,IAC9C,MAAO,IAAI,IACT,KAAK,gCACL,KAAK,MACL,GAIJ,sBACE,MAAO,IAAI,IACT,KAAK,gCACL,KAAK,OAIT,mBACE,MAAO,IAAI,IACT,KAAK,gCACL,KAAK,QCpGL,YACJ,EACA,EAAgC,GAAI,OAEpC,MAAO,IAAI,IAAqB,EAAO,GAGnC,YACJ,EACA,EAAgC,GAAI,OAEpC,MAAO,IAAI,IAAmB,EAAO,GCjBjC,YAA4B,EAA+B,GAC/D,GAAI,EAAK,SAAW,EAAK,OACvB,KAAM,IAAI,OAAM,kDAElB,KAAM,GAAQ,MAAM,KAAK,GACnB,EAAQ,MAAM,KAAK,GAEzB,MAAO,MAAK,KACV,EACG,IAAI,CAAC,EAAK,IAAM,EAAM,EAAM,IAC5B,OAAO,CAAC,EAAK,IAAS,EAAM,KAAK,IAAI,EAAM,GAAI,ICVtD,SAUE,YACE,EACA,EAA4B,IAG5B,KAAK,mBAAqB,EAE1B,KAAM,GAAa,MAAM,QAAQ,GAAU,EAAS,CAAC,GAErD,GAAI,CAAC,EAAW,OACd,KAAM,IAAI,OAAM,2DAGlB,GAAI,GAAQ,EACZ,KAAM,GAAoB,IAAM,UAAU,MAE1C,KAAK,oBAAsB,EAAW,IAAI,AAAC,IACzC,GAAI,YAAgB,IAClB,MAAO,GAGT,GAAI,YAAgB,cAClB,MAAO,IAAI,IAAuB,IAAqB,CAAC,IAG1D,GAAI,EAAK,YAAc,EAAK,qBAAsB,cAChD,MAAO,IAAI,IAAuB,IAAqB,CAAC,EAAK,aAG/D,KAAM,IAAI,OAAM,4MAIT,sBAAiD,MAAO,MAAK,uBAC7D,qBAA8B,MAAO,MAAK,mBAE9C,oBAAoB,EAA+B,GACxD,MAAO,GACJ,IAAI,GAAK,GAAkB,EAAG,IAC9B,OAAO,CAAC,EAAI,IAAO,EAAK,EAAI,GACxB,GAAY,QAAU,GAGxB,gBAAgB,GACrB,MAAO,MAAK,mBACT,IAAI,CAAC,CAAE,cAAa,WAAY,GAAI,IACjC,EACA,KAAK,oBAAoB,EAAiB,KAE7C,OAAO,CAAC,EAAM,IAAS,EAAK,SAAW,EAAK,SAAW,EAAO,GAG5D,cAAc,GACnB,KAAM,GAAY,KAAK,gBAAgB,GACvC,MAAO,GAAU,SAAW,KAAK,kBAC7B,EACA,GAAI,IAAU,UAAW,EAAU,UAGlC,SACL,MAAO,CACL,kBAAmB,KAAK,kBACxB,mBAAoB,KAAK,mBAAmB,IAAI,AAAC,GAAO,EAAG,iBAIjD,UAAS,GACrB,KAAM,GAAqB,EAAK,mBAC7B,IAAI,AAAC,GAAY,GAAuB,SAAS,IACpD,MAAO,IAAI,IAAY,EAAoB,EAAK,oBC1E9C,YAAiC,GACrC,KAAM,GAAM,GAAI,MAChB,SAAI,eAAe,GACZ,ECFH,YAA2B,EAAY,GAE3C,KAAM,CAAE,QAAO,UAAW,GAAI,IAAW,EAAW,MAAO,EAAW,QAEtE,GAAI,GAAS,GAAK,GAAU,EAC1B,KAAM,IAAI,OAAM,uCAAuC,KAAK,UAAU,CAAE,QAAO,cAGjF,GAAI,MAAM,QAAQ,GAChB,MAAO,GAAQ,IAAI,GAAO,GAAc,EAAK,CAAE,QAAO,YAGxD,GAAI,GAAoB,IACtB,KAAM,GAAmB,EAAQ,UAAU,QAAQ,EAAO,GACpD,EAAmB,EAAQ,mBAAmB,QAAQ,EAAiB,IAAI,MAAO,EAAiB,IAAI,QAE7G,MAAO,IAAwB,GAAwB,EAAS,GAAmB,GAGrF,MAAI,IAAoB,GACf,GAAwB,EAAS,EAAQ,UAAU,QAAQ,EAAO,IAGvE,YAAmB,KAAiB,YAAmB,IACjD,EAAgB,QAAQ,EAAO,GAGlC", + "sources": ["node_modules/seedrandom/lib/alea.js", "node_modules/seedrandom/lib/xor128.js", "node_modules/seedrandom/lib/xorwow.js", "node_modules/seedrandom/lib/xorshift7.js", "node_modules/seedrandom/lib/xor4096.js", "node_modules/seedrandom/lib/tychei.js", "disabled:crypto", "node_modules/seedrandom/seedrandom.js", "node_modules/seedrandom/index.js", "disabled:/home/vlado/dev/face-api/node_modules/string_decoder/lib/string_decoder.js", "disabled:fs", "build/env/../../src/env/isNodejs.ts", "build/../src/index.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/environment.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/global_util.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/kernel_names.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/kernel_registry.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/util.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/profiler.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/tape.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/tensor_format.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/tensor.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/types.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/tensor_util.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/engine.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/device_util.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/flags.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/tensor_util_env.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/operation.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/abs.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/acos.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/acosh.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/add.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/add_n.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/axis_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reshape.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/transpose.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/all.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/any.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/arg_max.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/arg_min.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/asin.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/asinh.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/atan.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/atan2.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/atanh.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/cast.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/avg_pool.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/globals.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/avg_pool_3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/concat_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor_ops_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/concat.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/mat_mul.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/mul.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sigmoid.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/slice_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/slice.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tanh.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/basic_lstm_cell.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/batch_to_space_nd.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/batchnorm_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/batchnorm.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/batchnorm2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/batchnorm3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/batchnorm4d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/clone.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/broadcast_to.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/buffer.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/ceil.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/clip_by_value.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/complex.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/concat_1d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/concat_2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/concat_3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/concat_4d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv1d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv2d_backprop_input.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv2d_transpose.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv3d_backprop_input.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv3d_transpose.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/cos.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/cosh.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/cumsum.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/depth_to_space.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/depthwise_conv2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/diag.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/dilation2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/floorDiv.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/div.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/broadcast_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/equal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/where.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/zeros_like.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/div_no_nan.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/dot.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/elu.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/erf.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/exp.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/expand_dims.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/expm1.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tile.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/eye.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/fft.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/fill.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/floor.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reduce_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/segment_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/gather.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/greater.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/greater_equal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/ifft.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/imag.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/real.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reverse.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/scalar.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/irfft.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/is_finite.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/is_inf.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/is_nan.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/maximum.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/leaky_relu.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/less.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/less_equal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/linspace.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/local_response_normalization.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/log.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/log1p.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/gradients.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/neg.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/softplus.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/log_sigmoid.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/max.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sub.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sum.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/log_softmax.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/log_sum_exp.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/logical_and.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/logical_not.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/logical_or.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/logical_xor.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/max_pool.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/max_pool_3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/max_pool_with_argmax.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/zeros.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/ones.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/mean.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/min.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/minimum.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/mod.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/square.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/moments.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/multi_rnn_cell.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/multinomial.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/not_equal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/one_hot.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/ones_like.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/outer_product.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pad1d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pad2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pad3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pad4d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/space_to_batch_nd.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pool.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pow.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/prelu.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/print.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/prod.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/rand.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/test_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/rand_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/random_gamma.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/random_normal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/random_uniform.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor1d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/range.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reciprocal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/relu.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/relu6.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reverse_1d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reverse_2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reverse_3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reverse_4d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/split_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/split.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/rfft.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/round.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/rsqrt.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/selu.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/separable_conv2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/setdiff1d_async.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sign.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sin.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sinh.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/slice1d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/slice2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/slice3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/slice4d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/softmax.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sqrt.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/squared_difference.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/squeeze.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/stack.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/step.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/strided_slice.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tan.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor4d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor5d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor6d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/topk.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/truncated_normal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/unsorted_segment_sum.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/unstack.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/variable.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/where_impl.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/where_async.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/boolean_mask.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/compare.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/binary_ops.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/norm.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/moving_average.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/scatter_nd_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/scatter_nd.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sparse_to_dense_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sparse_to_dense.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/gather_nd.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/dropout_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/dropout.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/signal_ops_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/in_top_k.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv2d_backprop_filter.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/fused_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/fused_conv2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/depthwise_conv2d_native_backprop_filter.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/depthwise_conv2d_native_backprop_input.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/fused_depthwise_conv2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/fused_mat_mul.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/fused_ops.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/hamming_window.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/hann_window.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/frame.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/stft.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/crop_and_resize.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/flip_left_right.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/rotate_with_offset.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/nonmax_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/non_max_suppression.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/array_util.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/non_max_suppression_impl.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/non_max_suppression_async.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/non_max_suppression_with_score.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/non_max_suppression_with_score_async.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/non_max_suppression_padded.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/non_max_suppression_padded_async.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/resize_bilinear.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/resize_nearest_neighbor.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/band_part.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/gram_schmidt.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/qr.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/loss_ops_utils.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/compute_weighted_loss.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/absolute_difference.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/cosine_distance.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/hinge_loss.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/huber_loss.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/log_loss.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/mean_squared_error.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sigmoid_cross_entropy.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/softmax_cross_entropy.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/ops.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/base_side_effects.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/types.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/io_utils.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/router_registry.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/model_management.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/browser_files.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/progress.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/weights_loader.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/http.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/passthrough.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/io.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/confusion_matrix.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/math.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/browser.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/gather_nd_util.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/serialization.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/version.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/adadelta_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/adagrad_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/adam_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/adamax_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/sgd_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/momentum_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/rmsprop_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/optimizer_constructors.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/train.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/browser_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/rotate_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/array_ops_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/selu_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/erf_util.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/log.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/complex_util.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/backend_util.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/split_shared.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/tile_impl.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/topk_impl.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/kernel_impls.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/backend.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Abs_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Acos_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Acosh_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Add_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/AddN_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/ArgMax_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/ArgMin_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Asin_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Asinh_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Atan2_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Atan_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Atanh_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/avg_pool_3d_backprop.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/AvgPool3D_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/avg_pool_backprop.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/AvgPool_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/BatchMatMul_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/BatchToSpaceND_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/BroadcastTo_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Cast_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Ceil_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/ClipByValue_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Concat_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Conv2D_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Conv2DBackpropInput_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv3d_backprop_filter.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Conv3D_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Cos_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Cosh_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Cumsum_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/DepthwiseConv2dNative_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Dilation2D_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Div_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Elu_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Erf_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Exp_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Expm1_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Floor_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/FloorDiv_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/FusedBatchNorm_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/GatherV2_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/GreaterEqual_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Identity_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/IsFinite_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/IsInf_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/IsNan_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Log1p_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Log_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/LogSoftmax_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/local_response_normalization_backprop.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/LRN_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/min_max_grad_util.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Max_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Maximum_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/max_pool_3d_backprop.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/MaxPool3D_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/max_pool_backprop.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/MaxPool_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Min_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Minimum_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Mod_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Multiply_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Negate_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/OneHot_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/OnesLike_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/PadV2_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Pow_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Prelu_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Reciprocal_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Relu6_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Relu_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Reshape_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/ResizeBilinear_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/ResizeNearestNeighbor_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Reverse_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Round_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Rsqrt_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/SelectV2_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Selu_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sigmoid_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sign_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sin_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sinh_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Slice_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Softmax_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Softplus_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/SpaceToBatchND_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/SplitV_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sqrt_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Square_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/SquaredDifference_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Step_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sub_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sum_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Tan_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Tanh_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Tile_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Transpose_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Unpack_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/UnsortedSegmentSum_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/ZerosLike_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/register_all_gradients.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/index.ts", "node_modules/@tensorflow/tfjs-layers/dist/backend/../../src/backend/common.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/errors.ts", "node_modules/@tensorflow/tfjs-layers/dist/utils/../../src/utils/generic_utils.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/constraints.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/exports_constraints.ts", "node_modules/@tensorflow/tfjs-layers/dist/keras_format/../../src/keras_format/common.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/common.ts", "node_modules/@tensorflow/tfjs-layers/dist/utils/../../src/utils/math_utils.ts", "node_modules/@tensorflow/tfjs-layers/dist/backend/../../src/backend/tfjs_backend.ts", "node_modules/@tensorflow/tfjs-layers/dist/keras_format/../../src/keras_format/initializer_config.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/initializers.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/exports_initializers.ts", "node_modules/@tensorflow/tfjs-layers/dist/backend/../../src/backend/state.ts", "node_modules/@tensorflow/tfjs-layers/dist/utils/../../src/utils/types_utils.ts", "node_modules/@tensorflow/tfjs-layers/dist/utils/../../src/utils/variable_utils.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/variables.ts", "node_modules/@tensorflow/tfjs-layers/dist/engine/../../src/engine/topology.ts", "node_modules/@tensorflow/tfjs-layers/dist/engine/../../src/engine/input_layer.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/logs.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/base_callbacks.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/serialization.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/losses.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/metrics.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/optimizers.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/user_defined_metadata.ts", "node_modules/@tensorflow/tfjs-layers/dist/utils/../../src/utils/layer_utils.ts", "node_modules/@tensorflow/tfjs-layers/dist/utils/../../src/utils/serialization_utils.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/version.ts", "node_modules/@tensorflow/tfjs-layers/dist/engine/../../src/engine/executor.ts", "node_modules/@tensorflow/tfjs-layers/dist/engine/../../src/engine/container.ts", "node_modules/@tensorflow/tfjs-layers/dist/engine/../../src/engine/training_utils.ts", "node_modules/@tensorflow/tfjs-layers/dist/engine/../../src/engine/training_dataset.ts", "node_modules/@tensorflow/tfjs-layers/dist/engine/../../src/engine/training_tensors.ts", "node_modules/@tensorflow/tfjs-layers/dist/engine/../../src/engine/training.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/models.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/exports.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/activations.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/regularizers.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/advanced_activations.ts", "node_modules/@tensorflow/tfjs-layers/dist/utils/../../src/utils/conv_utils.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/convolutional.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/convolutional_depthwise.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/core.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/embeddings.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/merge.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/noise.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/normalization.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/padding.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/pooling.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/recurrent.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/wrappers.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/exports_layers.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/exports_metrics.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/exports_models.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/exports_regularizers.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/callbacks.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/index.ts", "node_modules/@tensorflow/tfjs-converter/dist/data/../../src/data/compiled_api.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/custom_op/../../../src/operations/custom_op/register.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/utils.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/arithmetic.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/basic_math.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/control.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/convolution.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/creation.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/dynamic.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/evaluation.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/graph.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/image.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/logical.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/matrices.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/normalization.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/reduction.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/slice_join.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/spectral.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/transformation.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/../../src/operations/operation_mapper.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/custom_op/../../../src/operations/custom_op/node_value_impl.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/arithmetic_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/basic_math_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/executor/../../src/executor/tensor_utils.ts", "node_modules/@tensorflow/tfjs-converter/dist/executor/../../src/executor/tensor_array.ts", "node_modules/@tensorflow/tfjs-converter/dist/executor/../../src/executor/tensor_list.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/control_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/convolution_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/creation_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/dynamic_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/evaluation_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/graph_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/image_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/logical_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/matrices_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/normalization_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/reduction_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/slice_join_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/spectral_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/transformation_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/../../src/operations/operation_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/executor/../../src/executor/execution_context.ts", "node_modules/@tensorflow/tfjs-converter/dist/executor/../../src/executor/model_analysis.ts", "node_modules/@tensorflow/tfjs-converter/dist/executor/../../src/executor/graph_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/executor/../../src/executor/graph_model.ts", "node_modules/@tensorflow/tfjs-converter/dist/../src/version.ts", "node_modules/@tensorflow/tfjs-converter/dist/../src/index.ts", "node_modules/@tensorflow/tfjs-data/dist/util/../../src/util/deep_map.ts", "node_modules/@tensorflow/tfjs-data/dist/util/../../src/util/deep_clone.ts", "node_modules/@tensorflow/tfjs-data/dist/util/../../src/util/ring_buffer.ts", "node_modules/@tensorflow/tfjs-data/dist/util/../../src/util/growing_ring_buffer.ts", "node_modules/@tensorflow/tfjs-data/dist/iterators/../../src/iterators/lazy_iterator.ts", "node_modules/@tensorflow/tfjs-data/dist/../src/dataset.ts", "node_modules/@tensorflow/tfjs-data/dist/datasets/../../src/datasets/text_line_dataset.ts", "node_modules/@tensorflow/tfjs-data/dist/datasets/../../src/datasets/csv_dataset.ts", "node_modules/@tensorflow/tfjs-data/dist/iterators/../../src/iterators/microphone_iterator.ts", "node_modules/@tensorflow/tfjs-data/dist/iterators/../../src/iterators/webcam_iterator.ts", "node_modules/@tensorflow/tfjs-data/dist/../src/datasource.ts", "node_modules/@tensorflow/tfjs-data/dist/iterators/../../src/iterators/string_iterator.ts", "node_modules/@tensorflow/tfjs-data/dist/iterators/../../src/iterators/byte_chunk_iterator.ts", "node_modules/@tensorflow/tfjs-data/dist/iterators/../../src/iterators/file_chunk_iterator.ts", "node_modules/@tensorflow/tfjs-data/dist/iterators/../../src/iterators/url_chunk_iterator.ts", "node_modules/@tensorflow/tfjs-data/dist/util/../../src/util/source_util.ts", "node_modules/@tensorflow/tfjs-data/dist/sources/../../src/sources/file_data_source.ts", "node_modules/@tensorflow/tfjs-data/dist/sources/../../src/sources/url_data_source.ts", "node_modules/@tensorflow/tfjs-data/dist/../src/readers.ts", "node_modules/@tensorflow/tfjs-data/dist/../src/version.ts", "node_modules/@tensorflow/tfjs-data/dist/../src/index.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/../src/cpu_util.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/../../src/utils/pool_utils.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/../src/backend_cpu.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Max_impl.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Transpose_impl.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/../src/shared.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/../src/version.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/../src/base.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Dilation2D.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Dilation2DBackpropFilter.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Dilation2DBackpropInput.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/../../src/utils/kernel_utils.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Div_impl.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Div.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/FlipLeftRight.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Max.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/MaxPoolWithArgmax_impl.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/MaxPoolWithArgmax.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/NonMaxSuppressionV4.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/NonMaxSuppressionV5.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/RotateWithOffset.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Square.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/SquaredDifference.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Transpose.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/../src/register_all_kernels.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/../src/index.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/canvas_util.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/tex_util.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/webgl_util.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/flags_webgl.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/addn_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/addn_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/argminmax_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/packing_util.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/glsl_version.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/shader_compiler_util.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/shader_compiler.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/argminmax_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/avg_pool_backprop_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/batchnorm_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/batchnorm_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/binaryop_complex_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/binaryop_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/binaryop_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/clip_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/clip_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/complex_abs_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/concat_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/concat_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/conv_backprop_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/conv_backprop_gpu_depthwise.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/conv_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/conv_gpu_depthwise.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/conv_packed_gpu_depthwise.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/crop_and_resize_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/cumsum_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/decode_matrix_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/decode_matrix_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/depth_to_space_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/diag_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/encode_float_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/encode_float_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/encode_matrix_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/encode_matrix_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/fft_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/fill_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/gather_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/gather_nd_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/gpgpu_util.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/gpgpu_context.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/gpgpu_math.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/im2col_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/lrn_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/lrn_grad_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/lrn_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/max_pool_backprop_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/mulmat_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/multinomial_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/onehot_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/pack_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/pad_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/pad_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/pool_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/reduce_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/reshape_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/resize_bilinear_backprop_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/resize_bilinear_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/resize_bilinear_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/resize_nearest_neighbor_backprop_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/resize_nearest_neighbor_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/reverse_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/reverse_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/scatter_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/segment_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/select_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/slice_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/slice_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/strided_slice_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/texture_manager.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/tile_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/unaryop_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/unaryop_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/unpack_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/backend_webgl.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/version.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/webgl.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/base.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Div_impl.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Div.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/flip_left_right_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/FlipLeftRight.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FromPixels_utils/../../../src/kernels/FromPixels_utils/from_pixels_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FromPixels_utils/../../../src/kernels/FromPixels_utils/from_pixels_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/FromPixels.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/../../src/kernel_utils/shared.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/../../src/kernel_utils/reduce.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/../../src/kernel_utils/reshape.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Max_impl.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/transpose_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/transpose_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Transpose_impl.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Max.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/MaxPoolWithArgmax_impl.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/MaxPoolWithArgmax.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/NonMaxSuppressionV3.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/NonMaxSuppressionV4.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/NonMaxSuppressionV5.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/rotate_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/RotateWithOffset.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Square.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/SquaredDifference.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Transpose.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/register_all_kernels.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/index.ts", "node_modules/@tensorflow/tfjs/dist/../src/version.ts", "node_modules/@tensorflow/tfjs/dist/../src/index.ts", "build/draw/../../src/draw/drawContour.ts", "build/classes/../../src/classes/Dimensions.ts", "build/utils/../../src/utils/index.ts", "build/classes/../../src/classes/Point.ts", "build/classes/../../src/classes/Box.ts", "build/classes/../../src/classes/BoundingBox.ts", "build/classes/../../src/classes/ObjectDetection.ts", "build/classes/../../src/classes/FaceDetection.ts", "build/ops/../../src/ops/iou.ts", "build/ops/../../src/ops/minBbox.ts", "build/ops/../../src/ops/nonMaxSuppression.ts", "build/ops/../../src/ops/normalize.ts", "build/ops/../../src/ops/padToSquare.ts", "build/ops/../../src/ops/shuffleArray.ts", "build/ops/../../src/ops/index.ts", "build/classes/../../src/classes/Rect.ts", "build/classes/../../src/classes/FaceLandmarks.ts", "build/classes/../../src/classes/FaceLandmarks5.ts", "build/classes/../../src/classes/FaceLandmarks68.ts", "build/classes/../../src/classes/FaceMatch.ts", "build/classes/../../src/classes/LabeledBox.ts", "build/classes/../../src/classes/LabeledFaceDescriptors.ts", "build/classes/../../src/classes/PredictedBox.ts", "build/factories/../../src/factories/WithFaceDetection.ts", "build/env/../../src/env/createBrowserEnv.ts", "build/env/../../src/env/createFileSystem.ts", "build/env/../../src/env/createNodejsEnv.ts", "build/env/../../src/env/isBrowser.ts", "build/env/../../src/env/index.ts", "build/dom/../../src/dom/resolveInput.ts", "build/dom/../../src/dom/getContext2dOrThrow.ts", "build/draw/../../src/draw/DrawTextField.ts", "build/draw/../../src/draw/DrawBox.ts", "build/draw/../../src/draw/drawDetections.ts", "build/dom/../../src/dom/isMediaLoaded.ts", "build/dom/../../src/dom/awaitMediaLoaded.ts", "build/dom/../../src/dom/bufferToImage.ts", "build/dom/../../src/dom/getMediaDimensions.ts", "build/dom/../../src/dom/createCanvas.ts", "build/dom/../../src/dom/imageTensorToCanvas.ts", "build/dom/../../src/dom/isMediaElement.ts", "build/dom/../../src/dom/imageToSquare.ts", "build/dom/../../src/dom/NetInput.ts", "build/dom/../../src/dom/toNetInput.ts", "build/dom/../../src/dom/extractFaces.ts", "build/dom/../../src/dom/extractFaceTensors.ts", "build/dom/../../src/dom/fetchOrThrow.ts", "build/dom/../../src/dom/fetchImage.ts", "build/dom/../../src/dom/fetchJson.ts", "build/dom/../../src/dom/fetchNetWeights.ts", "build/common/../../src/common/getModelUris.ts", "build/dom/../../src/dom/loadWeightMap.ts", "build/dom/../../src/dom/matchDimensions.ts", "build/../src/NeuralNetwork.ts", "build/common/../../src/common/depthwiseSeparableConv.ts", "build/faceFeatureExtractor/../../src/faceFeatureExtractor/denseBlock.ts", "build/common/../../src/common/convLayer.ts", "build/common/../../src/common/disposeUnusedWeightTensors.ts", "build/common/../../src/common/extractConvParamsFactory.ts", "build/common/../../src/common/extractFCParamsFactory.ts", "build/common/../../src/common/types.ts", "build/common/../../src/common/extractSeparableConvParamsFactory.ts", "build/common/../../src/common/extractWeightEntryFactory.ts", "build/common/../../src/common/extractWeightsFactory.ts", "build/faceFeatureExtractor/../../src/faceFeatureExtractor/extractorsFactory.ts", "build/faceFeatureExtractor/../../src/faceFeatureExtractor/extractParams.ts", "build/common/../../src/common/loadConvParamsFactory.ts", "build/faceFeatureExtractor/../../src/faceFeatureExtractor/loadParamsFactory.ts", "build/faceFeatureExtractor/../../src/faceFeatureExtractor/extractParamsFromWeigthMap.ts", "build/faceFeatureExtractor/../../src/faceFeatureExtractor/FaceFeatureExtractor.ts", "build/common/../../src/common/fullyConnectedLayer.ts", "build/faceProcessor/../../src/faceProcessor/extractParams.ts", "build/faceProcessor/../../src/faceProcessor/extractParamsFromWeigthMap.ts", "build/faceProcessor/../../src/faceProcessor/util.ts", "build/faceProcessor/../../src/faceProcessor/FaceProcessor.ts", "build/faceExpressionNet/../../src/faceExpressionNet/FaceExpressions.ts", "build/faceExpressionNet/../../src/faceExpressionNet/FaceExpressionNet.ts", "build/factories/../../src/factories/WithFaceExpressions.ts", "build/draw/../../src/draw/drawFaceExpressions.ts", "build/factories/../../src/factories/WithFaceLandmarks.ts", "build/draw/../../src/draw/DrawFaceLandmarks.ts", "build/draw/../../src/draw/index.ts", "build/xception/../../src/xception/extractParams.ts", "build/xception/../../src/xception/extractParamsFromWeigthMap.ts", "build/xception/../../src/xception/TinyXception.ts", "build/ageGenderNet/../../src/ageGenderNet/extractParams.ts", "build/ageGenderNet/../../src/ageGenderNet/extractParamsFromWeigthMap.ts", "build/ageGenderNet/../../src/ageGenderNet/types.ts", "build/ageGenderNet/../../src/ageGenderNet/AgeGenderNet.ts", "build/faceLandmarkNet/../../src/faceLandmarkNet/FaceLandmark68NetBase.ts", "build/faceLandmarkNet/../../src/faceLandmarkNet/FaceLandmark68Net.ts", "build/faceFeatureExtractor/../../src/faceFeatureExtractor/extractParamsFromWeigthMapTiny.ts", "build/faceFeatureExtractor/../../src/faceFeatureExtractor/extractParamsTiny.ts", "build/faceFeatureExtractor/../../src/faceFeatureExtractor/TinyFaceFeatureExtractor.ts", "build/faceLandmarkNet/../../src/faceLandmarkNet/FaceLandmark68TinyNet.ts", "build/faceLandmarkNet/../../src/faceLandmarkNet/index.ts", "build/faceRecognitionNet/../../src/faceRecognitionNet/scaleLayer.ts", "build/faceRecognitionNet/../../src/faceRecognitionNet/convLayer.ts", "build/faceRecognitionNet/../../src/faceRecognitionNet/extractParams.ts", "build/faceRecognitionNet/../../src/faceRecognitionNet/extractParamsFromWeigthMap.ts", "build/faceRecognitionNet/../../src/faceRecognitionNet/residualLayer.ts", "build/faceRecognitionNet/../../src/faceRecognitionNet/FaceRecognitionNet.ts", "build/faceRecognitionNet/../../src/faceRecognitionNet/index.ts", "build/factories/../../src/factories/WithFaceDescriptor.ts", "build/factories/../../src/factories/WithAge.ts", "build/factories/../../src/factories/WithGender.ts", "build/globalApi/../../src/globalApi/ComposableTask.ts", "build/globalApi/../../src/globalApi/extractFacesAndComputeResults.ts", "build/tinyYolov2/../../src/tinyYolov2/config.ts", "build/tinyYolov2/../../src/tinyYolov2/leaky.ts", "build/tinyYolov2/../../src/tinyYolov2/convWithBatchNorm.ts", "build/tinyYolov2/../../src/tinyYolov2/depthwiseSeparableConv.ts", "build/tinyYolov2/../../src/tinyYolov2/extractParams.ts", "build/tinyYolov2/../../src/tinyYolov2/extractParamsFromWeigthMap.ts", "build/tinyYolov2/../../src/tinyYolov2/TinyYolov2Options.ts", "build/tinyYolov2/../../src/tinyYolov2/TinyYolov2Base.ts", "build/tinyFaceDetector/../../src/tinyFaceDetector/const.ts", "build/tinyFaceDetector/../../src/tinyFaceDetector/TinyFaceDetector.ts", "build/tinyYolov2/../../src/tinyYolov2/const.ts", "build/tinyYolov2/../../src/tinyYolov2/TinyYolov2.ts", "build/tinyYolov2/../../src/tinyYolov2/index.ts", "build/globalApi/../../src/globalApi/nets.ts", "build/globalApi/../../src/globalApi/PredictFaceExpressionsTask.ts", "build/globalApi/../../src/globalApi/PredictAgeAndGenderTask.ts", "build/globalApi/../../src/globalApi/ComputeFaceDescriptorsTasks.ts", "build/tinyFaceDetector/../../src/tinyFaceDetector/TinyFaceDetectorOptions.ts", "build/globalApi/../../src/globalApi/DetectFaceLandmarksTasks.ts", "build/globalApi/../../src/globalApi/DetectFacesTasks.ts", "build/globalApi/../../src/globalApi/detectFaces.ts", "build/../src/euclideanDistance.ts", "build/globalApi/../../src/globalApi/FaceMatcher.ts", "build/tinyFaceDetector/../../src/tinyFaceDetector/index.ts", "build/../src/resizeResults.ts"], + "sourcesContent": ["// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null], + "mappings": "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AC,EAAG,KAIf,YAA+C,EAAM,GAInD,KAAM,GAAqB,GAAQ,EAAS,GAAU,IAChD,EAAW,GAAO,EAAG,GAC3B,GAAI,GAAa,GAAa,EAAS,EAAO,EAAG,UACjD,KAAM,GAAW,EAAS,KAAO,EAAW,KAC5C,OAAS,GAAI,EAAG,EAAI,EAAU,EAAE,EAC9B,EAAa,GAAW,EAAY,EAAI,GAE1C,EAAa,GAAW,EAAY,GAAK,EAAS,MAAO,SACzD,KAAM,GAAY,GAAU,GAC5B,MAAO,IAAM,EAAY,EAAU,GCxDrC,AAsBO,KAAM,IAAkC,CAC7C,WAAY,GACZ,SAAU,AAAC,GACF,EAAC,EAAG,IAAM,GAAU,MCzB/B,AAkHA,KAAM,IAA4B,CAChC,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAGF,SAAW,KAAkB,IAC3B,GAAiB,GCxNnB,ACAA,AAaA,GAAI,IAKE,cACJ,MAAI,KAAY,MACd,IAAW,KAAU,WAEhB,GAcH,cACJ,MAAO,eCrCT,gBAuBoC,OAClC,YAAY,GACV,MAAM,GAEN,OAAO,eAAe,KAAM,GAAe,YA3B/C,gBAkCkC,OAChC,YAAY,GACV,MAAM,GAEN,OAAO,eAAe,KAAM,GAAa,YAtC7C,eA6CgC,OAC9B,YAAY,GACV,MAAM,GAEN,OAAO,eAAe,KAAM,EAAW,YAjD3C,gBAwDyC,OACvC,YAAY,GACV,MAA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", "names": [] } diff --git a/package-lock.json b/package-lock.json index ce1b288..4784d21 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,5 +1,5 @@ { - "name": "face-api", + "name": "@vladmandic/face-api", "version": "0.3.5", "lockfileVersion": 1, "requires": true, @@ -316,9 +316,10 @@ "dev": true }, "esbuild": { - "version": "0.6.25", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.6.25.tgz", - "integrity": "sha512-yOSDMlo0tmhF023LL37UVK/WHIM8UttxiUM0iOHb/DgB9Mk02wQAAHEso2ZkTY3ImpGDRQM0JnIif7aZAmGm2w==" + "version": "0.6.27", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.6.27.tgz", + "integrity": "sha512-oonxxg/ExZt9tYMPnEUDYAN7YefEPsC21pXez5rwKcCPAF6gzMuxLvAdbU4dCT8Tp0I2avODz61vrGyu5wR/uA==", + "dev": true }, "form-data": { "version": "3.0.0", @@ -871,9 +872,9 @@ "dev": true }, "typescript": { - "version": "3.9.7", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz", - "integrity": "sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==", + "version": "4.1.0-dev.20200821", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.0-dev.20200821.tgz", + "integrity": "sha512-ECIzTfpOyjsEqQhy/lN4mK0ziFUaDWXZUepRstcjvo5fgn0O6pzRWTPialgKsYgVDsmTxhZgYC6u1/j+lCO4nA==", "dev": true }, "util-deprecate": { diff --git a/package.json b/package.json index 4ddae71..9d2d4dc 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "canvas": "2.6.1", "ts-node": "^8.10.2", "tslib": "^2.0.1", - "typescript": "^3.9.7", - "esbuild": "^0.6.25" + "typescript": "^4.1.0-dev.20200821", + "esbuild": "^0.6.27" } } diff --git a/src/NeuralNetwork.ts b/src/NeuralNetwork.ts index 571e175..37a503b 100644 --- a/src/NeuralNetwork.ts +++ b/src/NeuralNetwork.ts @@ -6,48 +6,38 @@ import { loadWeightMap } from './dom'; import { env } from './env'; export abstract class NeuralNetwork { - protected _params: TNetParams | undefined = undefined protected _paramMappings: ParamMapping[] = [] - constructor(protected _name: string) {} - public get params(): TNetParams | undefined { return this._params } public get paramMappings(): ParamMapping[] { return this._paramMappings } public get isLoaded(): boolean { return !!this.params } - public getParamFromPath(paramPath: string): tf.Tensor { const { obj, objProp } = this.traversePropertyPath(paramPath) return obj[objProp] } - public reassignParamFromPath(paramPath: string, tensor: tf.Tensor) { const { obj, objProp } = this.traversePropertyPath(paramPath) obj[objProp].dispose() obj[objProp] = tensor } - public getParamList() { return this._paramMappings.map(({ paramPath }) => ({ path: paramPath, tensor: this.getParamFromPath(paramPath) })) } - public getTrainableParams() { return this.getParamList().filter(param => param.tensor instanceof tf.Variable) } - public getFrozenParams() { return this.getParamList().filter(param => !(param.tensor instanceof tf.Variable)) } - public variable() { this.getFrozenParams().forEach(({ path, tensor }) => { this.reassignParamFromPath(path, tensor.variable()) }) } - public freeze() { this.getTrainableParams().forEach(({ path, tensor: variable }) => { const tensor = tf.tensor(variable.dataSync()) @@ -55,7 +45,6 @@ export abstract class NeuralNetwork { this.reassignParamFromPath(path, tensor) }) } - public dispose(throwOnRedispose: boolean = true) { this.getParamList().forEach(param => { if (throwOnRedispose && param.tensor.isDisposed) { @@ -65,7 +54,6 @@ export abstract class NeuralNetwork { }) this._params = undefined } - public serializeParams(): Float32Array { return new Float32Array( this.getParamList() @@ -73,83 +61,64 @@ export abstract class NeuralNetwork { .reduce((flat, arr) => flat.concat(arr)) ) } - public async load(weightsOrUrl: Float32Array | string | undefined): Promise { if (weightsOrUrl instanceof Float32Array) { this.extractWeights(weightsOrUrl) return } - await this.loadFromUri(weightsOrUrl) } - public async loadFromUri(uri: string | undefined) { if (uri && typeof uri !== 'string') { throw new Error(`${this._name}.loadFromUri - expected model uri`) } - const weightMap = await loadWeightMap(uri, this.getDefaultModelName()) this.loadFromWeightMap(weightMap) } - public async loadFromDisk(filePath: string | undefined) { if (filePath && typeof filePath !== 'string') { throw new Error(`${this._name}.loadFromDisk - expected model file path`) } - const { readFile } = env.getEnv() - const { manifestUri, modelBaseUri } = getModelUris(filePath, this.getDefaultModelName()) - const fetchWeightsFromDisk = (filePaths: string[]) => Promise.all( filePaths.map(filePath => readFile(filePath).then(buf => buf.buffer)) ) const loadWeights = tf.io.weightsLoaderFactory(fetchWeightsFromDisk) - const manifest = JSON.parse((await readFile(manifestUri)).toString()) const weightMap = await loadWeights(manifest, modelBaseUri) - this.loadFromWeightMap(weightMap) } - public loadFromWeightMap(weightMap: tf.NamedTensorMap) { const { paramMappings, params } = this.extractParamsFromWeigthMap(weightMap) - this._paramMappings = paramMappings this._params = params } - public extractWeights(weights: Float32Array) { const { paramMappings, params } = this.extractParams(weights) - this._paramMappings = paramMappings this._params = params } - private traversePropertyPath(paramPath: string) { if (!this.params) { throw new Error(`traversePropertyPath - model has no loaded params`) } - const result = paramPath.split('/').reduce((res: { nextObj: any, obj?: any, objProp?: string }, objProp) => { if (!res.nextObj.hasOwnProperty(objProp)) { throw new Error(`traversePropertyPath - object does not have property ${objProp}, for path ${paramPath}`) } - return { obj: res.nextObj, objProp, nextObj: res.nextObj[objProp] } }, { nextObj: this.params }) - const { obj, objProp } = result if (!obj || !objProp || !(obj[objProp] instanceof tf.Tensor)) { throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${paramPath}`) } - return { obj, objProp } } diff --git a/src/euclideanDistance.ts b/src/euclideanDistance.ts index 89a7041..8e5eb65 100644 --- a/src/euclideanDistance.ts +++ b/src/euclideanDistance.ts @@ -1,13 +1,12 @@ export function euclideanDistance(arr1: number[] | Float32Array, arr2: number[] | Float32Array) { - if (arr1.length !== arr2.length) + if (arr1.length !== arr2.length) { throw new Error('euclideanDistance: arr1.length !== arr2.length') - + } const desc1 = Array.from(arr1) const desc2 = Array.from(arr2) - return Math.sqrt( desc1 .map((val, i) => val - desc2[i]) .reduce((res, diff) => res + Math.pow(diff, 2), 0) ) -} \ No newline at end of file +} diff --git a/src/index.ts b/src/index.ts index 4e52110..6585e8c 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,13 +1,8 @@ -import * as tf from '@tensorflow/tfjs-core'; - +import * as tf from '@tensorflow/tfjs'; import * as draw from './draw'; import * as utils from './utils'; -export { - draw, - utils, - tf -} +export { draw, utils, tf } export * from './ageGenderNet/index'; export * from './classes/index'; @@ -21,7 +16,6 @@ export * from './globalApi/index'; export * from './ops/index'; export * from './tinyFaceDetector/index'; export * from './tinyYolov2/index'; - export * from './euclideanDistance'; export * from './NeuralNetwork'; -export * from './resizeResults'; \ No newline at end of file +export * from './resizeResults'; diff --git a/src/resizeResults.ts b/src/resizeResults.ts index 4a79b31..623e334 100644 --- a/src/resizeResults.ts +++ b/src/resizeResults.ts @@ -5,31 +5,23 @@ import { extendWithFaceDetection, isWithFaceDetection } from './factories/WithFa import { extendWithFaceLandmarks, isWithFaceLandmarks } from './factories/WithFaceLandmarks'; export function resizeResults(results: T, dimensions: IDimensions): T { - const { width, height } = new Dimensions(dimensions.width, dimensions.height) - if (width <= 0 || height <= 0) { throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({ width, height })}`) } - if (Array.isArray(results)) { return results.map(obj => resizeResults(obj, { width, height })) as any as T } - if (isWithFaceLandmarks(results)) { const resizedDetection = results.detection.forSize(width, height) const resizedLandmarks = results.unshiftedLandmarks.forSize(resizedDetection.box.width, resizedDetection.box.height) - return extendWithFaceLandmarks(extendWithFaceDetection(results, resizedDetection), resizedLandmarks) } - if (isWithFaceDetection(results)) { return extendWithFaceDetection(results, results.detection.forSize(width, height)) } - if (results instanceof FaceLandmarks || results instanceof FaceDetection) { return (results as any).forSize(width, height) } - return results } \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index 1955a54..aa6def7 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,41 +1,39 @@ { "compilerOptions": { - //"allowUnreachableCode": true, - //"noUnusedLocals": false, - //"noUnusedParameters": false, - "removeComments": false, - "preserveConstEnums": true, - "emitDecoratorMetadata": true, - "experimentalDecorators": true, - "sourceMap": true, + "allowSyntheticDefaultImports": true, + "allowUnreachableCode": false, + "allowUnusedLabels": false, + "alwaysStrict": true, "declaration": true, + "declarationMap": true, + "emitDecoratorMetadata": true, + "esModuleInterop": true, + "experimentalDecorators": true, + "importHelpers": true, + "incremental": false, + "listFiles": false, + "noFallthroughCasesInSwitch": true, "noImplicitAny": true, "noImplicitReturns": true, "noImplicitThis": true, - "noFallthroughCasesInSwitch": true, - "suppressImplicitAnyIndexErrors": true, - "strictNullChecks": true, - "importHelpers": true, + "noUnusedLocals": false, + "noUnusedParameters": false, + "preserveConstEnums": true, + "pretty": true, + "removeComments": false, "skipLibCheck": true, + "sourceMap": true, + "strict": false, + "strictNullChecks": true, + "suppressImplicitAnyIndexErrors": true, "outDir": "build", "module": "es2020", "moduleResolution": "node", "target": "es2018", "lib": ["es2018", "dom"], - "typeRoots": [ - "typings", - "node_modules/@types" - ] + "typeRoots": ["typings", "node_modules/@types"] }, - "formatCodeOptions": { - "indentSize": 2, - "tabSize": 2 - }, - "exclude": [ - "node_modules", - "dist" - ], - "include": [ - "src" - ] + "formatCodeOptions": { "indentSize": 2, "tabSize": 2 }, + "exclude": ["node_modules", "dist"], + "include": ["src"] } \ No newline at end of file